* WebBrowser.cs, WebBrowserBase.cs: Delay loading of DocumentStream
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2008-11-23  Andreia Gaita  <avidigal@novell.com>
2
3         * WebBrowser.cs, WebBrowserBase.cs: Delay loading of DocumentStream 
4         until an about:blank has been loaded (according to spec). Fix 
5         ScrollbarsEnabled to set when a document is loaded (since we use js 
6         for it). Fix url so it reflects the current loading document and not 
7         the previous one. Send StatusChanged events.
8
9 2008-11-23  Andreia Gaita  <avidigal@novell.com>
10
11         * Application.cs: If a message comes in for an embedded control
12         (like webbrowser) when we're capturing the keyboard, release the
13         capture and continue.
14         [fixes #429462]
15
16 2008-11-22  Andreia Gaita  <avidigal@novell.com>
17
18         * XplatUI.cs: Only use PlatformID.MacOSX enum when not building on VS
19
20 2008-11-21  Andreia Gaita  <avidigal@novell.com>
21
22         * WebBrowser.cs, HtmlDocument.cs: Fixes for #428172
23         
24 2008-11-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25
26         * ScrollBar.cs:
27         * ScrollableControl.cs: Set manually the thumb size for the
28         ScrollableControl scrollbars, so any further changes to the underneath
29         scrollbars respect the original size.
30         Fixes part of #441546.
31
32 2008-11-21  Geoff Norton  <gnorton@novell.com>
33
34         * XplatUI.cs: Ensure that we can run on .net 2.0 with mono 2.2 where
35         PlatformID.MacOSX now exists.
36
37 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
38
39         * TextBoxBase.cs: Provide a default implementation for ChangeBackColor.
40         Having something internal abstract isn't very nice for people who want
41         to inherit from this class.
42
43 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
44
45         * ToolStripItem.cs: Don't crash if ImageIndex or ImageKey is set to an
46         invalid value.  Just return null for the Image, and use the ImageList's
47         ImageSize for calculations.
48
49 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
50
51         * ComboBox.cs: Call HideWindow instead of Hide when closing the dropdown
52         through DroppedDown so the proper events get called and state gets reset.
53         [Fixes bug #446805]
54
55 2008-11-18  Jonathan Pobst  <monkey@jpobst.com>
56
57         * DataGridViewColumnCollection.cs: Make sure we re-index the columns after
58         the collection is modified.
59
60 2008-11-17  Jonathan Pobst  <monkey@jpobst.com>
61
62         * DomainUpDown.cs: Remove string cache and reflection optimizations.  They
63         aren't always correct, and fixing them for every case is not worth the
64         negligible benefit they provide.
65         [Fixes bug #445713]
66
67 2008-11-17  Jonathan Pobst  <monkey@jpobst.com>
68
69         * DataGridView.cs: We should never add actual cells to the RowTemplate.
70         Internally, use RowTemplateFull to give us a new row with cells.
71         * DataGridViewColumnCollection.cs: Clear Rows when we clear Columns.
72         * DataGridViewRowCollection.cs: Use RowTemplateFull.
73
74 2008-11-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
75
76         * XplatUIX11.cs: Forms without borders should be able to change its
77         size - specially they should be able to be maximized, adding the
78         respective MotifFunctions.Resize bit when setting window properties as
79         well as *not* marking the Hwnd as size fixed.
80         Fixes #444347.
81
82 2008-11-12  Jonathan Pobst  <monkey@jpobst.com>
83
84         * DataGridViewCellStyle.cs: Allow SelectionBackColor to have
85         an alpha value.
86         [Fixes bug #444348]
87
88 2008-11-11  Jonathan Pobst  <monkey@jpobst.com>
89
90         * DataGridView.cs: Add internal to OnAutoSizeColumnModeChanged.
91         * DataGridViewColumn.cs: Recalculate columns when AutoSizeMode changes.  Raise
92         AutoSizeColumnModeChanged.
93         [Fixes bug #443609]
94
95 2008-11-11  Jonathan Pobst  <monkey@jpobst.com>
96
97         * DataGridViewRowCollection.cs: Guard against the user deleting the
98         NewRow.  Add an internal delete so we can still delete it.
99         * DataGridView.cs: Use the new internal delete when deleting the NewRow.
100         [Fixes bug #442181]
101
102 2008-11-10  Jonathan Pobst  <monkey@jpobst.com>
103
104         * TextControl.cs: Add some order of operation to our math so
105         we don't end up with a negative height for our invalidate rect.
106         [Fixes bug #381889]
107
108 2008-11-10  Jonathan Pobst  <monkey@jpobst.com>
109
110         * Control.cs: When our enabled changes, notify our implicit children
111         controls as well as our regular controls.
112         [Fixes bug #441523]
113
114 2008-11-08  Andreia Gaita <shana@jitted.com> 
115
116         * HtmlElement.cs: Small code cleanup
117
118 2008-11-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
119
120         * BindingNavigator.cs: MoveFirstItem should be enabled only if
121         position is larger than 0, not only different than 0. Also Position
122         and Count items should be enabled if the BindingSource is non null and
123         non empty.
124         Fixes #439961.
125
126 2008-11-05  Jonathan Pobst  <monkey@jpobst.com>
127
128         * TabControl.cs: Don't raise SelectedIndexChanged until we have
129         actually modified the tab collection, so TabCount will be correct.
130         [Fixes bug #441896]
131
132 2008-11-05  Sandy Armstrong  <sanfordarmstrong@gmail.com>
133
134         * ListViewItem.cs: Mark ListViewSubItem.UIATextChanged event as
135         NonSerialized to fix serialization of ListViewItem.
136
137 2008-11-04  Mike Gorse  <mgorse@novell.com>
138
139         * ListView.cs: Call OnUIAFocusedItemChanged after completing the
140           focus change, and always call in SetFocusedItem.
141         * ListBox.cs: Add UIAFocusedItemChanged as in ListView.
142
143 2008-11-04  Jonathan Pobst  <monkey@jpobst.com>
144
145         * ComboBox.cs: Only call OnDrawItem when we are using an OwnerDraw
146         mode.  Based on a patch by John Mortlock.
147         [Fixes bug #436790]
148
149 2008-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
150
151         * ListView.cs: Use the UsingGroups property where needed, instead of
152         duplicating the check in other places.
153
154 2008-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
155
156         * ListView.cs: When calculating layout, refresh the count of items
157         belonging to the default item, insteas of doing it only one time. This
158         was already working fine for icon views, not not for details.
159         Fixes #438948.
160
161 2008-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
162
163         * ListView.cs:
164         * ListViewItem.cs:
165         * ThemeWin32Classic.cs: Don't render Tile view if there wasn't a call
166         to Applicatin.EnableVisualStyles, and use LargeIcon view, as .net
167         does.
168         Fixes #437933.
169
170 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
171
172         * ListView.cs: Wrap call to OnUIAFocusedItemChanged with #if NET_2_0.
173
174 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
175
176         * ListView.cs: Add internal UIAFocusedItemChanged event.  Fixes bug
177         #441280, patch by Mike Gorse <mgorse@novell.com>.
178
179 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
180
181         * TreeView.cs: When doing ExpandAll, don't scroll to the bottom
182         if there is no scrollbar.
183         [Fixes bug #440885]
184
185 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
186
187         * ProgressBar.cs, ThemeWin32Classic.cs, ThemeVisualStyles.cs: Commit
188         patch from Andy Hume that fixes many issues with ProgressBar.
189         [See bug #440220]
190
191 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
192
193         * Form.cs: Don't allow MinimumSize and MaximumSize to conflict.
194         [Fixes bug #438866]
195
196 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
197
198         * UpDownBase.cs:
199         * DomainUpDown.cs:
200         * NumericUpDown.cs: Internal events added to UpDownBase:
201         UIAUpButtonClick and UIADownButtonClick.  Patch by Neville Gao
202         <ngao@novell.com>.
203
204 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
205
206         * ToolStripLabel.cs: Internal event added: UIAIsLinkChanged.
207
208 2008-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
209
210         * ListView.cs:
211         * ThemeWin32Classic.cs: Don't use groups nor insertion mark in
212         Application.EnableVisualStyles hasn't been called.
213         Fixes part of #437933.
214
215 2008-10-31  Andreia Gaita  <shana@jitted.com>
216
217         * Form.cs (SetVisibleCore): since set_ActiveControl no longer calls focus
218           if the container is not focused already, we need to specifically set
219           focus to the first available control, or to the form itself if there
220           are no controls.
221
222 2008-10-31  Andreia Gaita  <shana@jitted.com>
223
224         activate message fix: a call to .Show now waits until both WM_SHOWWINDOW and
225         WM_ACTIVATE have been processed before returning, so it is guaranteed that
226         once it returns and the form is visible, it is actually on the screen on X11
227
228         * ContainerControl.cs: Only send focus to the control if the top container
229           is already focused. This is so that, when a form is first shown, all
230           the enter/leave events are done first before any focus stuff comes in.
231           If a control has no top container, there's an extra check on Control.Focus
232           to make sure it gets focused in this particular case.
233
234         * Control.cs: Force focus if the control is active but did not receive
235           focus after being set as active.
236
237         * MdiClient.cs: Dispose the form when closing
238
239         * XplatUIX11.cs: When mapping and unmapping windows, make sure the call
240           doesn't return until both WM_SHOWWINDOW and WM_ACTIVATE have come in
241           if the window is a top Form.
242           Reset all hwnd properties when the window has been destroyed so that
243           we don't land in any codepaths that might try to do something with it.
244           Added a bunch of debugging messages. If TRACE is defined, all X calls
245           are logged through DebugHelper. Set a few missing EntryPoint attributes.
246
247 2008-10-29  Mario Carrion <mcarrion@novell.com>
248
249         * ListViewItem.cs: Control enabled to support Accessibility:
250         - Internal events: UIATextChanged, UIASubItemTextChanged.
251         - Internal event UIATextChanged in ListViewSubItem that triggers
252         UIASubItemTextChanged.
253         * ListView.cs: Control enabled to support Accessibility:
254         - Internal events: UIACheckBoxesChanged, UIAMultiSelectChanged, 
255         UIAShowGroupsChanged, UIAViewChanged and UIALabelEditChanged.
256         - Internal event UIACollectionChanged in ColumnHeaderCollection.
257         - Internal event UIACollectionChanged in ListViewItemCollection.
258         - Internal properties: UIAHeaderControl, UIAColumns, UIARows, 
259         UIADefaultListViewGroup, UIAHScrollBar and UIAVScrollBar.
260         - Internal methods: UIAGetHeaderBounds.
261
262 2008-10-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
263
264         * ScrollableControl.cs: Actually fire the 2.0 Scroll event when we get
265         the event from the respective scrollbars.
266         Fixes #436709.
267
268 2008-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
269
270         * ComboBox.cs: Use the new CanNavigateAutoCompleteList property of the
271         textbox to know whether any navigation key will be handled or not. If
272         not, don't pass the message to the textbox, and use it here instead. 
273         * TextBox.cs: Define a new CanNavigateAutoCompleteList property -which
274         is more precise- than the previous AutoCompleteMatches one.
275         This should the keyboard navigation in ComboBox when using auto
276         complete modes.
277
278 2008-10-24  Jonathan Pobst  <monkey@jpobst.com>
279
280         * ComboBox.cs: Fix item height calculation based off Font to match .Net.
281         [Fixes bug #436730]
282
283 2008-10-24  Jonathan Pobst  <monkey@jpobst.com>
284
285         * ToolStripDropDownItem.cs: Call OnClick instead of base.OnClick so
286         overridden methods will get called.
287         * ToolStripItem.cs: Raise Click before MouseUp.
288         * ToolStripSplitButton.cs: Fix up some bounding rectangles to take
289         the item's location into account.
290         [Fixes bug #437683]
291
292 2008-10-24  Neville Gao <nevillegao@gmail.com>
293
294         * NumericUpDown.cs: Control enabled to support accessibility.
295         [Fiexes bug #438135]
296
297 2008-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
298
299         * TextBox.cs: Check that we actually have items no navigate, select
300         text when pressing enter, as well as handle direction keys only if
301         mode is different to Suggest or the suggest listbox is visible.
302
303 2008-10-23  Andreia Gaita  <shana@jitted.com>
304
305         * WebBrowser.cs: Use the new ContentStream property to retrieve
306           a stream encoded from the document content
307
308 2008-10-23  Andreia Gaita  <shana@jitted.com>
309
310         * HtmlDocument.cs,
311           HtmlElement.cs,
312           HtmlWindow.cs: Fix GetHashcode for null objects
313
314 2008-10-22  Andreia Gaita  <shana@jitted.com>
315
316         * HtmlDocument.cs,
317           HtmlElement.cs,
318           HtmlWindow.cs: Fix equality operators (fixes #428173)
319
320 2008-10-21  Jonathan Pobst  <monkey@jpobst.com>
321
322         * XplatUIWin32.cs: Apply patch from John Mortlock that ensures
323         mouse_state gets set during WM_MOUSEMOVE and WM_NCMOUSEMOVE.
324         [Fixes bug #436772]
325
326 2008-10-21  Jonathan Pobst  <monkey@jpobst.com>
327
328         * ComboBox.cs: Fire SelectedIndexChanged when the user selects the
329         same item with the mouse as was already selected.
330         [Fixes bug #436789]
331
332 2008-10-21  Brad Taylor  <brad@getcoded.net>
333         
334         * TextControl.cs: Break out code to get the visible range into
335           GetVisibleLineIndexes to be used in UIA code.
336         
337         * Line.cs:
338         * TextControl.cs:
339         * TextBoxBase.cs: Add comments indicating that the method or property
340           is used via reflection from UIA code.
341
342 2008-10-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
343
344         * ListViewItem.cs: Match .net serialization.
345         Fixes remaining part of #417520.
346
347 2008-10-20  Jonathan Pobst  <monkey@jpobst.com>
348
349         * ToolStripProfessionalRenderer.cs: Don't paint over a set BackgroundImage.
350
351 2008-10-20  Mario Carrion <mcarrion@novell.com>
352
353         * ErrorProvider.cs, ToolTip.cs, HelpProvider.cs: UIA internal property 
354         added: UIAToolTipRectangle.
355
356 2008-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
357
358         * ListViewItem.cs: When deserializing enumerate over the data, instead
359         of accessing the data directly. This way we handle much better the
360         cases were we lack information.
361         Fixes #417520.
362
363 2008-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
364
365         * ListView.cs: When removing an item from a main ListView.Items
366         collection (and not a ListViewGroupCollection.Items one), remove it
367         also from the group, as .net does. Patch by Mario Carrion (mario at
368         novell dot com).
369         Fixes #436653.
370
371 2008-10-19  Andreia Gaita  <avidigal@novell.com>
372
373         * Form.cs: Forms that get closed without a handle being created are
374         disposed in 2.0. Fixes failing FormTest.FormClose and
375         FormTest.FormClose2 on windows.
376
377 2008-10-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
378
379         * ListView.cs: If both scrollbars are visible, the vertical one
380         shouldn't extend too far down.
381         Fixes #435771.
382
383 2008-10-17  Jonathan Pobst  <monkey@jpobst.com>
384
385         * DataGridView.cs: Add the ability to resize columns and rows with
386         the mouse.  Also support double-clicking to autoresize.
387         * DataGridViewColumn.cs: Invalidate the grid if a column's width changes.
388         * DataGridViewRow.cs: Invalidate the grid if a row's height changes.
389         * DataGridViewTextBoxCell.cs: Add 1 to preferred width so ellipsis
390         isn't shown on autoresize.
391         [Fixes bug #420193]
392
393 2008-10-17  Mario Carrion <mcarrion@novell.com>
394
395         * ComboBox.cs: Remove UIAListbox.
396
397 2008-10-17  Mario Carrion <mcarrion@novell.com>
398
399         * ComboBox.cs, ListBox.cs: Using added/removed item in 
400           OnUIACollectionChangedEvent instead of index.
401
402 2008-10-17  Jonathan Pobst  <monkey@jpobst.com>
403
404         * ComboBox.cs: When we are sorting the items, if the item's type
405         doesn't support IComparer, use a default one that compares based
406         off the item's visible text.
407         [Fixes bug #436328]
408
409 2008-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
410
411         * ColumnHeader.cs: Invalidate ListView.header_control when setting
412         ImageIndex/ImageKey.
413         * ThemeWin32Classic.cs: When drawing the column header, draw a image
414         for the column if available, and make the required adjustments to the
415         text location.
416         Fixes #435105.
417
418 2008-10-17  Neville Gao <nevillegao@gmail.com>
419
420         * StatusBarPanel.cs: Control enabled to support accessibility.
421         [Fixes bug #435988]
422
423 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
424
425         * DataGridView.cs: When a user begins an edit in the 'new row',
426         make that a real row, and add a new 'new row'.  If the user
427         cancels the edit, remove the new 'new row' and reset everything.
428         Also, ensure UserAddedRow and UserRemovedRow events are raised.
429         [Fixes bug #430954]
430
431 2008-10-16  Ivan N. Zlatev  <contact@i-nz.net>
432
433         * TableLayoutSettings.cs: Fix NREs when deserializing and 
434         panel is not yet set.
435         [Fixes bug #436199]
436
437 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
438
439         * DataGridView.cs: Invalidate after deleting a row.
440
441 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
442
443         * DataGridView.cs: Handle Enter and Escape keys.
444           - Move call to EndEdit to MoveCurrentCell.
445           - Remove call to EndEdit from navigation key routines.
446           - Fire CellLeave and CellEnter.
447
448 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
449
450         * DataGridViewCell.cs: Some fixes to the new cell border
451         painting code.
452
453 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
454
455         * ThemeEngine.cs: Enable visualstyles rendering by default
456         (on platforms that support it).
457
458 2008-10-15  Ivan N. Zlatev  <contact@i-nz.net>
459
460         * XplatUIX11.cs, XplatUICarbon.cs: Do not Timer.Tick before 
461         MainForm.OnLoad has completed unless DoEvents is forced.
462         [Fixes bug #412536]
463
464 2008-10-15  Jonathan Pobst  <monkey@jpobst.com>
465
466         * ToolTip.cs: Ensure that Timer.Internal cannot be set to 0.
467
468 2008-10-15  Jonathan Pobst  <monkey@jpobst.com>
469
470         * Control.cs: Make our implementation of DrawToBitmap better 
471         match WmPaint.  [Fixes bug #435579]
472
473 2008-10-14  Andreia Gaita  <avidigal@novell.com>
474
475         * WebBrowser.cs: Use DocumentElement as the document's root for the
476         whole content. Should fix DocumentText and DocumentStream problems.
477
478 2008-10-14  Jonathan Pobst  <monkey@jpobst.com>
479
480         * DataGridViewColumnCollection.cs: Remove calls to OnColumnAddedInternal,
481         these will get called in DGV.OnCollectionChanged.  Make sure 
482         OnCollectionChanged always gets called.
483         * DataGridView.cs: Make a OnColumnRemovedInternal that removes the cells
484         from every row.  Call this in OnCollectionChanged.
485         [Fixes bug #433669]
486
487 2008-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
488
489         * ComboBox.cs: WM_KEYDOWN and WM_KEYUP messages should be sent to the
490         textbox if auto complete is used, since we need to navigate over it.
491         And in this case don't pass this messages to the base impl. Also hide
492         the auto complete list box when displaying the drop down listbox.
493         * TextBox.cs: new internal members to expose some of the auto complete
494         functionality to combobox.
495
496 2008-10-13  Ivan N. Zlatev  <contact@i-nz.net>
497
498         * XplatUIX11.cs, XplatUICarbon.cs, Form.cs: Do not Timer.Tick before 
499         MainForm.OnLoad has completed.
500         [Fixes bug #412536]
501
502 2008-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
503
504         * TextBox.cs: Apply an old-approved patch that adds autocomplete's
505         Append support to this controls. We need it to apply new patches.
506
507 2008-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
508
509         * Control.cs: When updating z order in child controls, send to back
510         the implicit controls. Also, do it explicitly, instead of making
511         GetAllControls return the implicit controls in a specific order, and
512         thus avoid depending on that, which could change in the future.
513         Fixes #434304.
514
515 2008-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
516
517         * X11Dnd.cs: Try to call Application.DoEvents before returning in a
518         call to StartDrag, since we must fire DragDrop/DragLeave *before*
519         that, as .net does - instead of firing DragDrop/DragLeave *after* the
520         call to Control.DoDragDrop has completed. This is needed since at the
521         point of returning, we have sent related dnd ClientMessages, but we
522         need to wait for them to fire the wmf respective ones.
523         Fixes #325076.
524
525 2008-10-09  Everaldo Canuto  <ecanuto@novell.com>
526
527         * LinkLabel.cs: Recreate link pieces when change Padding.
528
529 2008-10-09  Everaldo Canuto  <ecanuto@novell.com>
530
531         * LinkLabel.cs: Take Padding into account when recreate link pieces.
532         [Fixes bug #412530]
533
534 2008-10-08  Everaldo Canuto  <ecanuto@novell.com>
535
536         * Control.cs: Implement internal property PaddingClientRectangle, it will be
537         useful for drawing controls that must take care about Padding property.
538
539 2008-10-08  Jonathan Pobst  <monkey@jpobst.com>
540
541         * BindingSource.cs: Make item_type internal so we can access it in DGV.
542         * DataGridView.cs: Add support for autogenerating columns from a
543         BindingSource.
544
545 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
546
547         * DataGridView.cs: Comment out an exception that is getting thrown
548         too often currently.
549
550 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
551
552         * DataGridView.cs: Always rebind to the datasource, as things may
553         have changed in it that we aren't capturing yet.
554
555 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
556
557         * DataGridViewTextBoxCell.cs: Don't default to VerticalCenter font
558         drawing mode.  If we are top aligned, give ourselves some top padding.
559
560 2008-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
561
562         * X11Dnd.cs: When firing the default dnd enter/leave events, fire the
563         events on the control under the mouse pointer, instead of firing them
564         on the window generating the dnd operation. To achieve this re-use the
565         code used to get the window under the pointer when getting MouseMove
566         events.
567         Fixes #381876.
568
569 2008-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
570
571         * X11Dnd.cs: Don't check that that the window sending the dnd events
572         is the owner of the selection. Although Gtk+ sets it that way, it's
573         not a requirement of the XDnd protocol, and Qt doesn't seem to do it.
574         So, just as Gtk+ does, we set our window sending the dnd events as the
575         owner of the selection, but don't check it when receiving them. This
576         should fix interoperability with Qt/Kde.
577         Fixes #324251.
578
579 2008-10-06  Jonathan Pobst  <monkey@jpobst.com>
580
581         * DataGridView.cs: Make sure we take the vertical scrollbar into
582         account when autosizing columns.
583
584 2008-10-06  Jonathan Pobst  <monkey@jpobst.com>
585
586         * DataGridView.cs: Handle sorting datetimes.
587
588 2008-10-04  Ivan N. Zlatev  <contact@i-nz.net>
589
590         * ButtonBase.cs, Control.cs, Label.cs, PictureBox.cs, TabControl.cs, 
591         TextBoxBase.cs, ToolBar.cs, TrackBar.cs, TreeView.cs: Cleanup 
592         compilation warnings.
593
594 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
595
596         * RTF.cs, Application.cs, BindingContext.cs, BindingSource.cs, 
597         ContextMenuStrip.cs, Control.cs, Hwnd.cs, Line.cs, MaskedTextBox.cs, 
598         ProgressBar.cs, SaveFileDialog.cs, TextControl.cs, Theme.cs, 
599         ToolBar.cs, ToolStripItemCollection.cs, TrackBar.cs: Cleanup 
600         compilation warnings.
601
602 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
603
604         * DataGridView.cs, DataGridViewCell.cs, 
605         DataGridViewCellValidatingEventArgs.cs, 
606         DataGridViewComboBoxEditingControl.cs, DataGridViewHeaderCell.cs, 
607         DataGridViewRow.cs, DataGridViewRowHeaderCell.cs, 
608         DataGridViewTextBoxEditingControl.cs: Cleanup compilation warnings.
609
610 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
611
612         * HtmlElementEventArgs.cs, HtmlWindowCollection.cs: 
613         Cleanup compilation warnings.
614
615 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
616
617         * XplatUIWin32.cs: Cleanup compilation warnings.
618
619 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
620
621         * PropertyGrid.cs: Cleanup compilation warnings.
622
623 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
624
625         * DataGridViewRow.cs: Only clear the row background if we
626         are going to paint a new background.
627
628 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
629
630         * DataGridViewCell.cs, DataGridViewColumnHeaderCell.cs,
631         DataGridViewRowHeaderCell.cs: Remove PaintPartBorder and
632         use PaintBorder instead.        
633
634 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
635
636         * DataGridView.cs: When CellBorderStyle is set, update the
637         AdvancedCellBorderStyle to match.
638
639 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
640
641         * DataGridViewCell.cs: Add helper methods to convert Alignment
642         to TextFormatFlags and align rectangles.
643         * DataGridViewTextBoxCell.cs: Use Alignment when painting text.
644         * DataGridViewImageCell.cs: Use Alignment when painting the image.
645
646 2008-10-02  Ivan N. Zlatev  <contact@i-nz.net>
647
648         * ToolTip.cs: Display tooltips only for controls on the active form.
649         [Fixes bug #428115]
650
651 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
652
653         * DataGridView.cs: Make OnCellValueNeeded internal.
654         * DataGridViewCell.cs: Raise the CellValueNeeded event so the
655         user can supply their own value if they choose.
656
657 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
658
659         * DataGridViewColumnHeaderCell.cs: Create a new style object
660         so the DefaultCellStyle doesn't get changed.
661
662 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
663
664         * ToolStripItem.cs: Check to make sure the owner is actually
665         changing in InternalOwner before doing any work.  Fixes some
666         failing tests.
667
668 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
669
670         * DataGridViewColumnHeaderCell.cs: Correctly calculate style.
671         * DataGridView.cs: Use a column header's inherited style instead
672         of just using the default.
673
674 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
675
676         * SplitContainer.cs: Raise SplitterMoved when the splitter is
677         moved through code.
678
679 2008-10-01  Mario Carrion <mcarrion@novell.com>
680
681         * ScrollBar.cs: Internal property added: UIAThumbPosition.
682
683 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
684
685         * ToolStripOverflowButton.cs: Use InternalOwner instead of Owner.
686
687 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
688
689         * ToolStripItem.cs: When the user sets Owner, we need to remove
690         it from its previous owner and then add it to the new owner's
691         item collection.  Also, create InternalOwner, so we can set the owner
692         that doesn't do this new stuff.
693         * ToolStripItemCollection.cs: Use InternalOwner instead of Owner.
694
695 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
696
697         * ToolStripItem.cs: When our parent changes, recalculate our text
698         size, since we may be getting our Font from our parent.  When our
699         owner's Font changes, recalculate ourselves as we may be using
700         that font.
701
702 2008-10-01  Everaldo Canuto  <ecanuto@novell.com>
703
704         * MenuAPI.cs: Select the first option of a popup when opening the popup via
705         return key. [Fixes bug #413792].
706
707 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
708
709         * ToolStripItem.cs: Make Font, BackColor, and ForeColor be
710         ambient properties.  (Get their value from their parents if
711         values haven't been set.)
712
713 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
714
715         * ToolStripSystemRenderer.cs: Call overridden methods' bases
716         after our logic, so users can do painting by handling the events.
717         Currently, we draw over any user painting.
718
719 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
720
721         * ToolStripProfessionalRenderer.cs: Call overridden methods' bases
722         after our logic, so users can do painting by handling the events.
723         Currently, we draw over any user painting.
724
725 2008-09-30  Everaldo Canuto  <ecanuto@novell.com>
726
727         * MenuAPI.cs: Prevent NRE when deactivate menu. Fixes #413636.
728
729 2008-09-30  Jonathan Pobst  <monkey@jpobst.com>
730
731         * TreeNode.cs, TreeView.cs: Move logic that determines the node
732         image to draw to TreeNode.  Give Index/Keys put on the node
733         precedence over the global one for the TreeView.
734
735 2008-09-30  Jonathan Pobst  <monkey@jpobst.com>
736
737         * TreeNode.cs: Setting ImageIndex or ImageKey should reset the other.
738
739 2008-09-29  Mario Carrion <mcarrion@novell.com>
740
741         * ListBox.cs: Index fixed.
742
743 2008-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
744
745         * TabControl.cs: When expanding the tab -because it's selected now-,
746         using Right alignment, instead of adding some selected delta value to
747         the X origin, substract it, so it gets a location adjacent to the panel, 
748         instead of be more separated.
749         Fixes #409170.
750
751 2008-09-29  Jonathan Pobst  <monkey@jpobst.com>
752
753         * MessageBox.cs: Use SystemIcons for graphics instead of keeping our
754         own copies of them.
755
756 2008-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
757
758         * X11Dnd.cs: source and related fields should be set to IntPtr.Zero,
759         as well as the other static fields, to avoid using their previous
760         values my mistake when handling the dnd events. This should avoid
761         handling any status event after the drop has been finalized/cancelled.
762
763 2008-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
764
765         * X11Dnd.cs: We have to send a dnd enter event as soon as we start the
766         operation, instead of waiting until we get any movement - this will
767         help us to have the data available in case no movement was detected
768         and _still_ we have to fire DragEnter and DragLeave/DragDrop events.
769         Finally add a windows.forms-only fallback to fire the mentioned events
770         if no movement at all was detected, just like .net does.
771         Fixes #381876.
772
773 2008-09-27  Jonathan Pobst  <monkey@jpobst.com>
774
775         * ThemeWin32Classic.cs: When drawing a status bar panel, don't
776         return early if the text is empty because the icon doesn't get
777         drawn then.  [Fixes bug #428113]
778
779 2008-09-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
780
781         * FileDialog.cs: Implement basic support for sorting by columns in
782         Details view. Patch by Eric Petit.
783         Fixes #428006.
784
785 2008-09-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
786
787         * ThemeWin32Classis.cs: When drawing gridlines take into account the
788         case where ListView.ItemSize hasn't been computed, and provide a
789         fallback as well. This prevents a division by 0.
790
791 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
792
793         * ThemeVisualStyles.cs: Use ClientRectangle instead of Bounds to
794         correctly draw tooltip backgrounds.
795
796 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
797
798         * ImageList.cs: Change CopyTo implementation to ensure clones are
799         created of our images.
800         [Fixes bug #409169]
801
802 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
803
804         * Control.cs: When setting fonts, we need to ensure we change our
805         reference to the new font object, even if it represents the same
806         font as before.  If we don't, the original font can get disposed
807         and we will still try to use it.
808         [Fixes bug #386450]
809
810 2008-09-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
811
812         * FileDialog.cs: Take into account Tile view when selecting the view
813         (2.0 profile).
814
815 2008-09-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
816
817         * ThemeWin32Classic.cs: When drawing gridlines for ListView don't use
818         the item bounds, since we can't iterate over them in virtual mode.
819         Also fix wrong calculation of the gridlines when using scrolling.
820         Fixes #400390.
821
822 2008-09-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
823
824         * XplatUIX11.cs: When handling EnterNotify events, take into account
825         both the public and implicit controls when trying to detect the
826         grab/ungrab process. This should fix ListView selection in Details
827         view.
828
829 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
830
831         * TreeView.cs: Redraw the whole node area when the selected node changes.
832         Things like state images were not getting redrawn because the invalid
833         rectangle was too small.
834         [Fixes bug #428211]
835
836 2008-09-23  Mario Carrion  <mcarrion@novell.com>
837
838         * ListBox.cs: UIA Selection Pattern fully supported in ListBox control.
839         [Fixes bug #428993]
840
841 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
842
843         * Form.cs: Do not set the Form's icon in the backend if showicon = false.
844         [Fixes bug #428114]
845
846 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
847
848         * ThemeWin32Classic.cs: Allow tooltips to be multiline.
849         [Fixes bug #427884]
850
851 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
852
853         * StatusBar.cs: Add tooltip support.
854         [Fixes bug #428113]
855
856 2008-09-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
857
858         * ThemeWin32Classic.cs: Use StringAlignment.Center for the vertical
859         alignments of sub items in Details view. Patch by John Mortlock (johnm at 
860         hlaustralia.com.au).
861         Fixes #425360.
862
863 2008-09-23  Neville Gao <nevillegao@gmail.com>
864
865         * StatusBar.cs: Add UIA event in AddInternal () to support accessibility.
866         [Fixes bug #419079]
867
868 2008-09-22  Jonathan Pobst  <monkey@jpobst.com>
869
870         * TextBoxBase.cs: Set Text to "" instead of null in Clear().
871         [Fixes bug #428107]
872
873 2008-09-22  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
874
875         * ListView.cs: Don't do anything when EnsureVisible is called inside a
876         BeginUpdate/EndUpdate block.
877         Fixes #425049.
878
879 2008-09-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
880
881         * ListViewItem.cs: The semantics for the public .ctor of
882         ListViewSubItemCollection need us to already have a Text value for the
883         item, which in our implementation have as available *after* adding the
884         first sub item. So create an internal .ctor that satisfies our needs
885         and let the public .ctor have the same semantics as .net.
886         Fixes #427561.
887
888 2008-09-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
889
890         * ListControl.cs: Changes in Formatting related values should call
891         RefreshItems, as .net does.
892         * ComboBox.cs:
893         * ListBox.cs: In the respective overrides of RefreshItems calculate
894         layout as well as refreshing - again, this is what .net does.
895         Fixes #426168.
896
897 2008-09-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
898
899         * ListBox.cs: In UpdateTopItem, don' call to XplatUI.ScrollWindow,
900         since we are already doing that when we change the value of the
901         scrollbar or force the call to ScrollWindow in the same method. This
902         way we don't cause a Invalidate call for all the listbox bounds for
903         methods calling UpdateTopItem with an already updated top item. This
904         was happening specially calling EnsureVisible with already visible
905         items.
906
907 2008-09-18  Mike Gorse <mgorse@novell.com>
908
909         * Application.cs, IKeyFilter.cs, X11Keyboard.cs, XplatUI.cs,
910           XplatUIStructs.cs: Added KeyFilter
911         [Fixes bug #427039]
912
913 2008-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
914
915         * RelatedPropertyManager.cs: The properties returned by
916         GetItemProperties should be that ones of the *actual* object returned
917         by the property, not the property type - this is very special when the
918         property exposes a type, but the returned object actually is a child
919         class and implements more functionality and properties.
920
921 2008-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
922
923         * Binding.cs: Don't look for the property in the data source if the
924         passed string is empty.
925
926 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
927
928         * XplatUIX11.cs: Comment out _NET_WM_WINDOW_TYPE_DIALOG in order to 
929         fix unused variable warnings.
930
931 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
932
933         * XplatUIX11.cs: Send WM_HELP when F1 is pressed.
934         [Fixes bug #427073]
935
936 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
937
938         * XplatUIX11.cs: 
939          - Do not set _NET_WM_WINDOW_TYPE_DIALOG for modal forms, because this 
940          leads to the window manager overriding our border style and zorder. 
941          - Allow the activation of non-modal forms, which are children of a 
942          modal form.
943         [Fixes bug #423417]
944
945 2008-09-17  Ivan N. Zlatev  <contact@i-nz.net>
946
947         * XplatUIX11.cs, X11Structs.cs: For mapped windows SetTopMost should 
948         ask the window manager to do the work instead of changing the property 
949         directly.
950         [Fixes bug #423417]
951
952 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
953
954         * CurrencyManager.cs: Check for positon before call ChangeRecordState in
955         AddNew to fix some navigation for empty datasets. [Fixes #323053]
956
957 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
958
959         * FileDialog.cs: Remove OnPaint method on PopupButtonPanel and set 
960         InternalBorderStyle to BorderStyle.Fixed3D. It is the best way to get 3d
961         border and fixes some drawing issues when resize form.
962
963 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
964
965         * FileDialog.cs: Lots of layout fixes to mimic Win32. [Fixes #408752]
966         
967         * ThemeWin32Classic.cs: We don't need to reduce button size when it is
968         AcceptButton.
969
970 2008-09-17  Ivan N. Zlatev  <contact@i-nz.net>
971
972         * TextBoxBase.cs: For standard textbox the scrollbars are always 
973         visible if Multiline is true.
974         [Fixes bug #426896]
975
976 2008-05-12  Everaldo Canuto  <ecanuto@novell.com>
977
978         * DataGridTextBoxColumn.cs: Uncomment code accidentally commited in last
979         patch.
980         
981 2008-05-12  Everaldo Canuto  <ecanuto@novell.com>
982
983         [Fixes most od DBNull and HeadersVisible problems]
984         
985         * DataGrid.cs:
986         - ShowingColumnHeaders removed because we dont need it, ColumnHeadersVisible
987         returns the value that we need.
988         - Fixed FromPixelToColumn method that return zero for first     column and for
989         row header cell, now it returns -1 for row header cell.
990         - Fixed HitTest to check row header cell in column header area, it now
991         returns HitTestType.None. [Fixes #322864]
992         - Fixed the calculation of visible columns in UpdateVisibleColumn, now it
993         checks for RowHeadersVisible and other things.
994         - If an exception occurs when setting CurrentCell and user type 'yes' in
995         message dialog, invalidade current and new cell and set setting_current_cell
996         to false to prevent future errors. [Partially fixes #323050]
997
998         * DataGridColumnStyle.cs: Don't call EndEdit after set property_descriptor
999         value (SetColumnValueAtRow), it must be done by grid to properly show 
1000         messages. [Fixes #323050]
1001
1002         * ThemeWin32Classic.cs: Lots of fixes in DataGridPaintColumnHeaders to
1003         better draw column and row header. Also dont draw anything when column
1004         headers is not visible.
1005
1006 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1007
1008         * ThemeWin32Classic.cs: Hook ListViewItems into the ShowFocusCues
1009         logic.
1010
1011 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1012
1013         * TreeView.cs: Don't start editing a node on right click, only
1014         left click.
1015
1016 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1017
1018         * NativeWindow.cs: Reenable the ThreadExceptionDialog I accidentally
1019         disabled over a year ago.
1020         * Form.cs: Wrap calling Load in a try/catch because it can happen
1021         before the catch-all one in NativeWindow.
1022         [Fixes bug #425414]
1023
1024 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1025
1026         * ToolStripDropDownMenu.cs: Calculate the connected area better
1027         to take into account when the drop down is not directly under the
1028         owner item.
1029         * ToolStripProfessionalRenderer.cs: Draw the whole unconnected area.
1030
1031 2008-09-16  Mario Carrion <mcarrion@novell.com>
1032
1033         * ScrollBar.cs: New event added: UIAValueChanged, generated when
1034           LargeChange, SmallChange, Maximum or Minimum values are changed.
1035         [Fixes bug #426464]
1036
1037 2008-09-16  Mario Carrion <mcarrion@novell.com>
1038
1039         * ErrorProvider.cs: Component enabled to support accessibility.
1040         * Application.cs: Updated to Initialize UIA in ErrorProvider.
1041         [Fixes bug #426459]
1042
1043 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1044
1045         * TextBoxBase.cs: Flag has_been_focused when SelectionStart is set
1046         so we don't highlight on first focus.
1047         [Fixes bug #360869]
1048
1049 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1050
1051         * TextControl.cs: Correctly calculate the height of the area we 
1052         need to invalidate when we have started scrolling and viewport_y
1053         is used.  [Fixes bug #387608]
1054
1055 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1056
1057         * TextControl.cs: When getting the SelectedText, don't add in
1058         NewLine characters, as they are already contained in the lines.
1059         [Fixes bug #388115]
1060
1061 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
1062
1063         * TextBoxBase.cs: Replace the buggy Lines setter with one that
1064         simply concats the lines and send it to the Text setter.
1065         [Fixes issue #2 and #3 of 388115]
1066
1067 2008-09-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1068
1069         * Binding.cs: The default value of DataSourceNullValue should be
1070         Convert.DBNull actually. Also, the NullValue should only be used *if*
1071         itself is not null, and use the null/Convert.DBNull value instead.
1072
1073 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
1074
1075         * TextControl.cs: Add a method to convert a string newline to the
1076         newline enum.
1077         * TextBoxBase.cs: When the user hits enter, insert a native newline.
1078         [Fixes part 1 of bug #388115]
1079
1080 2008-09-15  Mario Carrion <mcarrion@novell.com>
1081
1082         * ToolTip.cs: UnPopup event set to internal to match public API.
1083
1084 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
1085
1086         * TextBoxBase.cs: If the user is using Ctrl-Tab to move focus, we
1087         have to remove the Ctrl in order for the focus moving code to kick in.
1088         [Fixes bug #426170]
1089
1090 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
1091
1092         * CheckedListBox.cs: Return the real item index from Add.  It may not be
1093         the last item if the list is sorted.  The user can change the NewValue in
1094         the ItemCheck event, we need to use that value if so.
1095         * ListBox.cs: Return the real item index from a sorted Add.
1096         [Fixes bug #426166]
1097
1098 2008-09-15  Ivan N. Zlatev  <contact@i-nz.net>
1099
1100         * MimeIcon.cs: Add null checks in the GnomeHandler, because it might 
1101         happen that the icons from the theme is missing or the particular size 
1102         unavailable.
1103         [Fixes bug #424981]
1104
1105 2008-09-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1106
1107         * Binding.cs: When assigning null or DBNull depending on value/ref type,
1108         use IsValueType instead to get the precise desired value.
1109         Fixes #424276.
1110
1111 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
1112
1113         * TreeNodeCollection.cs: When adding a new node to an opened node,
1114         we have to invalidate everything below the parent node because
1115         every node scoots down and we have to repaint them.
1116         [Fixes bug #411386]
1117
1118 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
1119
1120         * ThemeWin32Classic.cs: Take CheckBox and RadioButton's CheckAlign
1121         property into account when drawing.
1122         [Fixes bug #416064]
1123
1124 2008-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1125
1126         * ListBox.cs: When calling Items.Clear(), call
1127         SelectedIndexCollection.ClearCore instead of normal Clear method, to
1128         not fire any Selected*Changed event - this is done to match .net and
1129         don't have invalid values when changing the DataSourceProperty.
1130         Fixes #424273.
1131
1132 2008-09-12  Mario Carrion  <mcarrion@novell.com>
1133
1134         * HelpProvider.cs: Control enabled to support accessibility.
1135         * Application.cs: Updated to Initialize UIA in HelpProvider.
1136         [Fixes bug #425988]
1137
1138 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
1139
1140         * Form.cs: When we are showing a dialog box, if its owner is TopMost,
1141         make the dialog TopMost as well.
1142         [Fixes bug #425984]
1143
1144 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
1145
1146         * Win32DnD.cs, XplatUIWin32.cs: Applied patch from Andy Hume that handles
1147         clipboard data better.
1148         [Fixes bug #414446]
1149
1150 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
1151
1152         * TextBoxBase.cs: Applied patch from John Mortlock that ensures
1153         TextChanged and SelectionChanged events fire in the same order as .Net.
1154         [Fixes bug #425725]
1155
1156 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
1157
1158         * DataGridView.cs: When sorting a column, if it only contains numbers,
1159         do a numeric sort instead of a string sort.
1160         [Fixes bug #425849]
1161
1162 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
1163
1164         * TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Guard
1165         against NRE's when the settings have a null panel.
1166         * TableLayoutPanel.cs: When setting the TableLayoutSettings, ensure
1167         the panel gets set.
1168         [Fixes bug #425647]
1169
1170 2008-09-11  Mario Carrion  <mcarrion@novell.com>
1171
1172         * ToolTip.cs: Control enabled to support accessibility.
1173         * Application.cs: Updated to Initialize UIA in ToolTip.
1174         [Fixes bug #425277]
1175
1176 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
1177
1178         * Control.cs: Make the custom Enumerator internal to fix build.
1179
1180 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
1181
1182         * DataGridViewCheckBoxCell.cs: If our content is clicked and we aren't
1183         already in edit mode, begin edit mode.  Generally edit mode isn't
1184         started until the second click, but CheckBoxes are special.
1185
1186 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
1187
1188         * ErrorProvider.cs: Never try to add our icons to ContainerControl,
1189         since that can be set to anything.  Always add them to the Control's
1190         parent.  [Fixes bug #416058]
1191
1192 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
1193
1194         * ListView.cs: Use a custom enumerator for ListViewItemCollection
1195         so items can be deleted in a foreach.
1196         [Fixes bug #425342]
1197
1198 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
1199
1200         * DataGridViewRow.cs: Better implementation of GetPreferredHeight.
1201         Store the user set explicit height so that the row can be AutoSized
1202         and then when AutoSize is turned off, it can get its original size back.
1203         * DataGridView.cs: Use the Row's GetPreferredHeight instead of 
1204         duplicating the logic.  When setting AutoSizeRowsMode to None, reset
1205         rows' heights back to their explicit values.
1206         [Fixes bug #415780]
1207
1208 2008-09-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1209
1210         * DateTimePicker.cs: When getting focus, select the checkbox if we are
1211         already showing it. Also, don't change its value when pressing space
1212         if the checkbox is not visible (ShowCheckBox as false). Finally, the
1213         checkbox should remain selected as long as Checked is false, and the
1214         other parts are disabled.
1215         Fixes #424267.
1216         
1217 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
1218
1219         * MessageBox.cs: Handle shortcut keys to dialog buttons.
1220         [Fixes bug #425425]
1221
1222 2008-09-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1223
1224         * Binding.cs: When the value retrieved from the control property is
1225         null, don't return Convert.DBNull for Nullable instances, since they
1226         can *actually* get a null value.
1227         Fixes #424265.
1228
1229 2008-09-10  Jonathan Pobst  <monkey@jpobst.com>
1230
1231         * Control.cs: Add an internal field to force doublebuffering regardless
1232         of what the public mechanisms are set to.  This is because MS's native
1233         controls are doublebuffered even though their .Net bits are set to false.
1234         * ProgressBar.cs: Set force_double_buffer to true.
1235         [Fixes bug #406595]
1236
1237 2008-09-10  Jonathan Pobst  <monkey@jpobst.com>
1238
1239         * DataGridViewCheckBoxColumn.cs: Use the threestate constructor for
1240         the cell template.
1241         * DataGridViewCheckBoxCell.cs: Add proper support for threestate.
1242         * DataGridViewCell.cs: Implement GetEditedFormattedValue for types
1243         without EditingControls, paint background selection for types without
1244         EditingControls, reset the EditingCellValueChanged flag when the
1245         cell's value is committed.
1246         * DataGridView.cs: Make BeginEdit and EndEdit work with cells that don't
1247         have EditingControls, remove a double call to a cell's OnContentClickInternal,
1248         don't do cell changing logic in OnMouseDown if the cell didn't change.
1249         [Fixes bug #420351]
1250
1251 2008-09-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1252
1253         * DateTimePicker.cs: Fix the edition of am/pm specifier.
1254
1255 2008-09-09  Jonathan Pobst  <monkey@jpobst.com>
1256
1257         * TextControl.cs: Add "&" to the list of valid characters in a URL.
1258
1259 2008-09-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1260
1261         * DateTimePicker.cs: Before incrementing or decrementing any part in
1262         the textbox, end any current edit. Also when ending the current edit
1263         use the editing_part_index field instead of the current selected
1264         value, since they can be out of synch, and we really need to work on
1265         the *real* current edit part. Finally when PartData.Selected changes,
1266         always try to end any ongoing edit.
1267         This should fix some small errors handling mouse navigation and
1268         increase/decrease operations.
1269
1270 2008-09-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1271
1272         * DateTimePicker.cs: 'hh' and 'HH' formats (12 and 24 hour formats
1273         respectively) should handled different, since the 12 hours format
1274         needs the value typed by the user to be adjusted depending on the
1275         a.m/p.m value, so it is preserved, and only changed when the value
1276         reaches the 12 value (when it changes from a.m to p.m).
1277         Fixes part of #416555.
1278
1279 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
1280
1281         * ToolStrip.cs: Ensure MouseDown gets called for MenuStrip items.
1282         * ToolStripDropDownItem.cs: Don't fire events and such again if
1283         ShowDropDown is called on an already dropped down item.
1284         * ToolStripMenuItem.cs: Call ShowDropDown even if there aren't any
1285         subitems, the user may add some in the DropDownOpening event.
1286         [Fixes bug #417877]
1287
1288 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
1289
1290         * ComboBox.cs: Fix IOORE when setting SelectedItem to null.
1291         [Fixes bug #424270]
1292
1293 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
1294
1295         * MdiClient.cs: When looking for menustrips on a child form to merge,
1296         look inside ToolStripContainers.
1297         [Fixes bug #424264]
1298
1299 2008-09-08  Ivan N. Zlatev  <contact@i-nz.net>
1300
1301         * ErrorProvider.cs: Unbreak my previous commit.
1302
1303 2008-09-08  Ivan N. Zlatev  <contact@i-nz.net>
1304
1305         * ErrorProvider.cs: Icon should always be 16x16.
1306         [Fixes bug #424380]
1307
1308 2008-09-07  Ivan N. Zlatev  <contact@i-nz.net>
1309
1310         * GridEntry.cs: Invalidate the child items cache when the property 
1311         value changes.
1312
1313 2008-09-07  Ivan N. Zlatev  <contact@i-nz.net>
1314
1315         * GridEntry.cs, PropertyGridView.cs: 
1316            - Update the ReadOnly detection and rendering to finally hopefully 
1317            match the one of MSFT.
1318            - Niceify and move the debug CWLS.
1319         [Fixes bug #409028]
1320
1321 2008-09-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1322
1323         * ListView.cs: Don't call Invalidate at all from SetItemLocation,
1324         since we are already calling Invalidate for the entire control when
1325         needed - and call Redraw() when size changes, since we need to paint
1326         there by ourselved and not anymore from the mentioned method. 
1327         This should improve the layout process. Also clean some not needed calls 
1328         here and there.
1329
1330 2008-09-05  Jonathan Pobst  <monkey@jpobst.com>
1331
1332         * MenuAPI.cs: Add a null check to the Alt-F4 code.
1333         [Fixes bug #420309]
1334
1335 2008-09-05  Jonathan Pobst  <monkey@jpobst.com>
1336
1337         * ThreadExceptionDialog.cs: Disable AutoScaling for this dialog.
1338         [Fixes bug #423040]
1339
1340 2008-09-04  Ivan N. Zlatev  <contact@i-nz.net>
1341
1342         * GridEntry.cs, CategoryGridEntry.cs, RootGridEntry.cs, PropertyGrid.cs, 
1343         PropertyGridView.sc: Implement lazy/delayed propertygrid population 
1344         on item expansion. Improves performance and fixes bug #417955.
1345         [Fixes bug #417955]
1346
1347 2008-09-05  Stephane Delcroix  <sdelcroix@novell.com>
1348
1349         * Control.cs: only check for OptimizedDoubleBuffer in NET_2_0.
1350         fix the build.
1351
1352 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
1353
1354         * TextControl.cs: Add "_" to the list of valid characters in a URL.
1355         [Fixes bug #423408]
1356
1357 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
1358
1359         * Control.cs: If using OptimizedDoubleBuffer, ensure the clip 
1360         region gets set.
1361         [Fixes bug #414166]
1362
1363 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
1364
1365         * FontDialog.cs: When storing our font size from the starting font,
1366         use SizeInPoints instead of Size in case Size is a different unit
1367         from Points.
1368         [Fixes bug #416489]
1369
1370 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
1371
1372         * FileDialog.cs: When enter is pressed on a SaveFileDialog and we
1373         don't use it for anything else, check if a directory is highlighted.
1374         If it is, navigate into it.
1375         [Fixes bug #422087]
1376
1377 2008-09-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1378
1379         * Binding.cs: When acquiring a BindingManagerBase for the first time,
1380         check that the specified property actually exists in the data source,
1381         and throw an ArgumentException if that's not the case - this is only
1382         done for this scenario, since for later cases (such Position changes)
1383         we throw different exceptions (match .Net).
1384
1385 2008-09-03  Ivan N. Zlatev  <contact@i-nz.net>
1386
1387         * ButtonBase.cs CheckBox.cs, Control.cs, FlowLayoutPanel.cs, 
1388           FlowLayoutSettings.cs, GroupBox.cs, Label.cs, ListBox.cs, 
1389           PropertyGrid.cs, RadioButton.cs, TableLayoutPanel.cs, 
1390           TableLayoutSettings.cs, ToolStrip.cs, ToolStripDropDownButton.cs, 
1391           ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripSplitButton.cs, 
1392           ToolStripStatusLabel.cs: Add missing PerformLayout calls to various 
1393           properties.
1394           [Fixes bug #418684]
1395
1396 2008-09-03  Neville Gao <nevillegao@gmail.com>
1397
1398         * StatusBar.cs: Control enabled to support accessibility.
1399         [Fixes bug #419079]
1400
1401 2008-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1402
1403         * Binding.cs: When connecting the event handler for the "Changed"
1404         event for the property, only do it for PropertyManager, and not for
1405         CurrencyManager - this is exactly what does .Net, totally ignoring any
1406         change in the property of the elements of a list.
1407         Fixes the tests.
1408
1409 2008-09-02  Jonathan Pobst  <monkey@jpobst.com>
1410
1411         * XplatUIWin32.cs: Ensure we never send the WS_EX_MDICHILD flag
1412         to Windows when creating a window, as we fake MDI stuffs.
1413         [Fixes bug #421858]
1414
1415 2008-09-01  Ivan N. Zlatev  <contact@i-nz.net>
1416
1417         * TextBox.cs: Invalidate after UseSystemPasswordChar, so that the 
1418         change takes effect.
1419
1420 2008-08-24  Ivan N. Zlatev  <contact@i-nz.net>
1421
1422         * XplatUIX11.cs: Provide MouseButtons/State information to the XPlatUI.
1423         [Fixes bug #419001]
1424
1425 2008-08-27  Jonathan Pobst  <monkey@jpobst.com>
1426
1427         * DataGridView.cs: Raise CellContentClick event.
1428         [Fixes part of bug #420351]
1429
1430 2008-08-27  Mario Carrion  <mcarrion@novell.com>
1431
1432         * ScrollBar.cs: Control enabled to support accessibility.
1433         [Fixes bug #416759]
1434
1435 2008-08-27  Mario Carrion  <mcarrion@novell.com>
1436
1437         * ComboBox.cs: Control enabled to support accessibility.
1438         [Fixes bug #416663]
1439
1440 2008-08-27  Mario Carrion  <mcarrion@novell.com>
1441
1442         * ListBox.cs: Control enabled to support accessibility.
1443         [Fixes bug #416640]
1444
1445 2008-08-27  Jonathan Pobst  <monkey@jpobst.com>
1446
1447         * ComboBox.cs: Don't suppress the TextChanged event when changing
1448         the SelectedIndex.
1449         * ToolStripComboBox.cs: Listen to the ComboBox's TextChanged event
1450         and re-raise it.
1451         [Fixes bug #420673]
1452
1453 2008-08-26  Jonathan Pobst  <monkey@jpobst.com>
1454
1455         * ErrorProvider.cs: Fix a regression NRE when setting properties
1456         for a control before it has a parent.
1457         [Fixes bug #420305]
1458
1459 2008-08-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1460
1461         * Binding.cs: Use the BindingManagerBase.Current value to obtain
1462         connect the property "Changed" event, instead of using the data
1463         sources - this is useful when the property specifies actually a
1464         multiple objects path.
1465         Fixes part of #417973.
1466
1467 2008-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1468
1469         * RelatedPropertyManager.cs: PropertyManager instances associated to a
1470         nested properties should return not the properties of the data source
1471         itself, but the properties of the type of a specific property in the
1472         data source - match .net.
1473
1474 2008-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
1475
1476         * ListBox.cs (IntegerCollection): To avoid duplication, moved code for
1477         AddRange overloads into AddItems method, and added missing NULL check.
1478         Added extra argument check to RemoveAt for compatibility with MS. 
1479         Modified IList implementation of Add, Contains, IndexOf and Remove to
1480         throw an ArgumentException if item is not an int. Modified IList.Insert
1481         to throw a NotSupportException instead of an Exception. Implemented
1482         ICollection.
1483         (ObjectCollection): To avoid duplication, use AddItems method from
1484         AddRange overloads. On 1.0 profile, first perform NULL check on items
1485         in AddItems.
1486
1487 2008-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
1488
1489         * Control.cs: Do not modify bounds directly in .ctor's. Fixes bug
1490          #419087.
1491
1492 2008-08-22  Atsushi Enomoto  <atsushi@ximian.com>
1493
1494         * X11Keyboard.cs : comment out some Console.WriteLine().
1495
1496 2008-08-22  Atsushi Enomoto  <atsushi@ximian.com>
1497
1498         * X11Keyboard.cs : fixed wrong call to XOpenIM() which happened
1499           even if premises are not filled. Also XLookupString() was not
1500           receiving correct input, which blocked precise input handling
1501           on non-XIM mode.
1502
1503 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1504
1505         * ListView.cs: When calling OnCacheVirtualItems, cast to the right
1506         type of delegate, instead of EventHandler - this was causing a type
1507         cast exception in all apps handling this event.
1508         Fixes #417876.
1509
1510 2008-08-20  Jonathan Pobst  <monkey@jpobst.com>
1511
1512         * ToolStripDropDownItem.cs: Always raise DropDownOpening in
1513         ShowDropDown to give the user a chance to dynamically add
1514         drop down items.  [Step 1 of fixing bug #417877]
1515
1516 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1517
1518         * X11Dnd.cs: Don't fire pseudo motion DragOver events if we haven't
1519         had any mouse motion since the call to StartDrag, to match the dnd
1520         behaviour of .net.
1521         Fixes part of #381876.
1522
1523 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1524
1525         * XplatUIX11.cs: Only do the children control bounds check for EnterNotify
1526         if mode is NotifyUngrab, and let it flow if mode is NotifyNormal.
1527         Also, if we are actually moving into a different window after
1528         grabbing, generate a LeaveNotify event for the previous window, since
1529         we need to fire the leave events until the grab ends, not when
1530         actually moving outside of the control.
1531
1532 2008-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1533
1534         * XplatUIX11.cs: The check inside EnterNotify case to fire MouseEnter
1535         events only for client windows was wrong - we need to compare the
1536         client window against the window receiving the EnterNotify event, not
1537         against zero (since client window is never Zero, btw).
1538         This prevents having unnecessary handling of EnterNotify events for
1539         non-client windows when a gran begins.
1540
1541 2008-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1542
1543         * XplatUIX11.cs: Handling X ButtonPress events, we must *not* generate
1544         MouseMove/MotionNotify events at all (which should only happen after
1545         MouseUp/ButtonRelease, as .Net does).
1546         This avoids firing an extra and unnecessary MouseMove event just after
1547         every MouseDown event.
1548
1549 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
1550
1551         * LinkLabel.cs: Always clear any previous links when LinkArea
1552         is set.  [Fixes bug #410709]
1553
1554 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
1555
1556         * ToolStripProfessionalRenderer.cs: Revert last change.
1557         * ProfessionalColorTable.cs: For Classic, use SystemColors.Window
1558         for ToolStripDropDownBackground.
1559
1560 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
1561
1562         * ToolStripProfessionalRenderer.cs: Use Window color for the 
1563         background of dropdowns to match .Net when the user is not
1564         using the default white.  [Fixes bug #418108]
1565
1566 2008-08-19  Atsushi Enomoto  <atsushi@ximian.com>
1567
1568         * XplatUIWin32.cs : SetTimer() used to set wrong window handle and
1569           it caused timer registration twice. Fixed bug #418107.
1570
1571 2008-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1572
1573         [Correction: This is the actual change to X11Dnd issue, not the
1574         previous one, which was actually a different issue.]
1575
1576         * X11Dnd.cs: Increase the interval for the Timer, to not fire our
1577         pseudo motion HandleMouseOver method so aggresive. Also, don't call it
1578         when the pointer is actually in motion, but only when the pointer
1579         seems to stop (as .net does).
1580         Fixes part of #381876.
1581
1582
1583 2008-08-18  Jonathan Pobst  <monkey@jpobst.com>
1584
1585         * ListBox.cs: Fix CopyTo implementation.
1586         [Fixes bug #409169]
1587
1588 2008-08-18  Jonathan Pobst  <monkey@jpobst.com>
1589
1590         * ThemeWin32Classic.cs: Use ClientRectangle instead of Bounds when
1591         drawing a ComboBox's background.  Fixes bad disabled rendering when
1592         the control is not at 0,0.
1593         [Fixes bug #416063]
1594
1595 2008-08-16  Ivan N. Zlatev  <contact@i-nz.net>
1596
1597         * GridEntry.cs: Leave the ICustomTypeDescriptor handling up to the 
1598         ComponentModel layer, which will properly prioritize the attributes.
1599         Avoids wrong prioritization of duplicate attributes when retrieving 
1600         the converter and editor.
1601         [Fixes bug #417729]
1602
1603 2008-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1604
1605         * XplatUIX11.cs: Increase the interval for the Timer, to not fire our
1606         pseudo motion HandleMouseOver method so aggresive. Also, don't call it
1607         when the pointer is actually in motion, but only when the pointer
1608         seems to stop (as .net does).
1609         Fixes part of #381876.
1610
1611 2008-08-15  Ivan N. Zlatev  <contact@i-nz.net>
1612
1613         * GridEntry.cs: Perform stricter check for the ParentEntry's 
1614         PropertyDescriptor/PropertyOwner for the ICustomTypeDescriptor 
1615         implementation.
1616         [Fixes bug #417567]
1617
1618 2008-08-14  Geoff Norton  <gnorton@novell.com>
1619
1620         * XplatUICarbon.cs: Properly implement PeekMessage and DoEvents.
1621         Fixes #396983.  Properly fix ActiveWindow trackin and do not
1622         prematurely show POPUP windows.
1623
1624 2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1625
1626         * XplatUIX11.cs: Handle the obscured regions while scrolling using
1627         GraphicsExpose event, processing it just after we copy the scrolled
1628         area. This ensures that the next calls to ScrollWindow will copy
1629         regions already updated, and the scrolling will be smooth. Also remove
1630         the code that was trying to detect the obscured regions, since we are
1631         not using it anymore (too slow).
1632
1633 2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1634
1635         * ListBox.cs: Fix the -temporary- broken selection in ListBox for
1636         MultiExtended mode, by separating some logic between the ctrl/shift
1637         handling. Also ignore any MouseMove events generated together with
1638         MouseDown events - we are only interested in the real motion event.
1639         Fixes part of #414963.
1640
1641 2008-08-08  Jonathan Pobst  <monkey@jpobst.com>
1642
1643         * DataGridViewCell.cs: Guard against an AOORE when checking if a cell
1644         is selected.  [Fixes bug #414143]
1645
1646 2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
1647
1648         * GridEntry.cs: Check if current property is a ICustomTypeDescriptor 
1649         and not the parent one (the propertyowner). Fixes the behavior of 
1650         GetConverter/GetEditor.
1651         [Fixes bug #415452]
1652
1653 2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
1654
1655         * PropertyGrid.cs: Refresh should also repopulate the PropertyGrid.
1656         [Fixes part of bug #415452]
1657
1658 2008-08-05  Ivan N. Zlatev  <contact@i-nz.net>
1659
1660         * GridEntry.cs: ITypeDescriptorContext should be relative to the parent 
1661         GridEntry, not the current.
1662         [Fixes bug #413896]
1663
1664 2008-08-04  Ivan N. Zlatev  <contact@i-nz.net>
1665
1666         * TextBoxBase.cs: De-internalize max_length field.
1667         * RichTextBox.cs: Use base.MaxLength - both TextBoxBase and RichTextBox 
1668         share the same logic.
1669         [Fixes bug #414454]
1670
1671 2008-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1672
1673         * ListBox.cs: Selection changes made in the MouseDown handler should
1674         use the *Core versions of selection in SelectedIndices collection,
1675         since the SelectedIndexChanged/SelectedValueChanged events are fired
1676         until we get a MouseUp event, and thus we need to separate the logic
1677         from the events, as done in the keyboard navigation. Also, fire those
1678         selection events from keyboard navigation in SelectionMode.None, even
1679         if we don't have a selection, as .Net does.
1680
1681 2008-08-01  Jonathan Pobst  <monkey@jpobst.com>
1682
1683         * ToolStripButton.cs, ToolStripMenuItem.cs: Guard against a NRE my
1684         last change introduced when an item is clicked but isn't on a toolstrip.
1685
1686 2008-07-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1687
1688         * ListBindingHelper.cs: When looking for an object's properties, check
1689         if it implements ICustomTypeDescriptor, in which case we should
1690         resolve the propertu based on its GetProperties method, not in its
1691         actual properties. This is what .Net seems to do.
1692         Fixes a UsingWebBrowser problem during initialization.
1693
1694 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
1695
1696         * ToolStrip.cs: Fix an NRE caused by clicking on a ToolStripButton
1697         sitting on a MenuStrip.
1698
1699 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
1700
1701         * ToolStripButton.cs: If we "click" a top button on a menustrip that has
1702         no children with the keyboard, we need to release the keyboard capture.
1703         [Fixes bug #413567]
1704
1705 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
1706
1707         * ToolStripMenuItem.cs: If we "click" a top level menu item that has
1708         no children with the keyboard, we need to release the keyboard capture.
1709         [Fixes bug #413567]
1710
1711 2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
1712
1713         * ThemeVisualStyles.cs: Made ScrollBar rendering less strict so it supports
1714         the GTK+-based implementation of VisualStyles.
1715         * ThemeWin32Classic.cs: Exposed various layout values for use in the
1716         GTK+-based implementation of VisualStyles: ListViewGetHeaderHeight(Font),
1717         ListViewGetHeaderHeight(), ProgressBarChunkSpacing, ProgressBarGetChunkSize(),
1718         ProgressBarGetChunkSize(int), ProgressBarDefaultHeight,
1719         TrackBarGetThumbSize(), TrackBarVerticalTrackWidth,
1720         TrackBarHorizontalTrackHeight.
1721
1722 2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
1723
1724         * TabControl.cs: Added hot style handling for the scroll buttons.
1725         right_slider_state, left_slider_state are now of type PushButtonState to
1726         allow for a hot state. Added tracking of the mouse button being held down
1727         on a tab page. Extracted HasHotElementStyles, RightScrollButtonArea,
1728         LeftScrollButtonArea.
1729         * Theme.cs, ThemeWin32Classic.cs: Removed TabControlGetLeftScrollRect,
1730         TabControlGetRightScrollRect.
1731
1732 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
1733
1734         * MenuAPI.cs: Check for null GrabControl on ProcessMnemonic to prevent 
1735         runtime errors.
1736
1737 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
1738
1739         * Form.cs: Ensure that we reset the shown_raised flag after 
1740         the form is closed, so that we raise the show events the next 
1741         time the form is shown.
1742         [Fixes bug #413141]
1743
1744 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
1745
1746         * Form.cs: Ensure closing events are raised only once.
1747         [Fixes bug #413143]
1748
1749 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
1750
1751         * X11Keyboard.cs: Refactor SendKeyboardInput to accept the keycode, 
1752         so that we can successfully generate the LParam in-place instead of 
1753         in KeyEvent, which isn't called for e.g. MainMenu. Fixes keyboard 
1754         navigation for menus.
1755
1756 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
1757
1758         * MenuAPI.cs: When montion don't set the keyboard navigation state to 
1759         'navigating'. Fixes bug #411356.
1760
1761 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
1762
1763         [Fixed remaining issues of #406773 (#1)]
1764         * MenuItem.cs: UpdateMenuItem added to track the shotcut changes.
1765
1766         * MenuAPI.cs: Don't create tracker on TrackPopupMenu, it will be created in
1767         MainMenu (already done) and ContextMenu creation.
1768
1769         * ContextMenu.cs: Create tracker on construction. 
1770
1771 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
1772
1773         * MenuAPI.cs: For ContextMenu set GrabControl on TrackPopupMenu, it make
1774         possible to instantiate MenuTracker without GrabControl.
1775
1776 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
1777
1778         * MenuAPI.cs: On constructor dont set the GrabControl for non ContextMenu.
1779
1780         * MainMenu.cs: Set GrabControl on SetForm using current form.
1781
1782 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
1783
1784         * MenuAPI.cs: Chage grab_control to GrabControl and make it public.
1785
1786 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
1787
1788         * MenuAPI.cs: Check if menu is activated before deactivate it in 
1789         ProcessShortcut.
1790
1791 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
1792
1793         * TableLayoutStyleCollection, TableLayoutStyle.cs, RowStyle.cs, 
1794         ColumnStyle.cs: 
1795         Make the TableLayoutStyle owned by the the TableLayoutPanel, so that:
1796          - One style instance can only participate in a single style collection.
1797          - Styles can request their owner to layout whenever their properties 
1798          change.
1799          [Fixes bugs #412583 and #412582]
1800
1801 2008-07-29  Ivan N. Zlatev  <contact@i-nz.net>
1802
1803         * X11Keyboard.cs: Implement the generation of the LParam for 
1804         all keyboard messages.
1805         [Fixes bug #378728]
1806
1807 2008-07-29  Jonathan Pobst  <monkey@jpobst.com>
1808
1809         * ListBox.cs: Don't let the user set TopIndex so high that it
1810         scrolls up far enough to show empty items.
1811         [Fixes bug #412728]
1812
1813 2008-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1814
1815         * ThemeWin32Classic.cs: Actually commit the changes to fix #410880
1816         (I'm an idiot and forgot to commit the actual changes, as well as
1817         specify the right file, which is this one, not ListView.cs).
1818
1819 2008-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1820
1821         * ListView.cs: Don't draw ListViewSubItem instances from
1822         DrawListViewItem - we need to reuse the main item's drawing for the
1823         first sub item in case owner draw is true, but wants the system to
1824         do the default draw for the first sub item, without incurring in a
1825         recursion problem.
1826         Fixes #410880.
1827
1828 2008-07-28  Jonathan Pobst  <monkey@jpobst.com>
1829
1830         * ToolStripButton.cs: Update Checked for CheckOnClick before
1831         raising the Click event.  [Fixes bug #412505]
1832
1833 2008-07-28  Ivan N. Zlatev  <contact@i-nz.net>
1834
1835         * Form.cs: Remove some seems leftover code for non-TopLevel's 
1836         CreateParams, which is breaking ClientSize sizing, because it 
1837         removes the border window styles.
1838
1839 2008-07-27  Ivan N. Zlatev  <contact@i-nz.net>
1840
1841         * PropertyGrid.cs: Invalidate the View when the PropertyTab 
1842         changes.
1843
1844 2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>
1845
1846         * WebBrowser.cs: Removed debug output.
1847
1848 2008-07-25  Jonathan Pobst  <monkey@jpobst.com>
1849
1850         * FileDialog.cs: Apply patch from Ernesto to clean up some
1851         dialog messages.
1852
1853 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
1854
1855         * TableLayoutPanel.cs: Perform layout on GrowStyle change, so 
1856         that the change has an immediate effect.
1857
1858 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
1859
1860         * ScrollableControl.cs: Update PerformLayout calls to include 
1861         provide the name of the property that changed.
1862
1863 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
1864
1865         * TableLayoutPanel.cs: Draw relative to the DisplayRectangle 
1866         location. Fixes drawing of border and cell borders if scrollable.
1867
1868 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
1869
1870         * ScrollableControl.cs: Perform layouting after the AutoScroll 
1871         properties have changed, so that the changes have immediate 
1872         effect.
1873         [Fixes bug #409090]
1874
1875 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
1876
1877         * XplatUIX11.cs: Non Client area is actually Client such in the 
1878         case of NotifyIcon, so double check WholeWindow == ClientWindow 
1879         when adding an expose.
1880         [Fixes bugs #324237 and #357022]
1881
1882 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
1883
1884         * TableLayoutPanel.cs: Invalidate after layouting, so that we 
1885         repaint the cell borders.
1886
1887 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
1888
1889         * PropertyGridTextBox.cs: Stop filtering messages prior to our 
1890         disposal to avoid unexpected ObjectDisposedExceptions.
1891
1892 2008-07-24  Ivan N. Zlatev  <contact@i-nz.net>
1893
1894         * TableLayoutPanel.cs: Layout on Row/Column count change.
1895
1896 2008-07-22  Gert Driesen  <drieseng@users.sourceforge.net>
1897
1898         * ListViewItem.cs: Changed binary serialization to match MS. Fixes
1899         bug #409351.
1900         * PictureBox.cs: When ImageLocation is set to null or an empty string,
1901         only set image to null if it was previously initialized from an url
1902         (or using ImageLocation). In ImageLocation, load specified image
1903         asynchronously if WaitOnLoad is false. Added support for local file
1904         paths to LoadAsync, and added missing argument check.
1905
1906 2008-07-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1907
1908         * DateTimePicker.cs: 
1909         * ThemeWin32Classic.cs: Add a editing capability to DateTimePicker, in
1910         order to set the value as required (which means: when selection
1911         changes for a part being edited, and not before that if not needed).
1912         Also use an enum to describe which part are we using, and use the
1913         selection as a property in PartData, in order to notify the
1914         DateTimePicker owner that we need to end the current edit.
1915         Fixes #383462.
1916
1917 2008-07-17  Ivan N. Zlatev  <contact@i-nz.net>
1918
1919         * PropertyGridTextBox.cs: Validation should be performed only if we 
1920         are focused. We can lose focus for example if the Return key is used 
1921         to set the entry and there is an error. When the message box is 
1922         displayed we would have validate on click in the message box.
1923
1924 2008-07-16  Ivan N. Zlatev  <contact@i-nz.net>
1925
1926         * GridEntry.cs: Checking for DesignerSerializaitonVisibility.Content 
1927         in order to determine that we are expandable is wrong. There was a bug, 
1928         now fixed, in TypeDescriptor that was causing the wrong converter to be 
1929         returned which caused GetPropertiesSupported == false in most cases.
1930         [Fixes bug #409027]
1931
1932 2008-07-15  Jonathan Pobst  <monkey@jpobst.com>
1933
1934         * ImageList.cs: Fix ICollection.CopyTo implementation for
1935         ImageListCollection.  [Fixes bug #409169]
1936
1937 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
1938
1939         * MenuAPI.cs, ToolStripDropDown.cs: Use VirtualScreen instead of
1940         WorkingArea so that menus can appear on the second monitor
1941         when one has dual monitors.
1942
1943 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1944
1945         * TextBox.cs: Auto complete stuff in WndProc should be 2.0 only.
1946         Fixes build.
1947
1948 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1949
1950         * TextBox.cs: Implement navigation support for auto complete in
1951         TextBox, as well as refactor the code to show the auto complete window
1952         when receiving a WM_CHAR message, instead of TextChanged, since
1953         autocomplete itself should be able to set the Text a lot of times and
1954         finally only typing should show it, not changes from code.
1955
1956 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1957
1958         * TabControl.cs: When expanding the selected tab, don't adjust the
1959         width if alignment is Right, since it has a different offset than 0,
1960         as opposed to the other alignments.
1961         Fixes the selected tab not being painted at all with alignment = Right
1962         and using FillToRight size mode.
1963
1964 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
1965
1966         * TreeView.cs: Fix ToString to match MS.  [Fixes bug #409029]
1967
1968 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
1969
1970         * NumericUpDown.cs: Apply patch from Andy Hume to clamp out of range
1971         values from the textbox to the boundary values.  [Fixes bug #409026]
1972
1973 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
1974
1975         * TreeNodeCollection.cs: We were copying one too many elements when
1976         doing our array copy.  Fixes a crash when RemoveAt is called.
1977         [Fixes bug #408999]
1978
1979 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1980
1981         * TabControl.cs: When doing the layout and need to call FillRow -using
1982         FillToRight size mode-, use the overload receiving a bool param
1983         indicating whether we need to do a vertical or horizontal calculation.
1984         Fixes part of #399583.
1985
1986 2008-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1987
1988         * TextBox.cs: When painting, use the value returned by
1989         GetLastVisibleItem instead of using the cached last_item field, since
1990         there could be a desynchronization between the layout and the
1991         painting. Fixes a AOOR exception in auto complete mode.
1992
1993 2008-07-12  George Giolfan  <georgegiolfan@yahoo.com>
1994
1995         * ThemeVisualStyles.cs: Disabled when Application.VisualStyleState is
1996         NonClientAreaEnabled until our VisualStyles is modified to allow it.
1997
1998 2008-07-12  Gert Driesen  <drieseng@users.sourceforge.net>
1999
2000         * TextBox.cs: Fixed NRE in LostFocus. Avoid unnecessary initialization.
2001
2002 2008-07-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2003
2004         * TextBox.cs: When focus is lost, if the auto complete listbox is
2005         visible, hide it.
2006
2007 2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
2008
2009         * InternalWindowManager.cs: HandleSizing: Implemented a better minimum
2010         tracking size for tool windows.
2011         * Theme.cs, ThemeWin32Classic.cs : Extracted
2012         ManagedWindowSpacingAfterLastTitleButton.
2013
2014 2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
2015
2016         * ThemeEngine.cs: Remove the clearlooks, nice, and old gtk themes.
2017         They are bit-rotted and have always been listed as "unsupported".
2018
2019 2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
2020
2021         * PictureBox.cs: Don't crash if ImageLocation is set to "" or null.
2022
2023 2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
2024
2025         * ThemeVisualStyles.cs: Fixed minimized window height adjustment.
2026
2027 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
2028
2029         * ListBox.cs: Make sure last_item_visible gets reset before we try
2030         to do a layout due to scrollbars appearing or disappearing.
2031         [Fixes bug #408139]
2032
2033 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
2034
2035         * XPlatUIWin32.cs: Change GetMenuOrigin to calculate borders better
2036         for different window themes.  [Fixes bug #339140]
2037
2038 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
2039
2040         * ThemeWin32Classic.cs: Implemented minimized window border width properly,
2041         in ManagedWindowBorderWidth.
2042
2043 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
2044
2045         * InternalWindowManager.cs: Change MouseMove to take a point, so
2046         we can use the same point later on.
2047         * MdiWindowManager.cs: Store point sent to MouseMove so we can
2048         later reset to it.  On Windows, the Cursor.Position had already
2049         changed by the time we were resetting to it.
2050         [Fixes bug #363239]
2051
2052 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
2053
2054         * InternalWindowManager.cs: Ignore mouse actions on TitleButtons that
2055         are inactive.
2056         * ThemeWin32Classic.cs: Disable or hide MinimizeBox/MaximizeBox if
2057         user requested it.
2058         [Fixes bug #398686]
2059
2060 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
2061
2062         * MdiWindowManager.cs: Double-clicking on the title bar should not
2063         maximize a MDI form if MaximizeBox = false.
2064
2065 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
2066
2067         * ThemeVisualStyles.cs: Fixed a warning.
2068
2069 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
2070
2071         * ThemeVisualStyles.cs: Fixed warnings and formatted.
2072
2073 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
2074
2075         * ThemeVisualStyles.cs: Removed ManagedWindowGetMenuButtonSize. The base
2076         implementation produces a better result.
2077
2078 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
2079
2080         * ThemeVisualStyles.cs: Adjusted height and border rendering for minimized
2081         windows.
2082
2083 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
2084
2085         * Application.cs: Added VisualStylesEnabled because XplatUI.ThemesEnabled
2086         cannot be used from the ThemeEngine constructor.
2087         * ThemeEngine.cs: Changed the XplatUI.ThemesEnabled check to
2088         Application.VisualStylesEnabled because it does not work on X11.
2089
2090 2008-07-09  Jonathan Pobst  <monkey@jpobst.com>
2091
2092         * StatusBar.cs: Apply patch from Andy Hume to remove lazy instantiation
2093         that we did not always check for, as well as fixes to the IList
2094         implementations.  [Fixes bug #402703]
2095
2096 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
2097
2098         * IDeviceContext.cs: Added Dispose.
2099
2100 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
2101
2102         * Control.cs: Added OnSizeInitializedOrChanged.
2103         * Form.cs: OnLoadInternal: Added a call to
2104         Control.OnSizeInitializedOrChanged.
2105         * InternalWindowManager.cs:
2106          * HandleTitleBarMouseMove: No longer invalidates the parent window.
2107          * DrawTitleButton: Extracted Theme.ManagedWindowDrawMenuButton.
2108          * TitleButton: Added Entered.
2109          * TitleButtons.MouseMove: Added handling of TitleButton.Entered.
2110         * MdiWindowManager.cs:
2111          * HandleTitleBarMouseMove: Now invalidates the parent window when a mouse
2112          move over the maximized title buttons causes a change.
2113          * IsActive: Can now be called before the window is added to a MDI parent.
2114         * Theme.cs: Added ManagedWindowTitleButtonHasHotElementStyle,
2115         ManagedWindowDrawMenuButton, ManagedWindowOnSizeInitializedOrChanged.
2116         * ThemeVisualStyles.cs: Implemented proper managed window rendering.
2117         * ThemeWin32Classic.cs:
2118          * Extracted ManagedWindowDrawTitleBarAndBorders, ManagedWindowDrawTitleButton.
2119          * DrawTitleButton takes a new form parameter.
2120          * Added ManagedWindowTitleButtonHasHotElementStyle,
2121          ManagedWindowDrawMenuButton, ManagedWindowOnSizeInitializedOrChanged.
2122
2123 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
2124
2125         * ThemeEngine.cs: ThemeVisualStyles is now selected if
2126         Application.EnableVisualStyles has been called, even if the current system
2127         configuration does not support rendering with Visual Styles.
2128         * ThemeVisualStyles.cs: Now falls back to ThemeWin32Classic when Visual
2129         Styles should not be used.
2130
2131 2008-07-08  Jonathan Pobst  <monkey@jpobst.com>
2132
2133         * ComboBox.cs: PreferredHeight is not tied to ItemHeight.  Fixes 3rd
2134         ComboBox in FormsTest.
2135
2136 2008-07-08  Ivan N. Zlatev  <contact@i-nz.net>
2137
2138         * ThemeWin32Classic.cs: (ManagedWindowBorderWidth): width 3 is only 
2139         for fixed toolwindows.
2140
2141 2008-07-08  George Giolfan  <georgegiolfan@yahoo.com>
2142
2143         * Form.cs: SetBoundsCore: Added minimum size for minimized windows.
2144
2145 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
2146
2147         * Control.cs: CreateControl just returns if the Control is diposed 
2148         and doesn't throw ObjectDisposedException.
2149         [Fixes bug #406566]
2150
2151 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
2152
2153         * Control.cs: Do not create the control if the parent isn't created 
2154         yet, e.g in the case of a parented form on which .Show is called.
2155         It will be created when the parent is made visible/created.
2156         Improves #402446.
2157
2158 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
2159
2160         * Form.cs: Avoid recursively calling OnSizeChanged due to recursive 
2161         WM_WINDOWPOSCHANGED caused by the layouting code on win32.
2162         [Fixes bug #406786]
2163
2164 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
2165
2166         * Form.cs: When disposed set owner to null. Improves #402446.
2167
2168 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
2169
2170         * Form.cs, FlowLayoutPanel.cs: When calculating the PreferredSize 
2171         use children's PreferredSize if in AutoSize mode and ExplicitBounds 
2172         if not.
2173         * Form.cs: Take the Padding into account for the PreferredSize.
2174         [Fixes bug #402849]
2175
2176 2008-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2177
2178         * TabControl.cs: Since we don't support more than one direction in
2179         TabControl rows alignment (this is, the row becomes the
2180         bottom row when selected), make Direction return always 1. This way
2181         the layout doesn't get confused about a bad calculation.
2182         Fixes #399582.
2183
2184 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
2185
2186         * XplatUIX11.cs: Implement NC hit-testing for mouse down/up messages, 
2187         so that the wparam is properly set.
2188         Fixes form moving in the test case in bug 402446.
2189
2190 2008-07-07  Jonathan Pobst  <monkey@jpobst.com>
2191
2192         * FolderBrowserDialog.cs: If we can't find the SelectedPath, display
2193         the full tree instead of nothing.  [Improves bug #406584]
2194
2195 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
2196
2197         * ThemeWin32Classic.cs: Adjusted minimized window painting.
2198
2199 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
2200
2201         * InternalWindowManager.cs: No longer draws decorations for maximized MDI
2202         children.
2203
2204 2008-07-04  Jonathan Pobst  <monkey@jpobst.com>
2205
2206         * TreeView.cs: Add a null check when using CollapseAll on an
2207         empty tree.  [Fixes bug #406449]
2208
2209 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
2210
2211         * Form.cs: Make OnMenuComplete internal so we can call it.
2212         * MenuAPI.cs: Raise Form.MenuComplete when a menu item is clicked.
2213         [Fixes bug #399321]
2214
2215 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
2216
2217         * TabControl.cs: Handle Up and Down keys when TabControl is in
2218         vertical alignment.
2219         [Fixes bug #399585]
2220
2221 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
2222
2223         * TabControl.cs: Invalidate when we remove a tab.  Guard against
2224         an AOORE when trying to remove a tabpage that is not owned by the
2225         parent control.
2226         [Fixes bug #399927]
2227
2228 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
2229
2230         * ScrollBar.cs: Change the LargeChange calculation to be correct.
2231         Ensure we are using LargeChange instead of large_change so we our
2232         calculations are correct.
2233         [Fixes bug #403122]
2234
2235 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
2236
2237         * TableLayoutPanel.cs: When we change to a serialized TableLayoutSettings,
2238         we need to ensure the ColumnCount/RowCount gets set.
2239         [Fixes bug #404851]
2240
2241 2008-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2242
2243         * ListBox.cs: When handling item navigation, if selection mode is
2244         None, call EnsureVisible, since scrolling is normally handled by
2245         selection, that we are not calling in this case.
2246         Fixes #398345.
2247
2248 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
2249
2250         * ContainerControl.cs: Apply a patch from Ernesto Carrea that adds
2251         a null check to our focus walking code.  [Fixes bug #394332]
2252
2253 2008-07-02  Andy Hume <andyhume32 at yahoo dot co dot uk>
2254
2255         * ComboBox.cs: Case missed in bug 379596 "Support item
2256         navigation by entering text": On _close_ drop-down select
2257         the first item matching the text in the textbox.  [Fixes bug #397265]
2258
2259 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
2260
2261         * DataGridView.cs: Fix a crash when sorting by column headers, 
2262         mentioned in bug #404841.  Remove some dead switch cases.
2263
2264 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2265
2266         * ComboBox.cs:
2267         * TextBox.cs: Implement AutoComplete support for ComboBox, which just
2268         uses the AutoComplete support in the internal TextBox. Also TextBox
2269         can store a reference to ComboBox, in case AutoCompleteSource is set
2270         to ListItems (this is, ComboBox's items, and we don't want to pass an
2271         additional collection).
2272
2273 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2274
2275         * ListViewItem.cs: Restore the initial value of bounds rect to
2276         Rectangle.Empty, and is this value for Layout detection in virtual
2277         mode. Fixes the tests.
2278
2279 2008-06-30  Jonathan Pobst  <monkey@jpobst.com>
2280
2281         * XPlatUI.cs: Remove references to "new" X11 backend.
2282
2283 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
2284
2285         * Control.cs: Add an internal virtual OnDragDropEnd method 
2286         to allow controls such as ListBox, which depend on a sequence 
2287         of MouseDown+Move+End events, to handle the lack of a MouseUp 
2288         when a DnD operation is started in MouseDown.
2289         * ListBox.cs: If a DnD operation is started in MouseDown we won't 
2290         get a MouseUp, so reset our state whenever a DnD operation ends.
2291
2292 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
2293
2294         * PropertyGrid.cs: Clear the root griditem first thing when 
2295         new object/s is/are selected. Fixes some rare cases where 
2296         the View will get a paint request and won't know that the 
2297         grid is in the process of repopulating.
2298
2299 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
2300
2301         * XplatUIX11.cs, InternalWindowManager.cs: 
2302         If WS_EX_TOOLWINDOW is set in the CreateParams for a form MS 
2303         doesn't automagically update the FormBorderStyle, so we must 
2304         double check the CreateParams explicitly to determine if the 
2305         window is a toolwindow.
2306         * ThemeWin32Classic.cs: Use InternalWindowManager.IsToolWindow 
2307         instead of doing custom checks.
2308
2309         Fixes toolwindows for the test case in bug #402446
2310
2311 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
2312
2313         * Control.cs: Visibility of the control should be false 
2314         when the handle is destroyed in WmDestroy and not immediately 
2315         in Dispose(). This is effectively where the disposing process 
2316         ends even though the control is marked as Disposed immediately 
2317         after calling Dispose().
2318         [Fixes bug #402446]
2319
2320 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
2321
2322         * PropertyGridTextBox.cs: Start monitoring the mouse clicks 
2323         when the textbox gets focus.
2324         [Fixes bug #402704]
2325
2326 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
2327
2328         * PropertyGridTextBox.cs, PropertyGridView.cs: 
2329          - Alt + Down should show the drop down editor.
2330          - Focus the editor when showing it
2331         [Fixes bug #402710]
2332
2333 2008-06-25  Jonathan Pobst  <monkey@jpobst.com>
2334
2335         * ThemeWin32Classic.cs: Fix from Andy for panel text for panels
2336         that are not the first panel.
2337         * StatusBar.cs: Ensure that the X coordinate of panels is always
2338         stored.  Fix IList implementation of StatusBarPanelCollection to
2339         call the regular methods.
2340         [Fixes bug #403599, #402165]
2341
2342 2008-06-23  Jonathan Pobst  <monkey@jpobst.com>
2343
2344         * ThemeWin32Classic.cs: Fix position calculation for centered
2345         text on status bar panels.  [Fixes bug #402165]
2346
2347 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
2348
2349         * Splitter.cs: Fix Splitter to:
2350          - Work for arbitrary splitter size
2351          - Handle MinSize and MinExtra properly
2352          - Get rid of absolute positioning during drag and use relative
2353          - Multiple other fixes 
2354          [Fixes bug #338966]
2355
2356 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
2357
2358         * Cursor.cs: Show shouldn't hide the cursor.
2359
2360 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2361
2362         * ListViewItem.cs: When invalidating, add some extra space to bounds,
2363         since focus rectangle and selection can add some space and need to
2364         take into account those small offsets - specially in Details view.
2365         * ListView.cs: Instead of invalidate using item Bounds directly, call
2366         item.Invalidate, to have the code centralized.
2367         Fixes focused/selection garbage when selecting and deselecting items
2368         that are close.
2369
2370 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2371
2372         * ListViewItem.cs: Set bounds initially to -1 values - thus in virtual
2373         mode we can check whether we have to force a Layout or not, and can
2374         cache based on this, instead of avoiding caching all the the time. Do
2375         this check in GetBounds and TextBounds.
2376         Fixes selection in Details view.
2377
2378 2008-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2379
2380         * ListView.cs: Make HeaderControl internal, thus the theme engine can
2381         get its *real* height instead of trying to infere it.
2382         * ThemeWin32Classic.cs: When drawing gridlines, don't iterate over the items to
2383         get the position of them, since it's in general a bad idea in general,
2384         and because we can't do that in virtual mode. Instead get the first
2385         visible item as well as item height, and draw them.
2386         Fixes #400390.
2387
2388 2008-06-20  Jonathan Pobst  <monkey@jpobst.com>
2389
2390         * ToolStripSplitButton.cs: We can't add in extra width if
2391         the button is not AutoSize.  [Fixes bug #401279]
2392
2393 2008-06-20  Ivan N. Zlatev  <contact@i-nz.net>
2394
2395         * PaddingConverter.cs: 
2396          - Implement conversion to InstanceDescriptor
2397          - Handle "All" in CreateInstance by using the supplied 
2398          ITypeDescriptorContext.
2399          [Fixes bugs #396076 and #396078]
2400
2401          Patch by Andy Hume  <andyhume32@yahoo.co.uk>
2402          Code contributed under MIT/X11 license.
2403
2404 2008-06-19  Andy Hume <andyhume32 at yahoo dot co dot uk>
2405
2406         * ComboBox.cs, ListControl.cs, Control.cs, Button.cs, 
2407         ButtonBase.cs:
2408         Add Category attributes.
2409         Code is contributed under the MIT/X11 license.
2410
2411 2008-06-18  Ivan N. Zlatev  <contact@i-nz.net>
2412
2413         * Form.cs: 
2414          - Fix a NRE when unparenting a form.
2415          - Do not recreate or destroy a parented form when 
2416         unparenting. 
2417
2418 2008-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2419
2420         * TextBox.cs: Implement basic support for AutComplete with custom
2421         sources.
2422
2423 2008-06-18  Jonathan Pobst  <monkey@jpobst.com>
2424
2425         * ToolStripSplitButton.cs: Left and Top of ButtonBounds, SplitterBounds,
2426         DropDownButtonBounds should be from the origin of the button, not the
2427         ToolStrip.  [Fixes bug #401279]
2428
2429 2008-06-16  Sandy Armstrong <sanfordarmstrong@gmail.com> 
2430
2431         * X11DesktopColors.cs: Clear GTK_MODULES environment variable before
2432           running gtk_init_check.  This prevents GAIL from loading
2433           unnecessarily, which was breaking UIA support.  Initial fix for bug
2434           #375987.
2435         * Application.cs: Add UIA support to Winforms.  New static constructor
2436           uses reflection to initialize UIAutomationWinforms assembly.  Added
2437           PreRun event so UIA can initialize before the mainloop starts, and
2438           FormAdded event so UIA can provide a11y support for new Forms in an
2439           Application.
2440
2441 2008-06-16  Jonathan Pobst  <monkey@jpobst.com>
2442
2443         * DataGridView.cs: When binding to a dataset, subscribe to table
2444         and column change events.  Unsubscribe to these when we clear bindings.
2445         [Fixes bug #399601]
2446
2447 2008-06-14  Everaldo Canuto  <ecanuto@novell.com>
2448
2449         [DataGrid drawing refactory]
2450
2451         * DataGrid.cs: Fix the caption size, we need one pixel more for divider.
2452
2453         * DataGridColumnStyle.cs: Removing PaintHeader code, the draw operations
2454         must be handle by Theme, now it call DataGridPaintColumnHeader.
2455
2456         * DataGridTextBoxColumn.cs: Fix the textbox size. It must be one pixel less,
2457         test cases must be also fixed because it checks for wrong size.
2458
2459         * ThemeWin32Classic.cs: 
2460                 - Draw the bottom line of grid caption.
2461                 - Prevent to draw caption text when it is empty.
2462                 - Use CPDrawBorder3D for 3D efects to simplify code.
2463                 - Uses 3D (when not flat) to paint corner shared between row and column
2464                 header.
2465                 - Fix header drawing issues on win32, now borders are drawing.
2466                 - Fix column header paint issues to mimic win32.
2467                 - Adjust header drawing for last column, like first one it must be draw
2468                 different.
2469                 - Added DataGridPaintRowHeaderStar to draw star like .net does, it is
2470                 not an character.
2471                 - DataGridPaintColumnHeader created to draw column headers, it also
2472                 paint stuff right on Win32.
2473                 - Use DataGridPaintColumnHeader method instead of DataGridColumnStyle 
2474                 class.
2475
2476         * Theme.cs: 
2477                 - DataGridPaintRowHeaderStar method added.
2478                 - DataGridPaintColumnHeader method added.
2479
2480 2008-06-13  Jonathan Pobst  <monkey@jpobst.com>
2481
2482         * Control.cs: Don't reset to Dock style layout if DockStyle is
2483         set to none.  [Fixes bug #399316]
2484
2485 2008-06-12  Everaldo Canuto  <ecanuto@novell.com>
2486
2487         * Win32DnD.cs: Fix the check for control not equal null.
2488         Fixes bug #341420 and #381886. 
2489
2490 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
2491
2492         * DataGridViewRowCollection.cs: Update the indexes of rows after
2493         one has been removed.
2494         * DataGridViewSelectedRowCollection.cs: Add internal clear method.
2495         * DataGridViewSelectedColumnCollection.cs: Add internal clear method.
2496         * DataGridView.cs: Add support for deleting rows via Delete key, deleting
2497         rows for the Rows collection, or deleting rows from the bound DataSet.
2498
2499 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
2500
2501         * DataGridView.cs: Listen to a DataSet's changed event even
2502         when autogeneratecolumns is false.  Refactor the changed event's
2503         add row code to use the same as the existing add row code.
2504         [Fixes bug #399601]
2505
2506 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
2507
2508         * TextBoxBase.cs: We need to call RaiseSelectionChanged pretty
2509         much any time the caret moves and there is text, not just when
2510         the selection changes as one would think.
2511         * RichTextBox.cs: Override RaiseSelectionChanged and fire
2512         SelectionChanged.
2513         [Fixes bug #397271]
2514
2515 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
2516
2517         * FontDialog.cs: Forward ListBox keyboard events to the ListBox
2518         instead of trying to duplicate the code.
2519         * ListBox.cs: Make method internal so we can send keyboard events.
2520         [Fixes bug #398344]
2521         
2522 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
2523
2524         * TextBoxBase.cs: When pasting and checking the max length,
2525         subtract the selected text length (the text we will be replacing) from
2526         the document length.
2527         * TextControl.cs: Ensure every character insertion is reflected in
2528         charcount, so max length will work properly.
2529         [Fixes bug #398605]
2530
2531 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
2532
2533         * ListBox.cs: Ensure scrollbars are updated when a single
2534         column listbox with an already set top-index is created.
2535         [Fixes bug #398342]
2536
2537 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
2538
2539         * FontDialog.cs: Typing in the font/style textboxes should search
2540         the list boxes case-insensitively.  [Fixes bug #398343]
2541
2542 2008-06-11  George Giolfan  <georgegiolfan@yahoo.com>
2543
2544         * ThemeWin32Classic.cs: Managed window title bar layout now uses actual
2545         widths of icon and buttons instead of hard coded values.
2546
2547 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2548
2549         * ListBox.cs: When SelectionMode is None, clicking an item should move focus
2550         as well as generating a SelectedIndexChanged event, just like .Net does
2551         -surprise-.
2552         Fixes #398345.
2553
2554 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2555
2556         * ListBox.cs: When navigating items visually, use FocusedItem as the
2557         reference point instead of SelectedIndex, since even in
2558         SelectionMode.None we need to support navigation, and in that case we
2559         just can't use SelectedIndex.
2560         Fixes part of #398345.
2561
2562 2008-06-10  Jonathan Pobst  <monkey@jpobst.com>
2563
2564         * Control.cs: Make a SetBoundsInternal that avoids the new
2565         SetBounds code.
2566         * ComboBox.cs, Form.cs, ListBox.cs, ScrollableControl.cs: Use
2567         SetBoundsInternal instead of SetBoundsCoreInternal.
2568
2569 2008-06-10  Ivan N. Zlatev  <contact@i-nz.net>
2570
2571         * ScrollableControl.cs: Use SetBoundsCoreInternal instead of 
2572         SetBounds for the scrollbars.
2573
2574 2008-06-10  Andreia Gaita <avidigal@novell.com> 
2575
2576         * HtmlDocument.cs: Implement RightToLeft, ContextMenuShowing,
2577           FocusingEvent, LosingFocusEvent, OnMouseDown, OnMouseLeave,
2578           OnMouseMove, OnMouseOver, OnMouseUp
2579         * HtmlElement.cs: Optimize InsertBefore. Implement RemoveFocus,
2580           ScrollIntoView, Focusing, GotFocus, LosingFocus, LostFocus.
2581         * HtmlElementCollection.cs, HtmlWindowCollection.cs: Keep a reference
2582           to the WebControl object to pass to new collection objects
2583         * HtmlHistory.cs: Implement support for individual window histories.
2584         * HtmlWindow.cs: Implement History, Position, Size, WindowFrameElement,
2585           AttachEventHandler, DetachEventHandler, RemoveFocus, Error,
2586           GotFocus, LostFocus, OnLoad, OnUnload
2587         * WebBrowser.cs: Implement EncryptionLevel, ScrollBarsEnabled,
2588           ContextMenu
2589         * WebBrowserBase.cs: Implement Cursor, Enabled, UseWaitCursor, Add
2590           security level changes and context menu event support.
2591
2592 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2593
2594         * ComboBox.cs: Pressing Enter should close the dropdown listbox, just
2595         as happens with Esc, patch my Andy Hume.
2596         Fixes #396294.
2597
2598 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
2599
2600         * MdiWindowManager.cs: DrawMaximizedButtons now uses
2601         ManagedWindowGetMenuButtonSize instead of ManagedWindowButtonSize.
2602         * Theme.cs: Made MenuButtonSize platform dependent. Added
2603         ManagedWindowButtonSize.
2604         * ThemeWin32Classic.cs: Added ManagedWindowGetMenuButtonSize.
2605         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added MenuButtonSize.
2606
2607 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
2608
2609         * DateTimePicker.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs:
2610         Added support for rendering with VisualStyles.
2611
2612 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
2613
2614         * ComboBox.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
2615         support for rendering the border with VisualStyles.
2616
2617 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
2618
2619         * InternalWindowManager.cs: Added ShowIcon. Fixed IconRectangleContains when
2620         the icon is not shown.
2621         * ThemeWin32Classic.cs: Now uses InternalWindowManager.ShowIcon instead of
2622         its own logic.
2623
2624 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
2625
2626         * InternalWindowManager.cs: Draw minimized windows even if they don't have
2627         borders.
2628
2629 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
2630
2631         * ComboBox.cs, ListBox.cs: Use SetBoundsInternalCore instead of SetBounds.
2632
2633 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
2634
2635         * Control.cs: Fill in the defaults for unspecified bounds in SetBounds.
2636         [Fixes bug #397943]
2637
2638 2008-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2639
2640         * ComboBox.cs: When snaping height -because of IntegralHeight set to
2641         true- with ComboBoxStyle.Simple, set the height to PreferredHeight
2642         if the requested height leaves the listbox area with *less* than the
2643         required are to see one item. We were setting it to PreferredHeight
2644         even for values matching the height for a single item.
2645         Fixes #396297.
2646
2647 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
2648
2649         * DataGridViewCell.cs: Simplify GetInheritedStyle by using ApplyStyle.
2650
2651 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
2652
2653         * DataGridViewCell.cs: Use property instead of field.
2654
2655 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
2656
2657         * InternalWindowManager.cs, ThemeWin32Classic.cs: Removed useless Form.Icon
2658         null checks.
2659
2660 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
2661
2662         * Theme.cs: Added #region around the managed window code. Made the managed
2663         window methods abstract.
2664         * ThemeWin32Classic.cs: Added #region around the managed window code.
2665
2666 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
2667
2668         * InternalWindowManager.cs: Now only calls Theme.DrawManagedWindowDecorations
2669         if it has borders.
2670         * ThemeWin32Classic.cs: Removed HasBorders checks in
2671         DrawManagedWindowDecorations.
2672
2673 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
2674
2675         * InternalWindowManager.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
2676         Extracted ManagedWindowGetTitleBarIconArea.
2677
2678 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
2679
2680         * DataGridViewCellStyle.cs: Don't clone the font.
2681
2682 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
2683
2684         * DataGridViewCell.cs: Ensure we don't pass null to GetConverter.
2685
2686 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2687
2688         * XplatUIX1..cs: Use IntPtr size instead of int, as wee need to work
2689         also on 64 bit machinges. Fixes the BadWindow errors while scrolling
2690         in 64 bit machines.
2691
2692 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
2693
2694         * DataGridViewCell.cs: Correctly get converters for FormattedValue.
2695         Use Format/FormatProvider before trying converters.
2696         * DataGridViewCellStyle.cs: ApplyStyle should only apply things that
2697         are 'set'.  Change constructor to not use ApplyStyle since it wants
2698         everything applied.  Clone the Font.
2699         * DataGridViewRowHeaderCell.cs: Start with DefaultCellStyle and
2700         ApplyStyle the rest.
2701
2702 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2703
2704         * ListView.cs: We need to calculate the scrollbars even if the handle
2705         hasn't been created - this is needed when methods using scrollbars
2706         info, such EnsureVisible, are called before control has been created.
2707         Fixes #397272.
2708
2709 2008-06-05  George Giolfan  <georgegiolfan@yahoo.com>
2710
2711         * ThemeVisualStyles.cs: ScrollBar is now rendered with the VisualStyles API
2712         only if the elements are defined. 
2713
2714 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2715
2716         * ComboBox.cs: I'm an idiiot - forgot to commit the last ComboBox
2717         section. Also, when setting bounds, snap height as well as save the
2718         requested height if Dock has any value affecting the height: Left,
2719         Right and Bottom - important if using IntegralHeight as true.
2720
2721 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2722
2723         * ComboBox.cs: When calling UpdateComboBoxBounds, adjust the height
2724         passed to SetBounds to reflect the new adjusted height (Integral-wise), 
2725         instead of doing that only in our SetBoundsCore override, since the 
2726         bounds cached can be the same as saved one and we could not get the
2727         new height applied.
2728         Fixes #396297.
2729
2730 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
2731
2732         * Theme.cs: Made ToolWindowCaptionButtonSize platform dependent.
2733         * XplatUI.cs: Added ToolWindowCaptionButtonSize.
2734         * XplatUIDriver.cs: Changed SmallCaptionButtonSize to 15,15. Added
2735         ToolWindowCaptionButtonSize.
2736         * XplatUIWin32.cs: Added ToolWindowCaptionButtonSize.
2737
2738 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
2739
2740         * MdiWindowManager.cs: Now uses SystemInformation.DoubleClickTime instead of
2741         hard coded values.
2742         * Theme.cs: Made DoubleClickTime plaform dependent.
2743
2744 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
2745
2746         * Theme.cs: Made ToolWindowCaptionHeight platform dependent.
2747         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
2748         ToolWindowCaptionHeight.
2749
2750 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
2751
2752         * InternalWindowManager.cs: The adjustment to ensure positive client area
2753         sizes is now platform dependent (disabled on Windows).
2754         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
2755         RequiresPositiveClientAreaSize.
2756
2757 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
2758
2759         * Form.cs: Fixed null handling in Icon (see SettingIconToNull in the tests).
2760
2761 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
2762
2763         * InternalWindowManager.cs: Changed IconicSize to use
2764         SystemInformation.MinimizedWindowSize.
2765         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinimizedWindowSize.
2766         * XplatUIDriver.cs: Changed MinimizedWindowSize to provide a default value.
2767
2768 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2769
2770         * ComboBox.cs: If the combobox is anchored both on top and bottom,
2771         adjust height if IntegralHeight is true when calling SetBoundsCore (as
2772         likely the height was modified even if Height wasn't specified in
2773         BoundsSpecified parameter).
2774         Fixes part of #396297.
2775
2776 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com> 
2777
2778         * InternalWindowsManager.cs: Changed minimum window size while resizing to
2779         SystemInformation.MinWindowTrackSize.
2780         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinWindowTrackSize.
2781         * XplatUIDriver.cs: Changed MinWindowTrackSize to provide a default value.
2782
2783 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
2784
2785         * MenuItem.cs: Fixed Dispose.
2786
2787 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
2788
2789         * ColumnHeader.cs: CalcColumnHeader now uses the theme to get the height.
2790         * DataGridView.cs: * EnableHeadersVisualStyles: Fixed default value.
2791         EnteredHeaderCell, PressedHeaderCell: Added.
2792         * DataGridViewCell.cs: Refactored: Extracted GetBorderPen.
2793         * DataGridViewColumnHeaderCell.cs, DataGridViewRowHeaderCell.cs: Gave the
2794         theme a chance to override default painting.
2795         * ListView.cs: Added EnteredColumnHeader. Refactored: Extracted
2796         GetColumnHeaderInvalidateArea, Invalidate(ColumnHeader).
2797         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added members for
2798         ListView and DataGridView header rendering.
2799         
2800 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
2801
2802         * RichTextBox.cs: GetPositionFromCharIndex should return the 
2803         visual position of the character relative to the viewport.
2804         [Fixes part of bug #396664]
2805
2806 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
2807
2808         * GridEntry.cs: Make HasCustomEditor check for EditStyle != None 
2809         and not just for the existance of an UITypeEditor. In some cases 
2810         there is an editor associated just to do PaintValue, but which 
2811         doesn't actually support editing.
2812         [Fixes bug #396632]
2813
2814 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2815
2816         * ComboBox.cs: page_size as well as vscrollbar.LargeChange should be 1
2817         if needed, instead of 0 - this should help us in the corner case where
2818         we have more than one item but we are only partially showing 1 item.
2819         Fixes part of #374713.
2820
2821 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2822
2823         * XplatUiX11.cs: When scrolling and detecting the obscured areas in a
2824         control, return immediately if the any parent control's handle hasn't
2825         been created or isn't visible, as well as avoiding creating the parent
2826         Form if the handle hasn't been previously created.
2827         Fixes tests.
2828
2829 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
2830
2831         * TableLayoutPanel.cs: Use border sizes when calculating the
2832         panel's preferred size.  [Fixes part of bug #396433]
2833
2834 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
2835
2836         * SplitContainer.cs:
2837          - Fix SplitterDistance to update only if needed. 
2838          - Make it force min and max validation.
2839          - Handle properly mouse moves outside the resizeable area.
2840          [Fixes bug #396232]
2841
2842 2008-06-02  Andreia Gaita <avidigal@novell.com> 
2843
2844         * WebBrowserBase.cs: Implement support for ScriptErrorsSuppressed
2845           (which also suppresses all popup dialogs). Throw NotSupported
2846           exceptions for activex getters/setters.
2847         * WebBrowser.cs: Implement DocumentStream, DocumentType, IsBusy,
2848           IsOffline, ReadyState, ScriptErrorsSuppressed, ScrollbarsEnabled,
2849           StatusText, Version, GoSearch
2850         * HtmlDocument.cs: Add DocType support
2851
2852 2008-06-02  Andy Hume  <andyhume32@yahoo.co.uk>
2853
2854         * TextBox.cs: Implement TextBoxAutoCompleteSourceConverter.
2855         [Fixes bug 396124]
2856
2857 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
2858
2859         * GridEntry.cs: Pass the ITypeDescriptorContext everywhere.
2860
2861 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
2862
2863         * TableLayoutPanel.cs: When calculating preferred size, use the
2864         actual number of columns and rows, not what the user set them to.
2865         [Fixes bug #396141]
2866
2867 2008-06-02  George Giolfan <georgegiolfan@yahoo.com> 
2868
2869         * Form.cs: Enabled managed handling of tool window MDI children. Fixes bug
2870         394311.
2871
2872 2008-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2873
2874         * XplatUIX11.cs: When detecting areas obscured in a control by other
2875         toplevel windows while scrolling, return if the control hasn't a 
2876         container form.
2877         Fixes some tests.
2878
2879 2008-05-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2880
2881         * XplatUIX11.cs: Properly detect the visible area of a control being
2882         scrolled (obscured by other winforms controls and any X toplevel
2883         windows), to mark as invalid the requested area to be scrolled that
2884         isn't visible and thus can't be copied.
2885         Fixes #324513.
2886
2887 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2888
2889         * ListBox.cs: Compute the precise amount to vertically scroll when
2890         using DrawMode.OwnerDrawVariable.
2891         Patch by jkeymer (j.keymer@gmx.net).
2892
2893 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2894
2895         * ComboBox.cs: Use ListBox-like scrollbar values In ComboListBox 
2896         to avoid setting an invalid value for the verticall scrollbar 
2897         when navigating items. And, duh, also remove my silly debug messages
2898         from previous commits.
2899         Fixes #374713.
2900
2901 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
2902
2903         * FlatButtonAppearance.cs: Make FlatButtonAppearanceConverter exandable and 
2904         make it MS compatible.
2905
2906 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
2907
2908         * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs: 
2909          - Allow the editing of entries even if their parent is read-only.
2910          - Do not render expandable properties read-only.
2911          - Refactor expansion checks form PropertyGrid into PropertyGrid.
2912
2913 2008-05-30  George Giolfan <georgegiolfan@yahoo.com> 
2914
2915         * ScrollBar.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
2916         support for the hover style.
2917
2918 2008-05-29  Andreia Gaita <avidigal@novell.com> 
2919
2920         * ContainerControl.cs: Check for null dead-end when traversing the tree
2921           of parent controls.
2922         
2923           [Fixes #394332, patch by Ernesto Carrea]
2924
2925 2008-05-29  Geoff Norton  <gnorton@novell.com>
2926
2927         * XplatUICarbon.cs: Fix a culture-dependent conversion to be the
2928         constant that it is.  Fixes #393981
2929
2930 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
2931
2932         * Form.cs: Add a MonoTODO to the AutoScaleBaseSize setter explaining
2933         that the user probably doesn't want to set this.
2934
2935 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
2936
2937         * ThemeWin32Classic.cs: Don't let the text size be bigger than
2938         the control size for CheckBox/RadioBox.
2939         [Fixes part of bug #394645]
2940
2941 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
2942
2943         * PropertyGrid.cs: Update the state of the sorting buttons in 
2944         the toolbar if PropertySort is set programatically.
2945
2946 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
2947
2948         * GridItemCollection.cs: Add multiple items with conflicting names 
2949         support and also preserve name ordering.
2950         [Fixes #395345]
2951
2952 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
2953
2954         * GridItemCollection.cs: Revert my multiple items with same 
2955         name patch.
2956
2957 2008-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2958
2959         * ScrollBar.cs: Scrollbars should only react to left-clicks, not right
2960         or middle ones.
2961         Fixes part of #393908.
2962
2963 2008-05-28  Jonathan Pobst  <monkey@jpobst.com>
2964
2965         * ToolStripDrowDown.cs: When using the Show () methods that have a
2966         Control parameter, set the menu owner to that Control.
2967         [Fixes bug #394345]
2968
2969 2008-05-28  Ivan N. Zlatev  <contact@i-nz.net>
2970
2971         * PropertyGridTextBox.cs, PropertyGridView.cs: Implement validation.
2972         [Fixes bug #362756]
2973
2974 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
2975
2976         * GridItemCollection.cs: Refactor to support multiple items with the 
2977         same name.
2978         [Fixes bug #394314]
2979
2980 2008-05-27  Jonathan Pobst  <monkey@jpobst.com>
2981
2982         * Control.cs: The 2.0 check for illegal cross thread calls in 
2983         Control.Handle were throwing an exception when we were getting
2984         the Handle in order to invoke correctly.  Created a private
2985         version that does not contain this check.
2986         [Fixes bug #394531]
2987
2988 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
2989
2990         * PropertyGrid.cs: Respect DefaultTabType.
2991
2992 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
2993
2994         * ListView.cs: SPACE selects an item.
2995         [Fixes bug #393023]
2996
2997 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
2998
2999         * ListView.cs: Reset the search string whenever the items are 
3000         modified.
3001         [Fixes bug #393020]
3002
3003 2008-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3004
3005         * ListControl.cs: For the first added item PositionChanged is fired
3006         _before_ ItemChanged, which leave us in a temporary invalid state - so
3007         we need to set the selected index from ItemChanged handler *if* we
3008         know that the first item has just been added *and* the items have been
3009         actually added to the ListControl.
3010         Fixes #369048.
3011
3012 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3013
3014         * TabControl.cs: Only clicks with the left button should be
3015         handled.
3016         Fixes #393908.
3017
3018 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3019
3020         * ComboBox.cs: 
3021         * FIleDialog.cs:
3022         * TextBox.cs: Expose an internal method in TextBox to restore the
3023         original context menu, and call it from ComboBox to re-use it in the
3024         combobox containing the file name in FileDialog.cs.
3025         Fixes part of #393775.
3026
3027 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
3028
3029         * ThemeVisualStyles.cs: Added support for the hot ComboBox drop down button
3030         style.
3031
3032 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
3033
3034         * ComboBox.cs, Theme.cs, ThemeWin32Classic.cs: Added support for the hot drop
3035         down button style.
3036
3037 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3038
3039         * ComboBox.cs: Minor correction to previous patch: PageDown should
3040         also *try* to move by one item if the computed offset is negative,
3041         just like the PageUp case.
3042
3043 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3044
3045         * ComboBox.cs: When navigating using PageDown/PageUp the navigation
3046         should be done for at least 1 item, and not stay at the same item.
3047         Fixes part of #374713.
3048
3049 2008-05-23  Jonathan Pobst  <monkey@jpobst.com>
3050
3051         * FileDialog.cs: Add a FSEntryComparer, and use it to sort the
3052         directories.  [Fixes bug #393931]
3053
3054 2008-05-22  Andreia Gaita <avidigal@novell.com> 
3055
3056         * WebBrowser.cs: Implement DocumentText. Implement AllowNavigation.
3057           Don't fire events until the initial about:blank page has finished
3058           loading. Clean up events.
3059
3060 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
3061
3062         * XplatUIX11.cs : when we call WM_SETFOCUS, call X11Keyboard
3063           FocusIn() too. This should fix the issue on switching
3064           scim keyboards.
3065
3066 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
3067
3068         * X11Keyboard.cs : set XIM font size to somewhat reasonable
3069           number (ideally the input textbox size, but that could be
3070           too messy).
3071
3072 2008-05-22  Jonathan Pobst  <monkey@jpobst.com>
3073
3074         * ToolStripTextBox.cs: List for the TextBox's TextChanged and fire
3075         the ToolStripItem's TextChanged.  [Fixes bug #393597]
3076
3077 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3078
3079         * TabControl.cs: When invalidating in SelectedIndex and we need to
3080         inflate to take into account the border of the tabs, make sure that
3081         the invalidated rect doesn't overflow the control bounds, since that
3082         would avoid updating at all.
3083
3084 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3085
3086         * TabControl.cs: Don't substract scroller width from the row width,
3087         since we need to take into account the total width of the control when
3088         calculating the position of the tabs. This avoids showing scroller
3089         when it is actually not needed.
3090         Fixes part of #322325.
3091
3092 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3093
3094         * ThemeVisualStyles.cs: Added support for TextBoxBase.
3095
3096 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3097
3098         * RichTextBox.cs, TextBoxBase.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
3099         Extracted TextBoxBase.Draw and Theme.TextBoxBase*.
3100
3101 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
3102
3103         * DataGridView.cs: Only paint the top left header cell if there
3104         are columns.
3105
3106 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
3107
3108         * DataGridView.cs: When binding to a BindingSource, get the underlying
3109         list to bind to.  [Fixes bug #345483]
3110
3111 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
3112
3113         * DataGridView.cs: Do not bind to collection properties.
3114         [Fixes bug #337470]
3115
3116 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3117
3118         * ThemeVisualStyles.cs: Added support for the hot TrackBar thumb style.
3119
3120 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3121
3122         * Theme.cs, ThemeWin32Classic.cs, TrackBar.cs: Added support for the hot
3123         thumb style.
3124
3125 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3126
3127         * ThemeVisualStyles.cs: Added support for ToolTip transparent background.
3128
3129 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3130
3131         * Theme.cs, ThemeWin32Classic.cs, ToolTip.cs: Added support for transparent
3132         background.
3133
3134 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3135
3136         * ThemeVisualStyles.cs: Added support for ToolBar hot and hot checked styles.
3137
3138 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3139
3140         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs: Added support for hot and hot
3141         checked styles.
3142
3143 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3144
3145         * TabControl.cs: Extended to handle the hot style.
3146
3147 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
3148
3149         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs, UpDownBase.cs:
3150         Extended UpDownBase code to handle hot and disabled styles.
3151
3152 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
3153
3154         * DataGridView.cs: Handle databinding to generic list type things.
3155         [Fixes bug #325239]
3156
3157 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
3158
3159         * DataGridViewCellCollection.cs: Add a method to find the cell
3160         with the given DataPropertyName.
3161         * DataGridViewColumn.cs: Track if the column was autogenerated or not.
3162         * DataGridViewColumnCollection.cs: Add a method to clear all
3163         autogenerated columns.
3164         * DataGridView.cs: If AutoGenerateColumns is false, don't autogenerate
3165         columns.
3166         [Fixes bug #348082]
3167
3168 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
3169
3170         * DataGridView.cs: Don't try to update the RowTemplate with
3171         a null CellTemplate.
3172
3173 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
3174
3175         * DataGridViewColumn.cs: Allow IsDataBound to be set internally.
3176         * DataGridViewColumnCollection.cs: Ensure OnColumnAdded is called.
3177         * DataGridView.cs: Lots of fixes/enhancements to databinding to
3178         a DataSet.
3179
3180 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
3181
3182         * Control.cs: Remove invalidating implicit child controls when
3183         control is invalidated.  It was causing too many redraws on
3184         controls with implicit scrollbars.
3185         * ListView.cs: Listen to the Invalidated event and invalidate
3186         child controls.
3187
3188 2008-05-20  Andreia Gaita <avidigal@novell.com> 
3189
3190         * WebBrowserBase.cs, WebBrowser.cs: Hook up page loading events
3191         * HtmlDocument.cs: Check for nulls
3192
3193 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3194
3195         * Control.cs: In ControlCollection.RemoveInternal, remove the
3196         internal control before calling PerformLayout and OnControlRemoved,
3197         which was leaving us in an invalid state and causing a X error (bad
3198         match). Observe that Remove () call has the same order.
3199         Fixes an X error changing ComboBoxStyle.DropDownStyle.
3200
3201 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3202
3203         * TabControl.cs: Don't paint by ourselved and instead let OnPaint
3204         being fired if ControlStyles.UserPaint style is activated.
3205         Fixes #371905.
3206
3207 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
3208
3209         * GridEntry.cs: Don't be so strict when setting the value - 
3210         do not check if what we set is what we get.
3211         [Fixes bug #389245]
3212
3213 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
3214
3215         * XplatUIX11.cs: If there are no timers timeout should be 0
3216         [Fixes bug #363522]
3217
3218 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
3219
3220         * Control.cs: As a followup to invalidating implicit children when
3221         a control is invalidated, only invalidate them if they are in the
3222         clip rectangle.
3223
3224 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3225
3226         * ThemeVisualStyles.cs: Implemented partial support for ToolTip.
3227
3228 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3229
3230         * ThemeWin32Classic.cs: Refactored: Extracted ToolTipDrawBackground.
3231
3232 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3233
3234         * GroupBoxRenderer.cs: Fixed text area clipping in the Visual Styles case.
3235         * XplatUIWin32.cs: Made Win32DeleteObject public.
3236
3237 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
3238
3239         * GridEntry.cs: Determine HasDefaultValue more strictly by using 
3240         PropertyDescriptor.ShouldSerializeValue.
3241         [Fixes bug #391924]
3242
3243 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3244
3245         * ThemeVisualStyles.cs: Enabled support for ScrollBar element styles not present
3246         in the classic theme.
3247
3248 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3249
3250         * ScrollBar.cs: Added FirstButtonEntered, SecondButtonEntered, ThumbEntered,
3251         ThumbPressed.
3252         * Theme.cs, ThemeWin32Classic.cs: Added ScrollBarHasHotElementStyles,
3253         ScrollBarHasPressedThumbStyle.
3254
3255 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3256
3257         * TextRenderer.cs: Included some methods in the 1.1 profile.
3258
3259 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
3260
3261         * Control.cs: When we make a control visible, it may have been
3262         previously visible and while it wasn't visible, the z-order of
3263         things may have been shuffled, so the control needs to have its
3264         z-order updated just in case.  [Fixes bug #391518]
3265
3266 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3267
3268         * ThemeVisualStyles.cs: Added support for GroupBox.
3269
3270 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
3271
3272         * GroupBoxRenderer.cs: Included in the 1.1 profile.
3273
3274 2008-05-16  Atsushi Enomoto  <atsushi@ximian.com>
3275
3276         * XplatUIX11.cs, X11Keyboard.cs : redoing r103060 with fix for
3277           bug #389996; XSelectInput() behaved as mouse handler robber,
3278           so remove extra call to it.
3279
3280 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
3281
3282         * Control.cs: Simplify ControlCollection.Contains method.
3283
3284 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
3285
3286         * DataGridViewRow.cs: Implement GetPreferredSize.
3287
3288 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
3289
3290         * DataGridViewComboBoxCell.cs: Don't declare text twice.  Fixes build.
3291
3292 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
3293
3294         * DataGridViewComboBoxCell.cs: Implement some NIEX stuffs, better
3295         painting and edit control fixes.
3296
3297 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
3298
3299         * DataGridView.cs, DataGridViewCell.cs: Work around some external
3300         checks to make sure we are in an actual row/col for top left header cell.
3301         * DataGridViewTopLeftHeaderCell.cs: Implement some NIEX's.
3302
3303 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
3304
3305         * Control.cs: Use long instead of int when handling WParam from
3306         mousewheel scrolling.  Int was overflowing on Win64.
3307
3308 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
3309
3310         * FlowLayoutPanel.cs, ScrollableControl.cs: We need to layout the
3311         flow panel without scrolling first, and then calculate the 
3312         scrolling based on the new layout.  [Fixes bug #390149]
3313
3314 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
3315
3316         * ListBox.cs: Invalidate after scrolling up when selected index
3317         changes.  [Fixes bug #390151]
3318
3319 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3320
3321         * ComboBox.cs: When setting mode to Simple *and* height hasn't been
3322         set, default height to 150. I tried first with DefaultSize, but this
3323         is not generating a SetBoundsCore call before handle creation time, so
3324         we can take it into account. This is just what .net does.
3325
3326 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
3327
3328         * XplatUIX11.cs, X11Keyboard.cs: Had to revert eno's r103060,
3329         as it broke some stuff.  Calberto is filing a bug for eno to
3330         work with.
3331
3332 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3333
3334         * ComboBox.cs: When handling PageDown pressed event, set SelectedIndex
3335         to 0 is the current value is -1, and if style is not Simple, just
3336         return, like .net does.
3337         Fixes part of #374713.
3338
3339 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
3340
3341         * ThemeWin32Classic.cs, ThemeVisualStyles.cs: When calculating
3342         progress bar stuffs, use doubles instead of ints to prevent
3343         overflow.  [Fixes bug #389798]
3344
3345 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
3346
3347         * XplatUIX11.cs, X11Keyboard.cs :
3348           Significant refactoring on XIM support. Now IM engine UI
3349           should show up, at mostly-correct preedit position.
3350           - Eliminated use of FocusWindow, as it is never mapped
3351             and hence blocks correct preedit position. XIC is now
3352             created per window, and it must be destroyed too when
3353             the window is destroyed.
3354           - WM_QUIT messages should not be filtered even when hwnd
3355             is zombie. Filtering it could cause endless loop.
3356           - Preedit position must move only when the window is alive.
3357           - Make it IDisposable and make sure to release XIM/XICs.
3358
3359 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
3360
3361         * Timer.cs, Control.cs, Form.cs, ApplicationContext.cs,
3362           XplatUIX11.cs, XplatUIWin32.cs :
3363           fix for bug #325033 and #387693;
3364           - WM_QUIT should not be sent when no running application
3365             exists.
3366           - SetTimer/KillTimer (especially on win32) should be
3367             invoked for the window that the timer is/will_be attached.
3368           - There could be unattached timers to a window when it's
3369             started. For those timers, hold pending timers and when
3370             a window is mapped, attach them to it.
3371           - WaitForHwndMessage() could run into loop when
3372             WM_SHOWWINDOW is handled before this method is called.
3373             So, strictly check wm_showwindow state.
3374           - Tick handler should not be invoked while one Tick handler
3375             call is still running (introduced Busy state).
3376
3377 2008-05-13  Andreia Gaita <avidigal@novell.com> 
3378
3379         * WebBrowserBase.cs: Override Internal alternative methods for
3380           SetBoundsCore and OnResize instead of the protected ones.
3381         * Control.cs: Move SetBoundsCore and OnResize implementations to
3382           SetBoundsCoreInternal and OnResizeInternal, so they can be
3383           overriden internally (WebBrowserBase needs to catch them but can't
3384           override the protected methods without api compat problems)
3385
3386 2008-05-13  Andreia Gaita <avidigal@novell.com> 
3387
3388         * WebBrowserBase.cs: Hiding away non-public overrides for api compat
3389
3390 2009-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3391
3392         * Binding.cs:
3393         * ListView.cs: Remove debug messages.
3394
3395 2008-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3396
3397         * ComboBox.cs: Don't do any calculation for simple mode if the listbox
3398         area is empty. Also calculate scrollbars in Simple mode based in area
3399         height and total number of items, not in MaxDropDownItems.
3400         Fixes part of #371991.
3401
3402 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3403
3404         * PictureBox.cs: Always invalidate on resize.  Fixes an app for jhill.
3405
3406 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3407
3408         * BindingSource.cs: GetListSortDescription is not public.
3409
3410 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3411
3412         * WebBrowser.cs, WebBrowserBase.cs, WebBrowserSiteBase.cs: corcompare.
3413
3414 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3415
3416         * HtmlElement.cs: Fix parameter names to match MS.
3417         * HtmlWindowCollection.cs: Should not be sealed.
3418
3419 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3420
3421         * ThemeWin32Classic.cs: Always draw the scrollbar area under the thumb
3422         button, because the thumb button will not get drawn if the scrollbar
3423         is disabled.  [Fixes bug #389262]
3424
3425 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3426
3427         * ListBox.cs: Handle End key for multi-column listboxen.
3428         [Fixes bug #389266]
3429
3430 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3431
3432         * ListBox.cs: Fix algorithm to determine which column our item is in.
3433         [Fixes bug #389265]
3434
3435 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3436
3437         * ListBox.cs: Invalidate when the listbox is resized.
3438         [Fixes bug #389256]
3439
3440 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3441
3442         * ListBox.cs: There is always at least one row in the ListBox (if
3443         we are doing these calculations.)  [Fixes bug #389253]
3444
3445 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
3446
3447         * ListBox.cs: There is always at least one column in the ListBox.
3448         [Fixes bug #389250]
3449
3450 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3451
3452         * ComboBox.cs: When handle is created call UpdateComboBoxBounds to
3453         ensure in Simple mode that the height is exactly the requested one.
3454         Also add the ComboBoxListControl to the controls collection in Simple
3455         mode even if handle hasn't been created.
3456         Fixes part of #371991.
3457
3458 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3459
3460         * ComboBox.cs: For ComboListBox control -specially in Simple mode-, give focus to
3461         our ComboBox owner instead of giving it back to the previous control (
3462         as done in other controls). Also remove the empty override of Select
3463         method, since we want to be selected *and* give focus to our owner.
3464         This should let the user do keys-navigation in Simple mode. 
3465
3466 2008-05-10  Geoff Norton  <gnorton@novell.com>
3467
3468         * XplatUICarbon.cs: Dont use HIViewScrollRect as it's causing painting
3469         problems with rapid scrolling of treeviews. Fixes #381084
3470
3471 2008-05-10  Geoff Norton  <gnorton@novell.com>
3472
3473         * XplatUICarbon.cs: Deactivate the active window before
3474         activating the desired window.  Completes fixing #386504
3475
3476 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3477
3478         * ListView.cs: When calculating scrollbars, set horizontal scroll bar
3479         SmallChange to the item size width plus the padding, to match .net.
3480
3481 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3482
3483         * FileDialog.cs: Apply the custom filter typed by the user in the file
3484         name combobox as much as possible while navigating in the file dialog.
3485         Fixes #385261.
3486
3487 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3488
3489         * Binding.cs: Actually use NullValue if the retrieved value of
3490         data source is null or DBNull. Makes a test pass.
3491
3492 2008-05-09  Jonathan Pobst  <monkey@jpobst.com>
3493
3494         * ErrorProvider.cs, Form.cs: Get icons from ResourceImageLoader.
3495         * MimeIcon.cs: Provide a way to get icons from resources.
3496
3497 2008-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3498
3499         * Binding.cs: When the value retrieved from the control to be assigned
3500         to the data source is null, actually use the 2.0 DataSourceNullValue
3501         value. Make pass a data binding test.
3502
3503 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
3504
3505         * Control.cs: We need to invalidate implicit children even when
3506         invalidate is called with invalidatechildren = false.  (Implicit
3507         children are really part of the parent.)
3508         * ListView.cs: Double-buffer internal child controls for less
3509         flicker.
3510         * ThemeWin32Classic.cs: Remove an extra nested loop in drawing
3511         owner ListView subitems for greatly increased performance.
3512         [Fixes bug #388477]
3513
3514 2008-05-08  Carlos Alberto Cortez <calebrto.cortez@gmail.com>
3515
3516         * FileDialog.cs: When the user types a wildcard character in the
3517         filename combobox, update the contents of the folder using the text as
3518         a filter.
3519         Fixes part of #385261.
3520
3521 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
3522
3523         * ListBox.cs: Various fixes for MultiColumn listboxen.
3524         [Fixes bug #388114]
3525
3526 2008-05-08  Andreia Gaita <avidigal@novell.com> 
3527
3528         * HtmlElement.cs: Implement Style property
3529
3530 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
3531
3532         * ListBox.cs: Respect checkboxes when measuring item size.
3533         * ThemeWin32Classis.cs: When drawing list items, don't draw
3534         text outside of the item's bounds to prevent overlapping.
3535         (.Net actually overlaps, but that's just silly.)
3536         [Fixes bug #388117]
3537
3538 2008-05-08  Everaldo Canuto  <ecanuto@novell.com>
3539
3540         * NotifyIcon.cs: Call SetForegroundWindow before show context menu. Thanks
3541         Gert Driesen. Fixes bug #324830. 
3542
3543 2008-05-07  Everaldo Canuto  <ecanuto@novell.com>
3544
3545         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: SetForegroundWindow
3546         method implemented.
3547
3548 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3549
3550         * BindingSource.cs: When calling IsSynchronized, return the value of
3551         the related IList list.
3552
3553 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3554
3555         * ListBindingHelper.cs: Fix some bits in GetListItemProperties, to
3556         make a test pass.
3557
3558 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
3559
3560         * DataGridView.cs: Implement PageUp/PageDown keys.  Extend keyboard
3561         navigation to scroll the grid if the current cell is not visible.
3562
3563 2008-05-07  Andreia Gaita <avidigal@novell.com> 
3564
3565         * HtmlElement.cs: Implement TabIndex
3566
3567 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
3568
3569         * ListBox.cs: Respect ScrollAlwaysVisible and HorizontalScrollbar
3570         properties, even when there are no items.
3571         [Fixes bug #387611]
3572
3573 2008-05-07  Ivan N. Zlatev  <contact@i-nz.net>
3574
3575         * NativeWindow.cs: Add support for multiple handles per window.
3576         * NativeWindows.cs, LibSupport.cs, Control.cs, XplatUIX11GTK.cs, 
3577         XplatUIX11.cs, X11Display.cs: Do not access NativeWindow.windows_collection 
3578         directly - use FromHandle instead.
3579         [Fixes bug #374660]
3580
3581 2008-05-07  Andreia Gaita <avidigal@novell.com> 
3582
3583         * HtmlElement.cs: Implement InnerHTML setter
3584
3585 2008-05-07  Andreia Gaita <avidigal@novell.com> 
3586
3587         * HtmlDocument.cs: Implement Focused
3588
3589 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3590
3591         * BindingSource.cs: Minor fixes to the the ApplySort and Remove sort
3592         methods, as well as add messages to the exceptions.
3593
3594 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3595
3596         * BindingSource.cs: Setting DataSource should only reset DataMember if
3597         the previous value was null (make pass a not working test).
3598
3599 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3600
3601         * BindingSource.cs: When EndInit call is postponed and is called until
3602         DataSource.EndInit is called, remove the handler for data source.
3603
3604 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
3605
3606         * ToolStripManager.cs: Don't use IsAlive, race condition, etc. etc.
3607
3608 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
3609
3610         * ToolStripManager.cs: Store references to toolstrips as
3611         weak references so they do not prevent forms from getting collected.
3612         [Fixes bug #386483]
3613
3614 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
3615
3616         * TrackBar.cs: We can't set ResizeRedraw because it isn't set
3617         on .Net.  So do the same thing in WndProc.
3618
3619 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
3620
3621         * TrackBar.cs: Commit patch from Andy Hume that corrects
3622         the clickable areas to better match .Net.
3623         [Fixes bug #387074]
3624
3625 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
3626
3627         * TrackBar.cs: Commit patch from Andy Hume that adds the
3628         ResizeRedraw control flag so the track bar repaints itself
3629         when it is resized.  [Fixes bug #387072]
3630
3631 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
3632
3633         * TrackBar.cs: Commit patch from Andy Hume that adds better
3634         support for keyboard navigation when the TrackBar is vertical.
3635         [Fixes bug #387071]
3636
3637 2008-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3638
3639         * BindingSource.cs: Implement ISupportInitializeNotification support.
3640
3641 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
3642
3643         * ThemeVisualStyles.cs: Added support for ToolBar.
3644
3645 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
3646
3647         * ToolBar.cs: Made the Vertical property internal.
3648
3649 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
3650
3651         * ThemeVisualStyles.cs: Added support for TrackBar.
3652
3653 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
3654
3655         * ThemeWin32Classic.cs: Refactored: Extracted TrackBarGetThumbSize,
3656         TrackBarDrawVerticalTrack, TrackBarDrawVerticalThumbRight,
3657         TrackBarDrawVerticalThumbLeft, TrackBarDrawVerticalThumb,
3658         TrackBarGetVerticalTickPainter, TrackBarDrawHorizontalTrack,
3659         TrackBarDrawHorizontalThumbBottom, TrackBarDrawHorizontalThumbTop,
3660         TrackBarDrawHorizontalThumb, TrackBarGetHorizontalTickPainter.
3661
3662 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
3663
3664         * ThemeVisualStyles.cs: Added support for UpDownBase.
3665
3666 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
3667
3668         * Theme.cs, ThemeWin32Classic.cs, UpDownBase.cs: Refactored:
3669         Extracted Theme.UpDownBaseDrawButton.
3670
3671 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
3672
3673         * ToolStrip.cs, ToolStripDropDownItem.cs: Make sure toolstrips are
3674         removed from the static toolstrips collection in ToolStripManager
3675         when they are disposed.  Provides a workaround for bug #386483.
3676
3677 2008-05-05  Ivan N. Zlatev  <contact@i-nz.net>
3678
3679         * GridEntry.cs: Read-only properties with Editor with 
3680         UITypeEditorEditStyle.Modal shouldn't be read-only in the PropertyGrid.
3681         [Fixes bug #384184]
3682
3683 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
3684
3685         * MenuStrip.cs, ToolStrip.cs: Guard against an NRE when pressing
3686         the menu key and there are no items on the menu.
3687         [Fixes bug #386644]
3688
3689 2008-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3690
3691         * Control.cs: Avoid calling ToString on a string.
3692         * Form.cs: Avoid calling ToString on a string. Found using Gendarme.
3693         * GroupBox.cs: In FlatStyle property throw, not just create, the 
3694         exception. Avoid calling ToString on a string.
3695         * ProgressBar.cs: Avoid calling ToString on a string. 
3696         * ScrollBar.cs: Avoid calling ToString on a string. 
3697         [All issues were found using Gendarme]
3698
3699 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
3700
3701         * NotifyIcon.cs: Prevent click events to be trigger after double click 
3702         events. Fixes remaining issues of bug #324832.
3703
3704 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
3705
3706         * NotifyIcon.cs: Trigger click and mouseclick events after mouseup event
3707         to mimic win32 behavior. Partially fixes bug #324832.
3708
3709 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3710
3711         * BindingSource.cs: Implement Find methods.
3712
3713 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3714
3715         * BindingSource.cs: Implement Sort, ApplySort overloads, and
3716         RemoveSort methods.
3717
3718 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3719
3720         * ListBindingHelper.cs: When calling GetListItemProperties and the
3721         passed object is ITypedList, return the result of
3722         ITypedList.GetItemProperties instead.
3723
3724 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
3725
3726         * LinkLabel.cs: Set default value of name on constructor of Link class
3727         only for 2.0 profile.
3728
3729 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
3730
3731         * LinkLabel.cs: Fix implementation of LinkCollection.LinksAdded property.
3732         Fixes remaining issues of bug #346154.
3733
3734 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
3735
3736         * LinkLabel.cs: Set a default value for name on internal contructor of
3737         Link class. It fixes assert B5 of LinkCollectionTest.Constructor1.
3738
3739 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
3740
3741         * LinkLabel.cs: Move links collection from LinkCollection to LinkLabel
3742         and refer all instances to owner.links. Partially fixes #346154.
3743
3744 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3745
3746         * LinkLabel.cs: Fix linkarea values for empty text, must have start and 
3747         length equal zero. Also called CreateLinkPieces in constructor. It fixes
3748         the LinkLabel test 'TestLinkArea'.
3749
3750 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3751
3752         * Form.cs: Remove menu before close form to prevent form to be not gaced.
3753         [Fixes #386460]
3754
3755 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3756
3757         * MenuAPI.cs: Dispose popup window after hide. Thanks to Jesse Jones.
3758         [Fixes #386463]
3759
3760 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3761
3762         * MenuAPI.cs: Implemented keyboard navigation for ContextMenu.
3763         [Fixed bug #357004]
3764
3765 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3766
3767         * MenuAPI.cs: Remove unused ProcessCmdKey method.
3768
3769 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3770
3771         * MenuAPI.cs: Prevent NRE in menu deactivation when shortcut is used. 
3772         [Fixes bug #375398]
3773
3774 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3775
3776         * MenuAPI.cs: Enable implicit mnemonics for menus. Fixes remaining issues
3777         of bug #367492.
3778
3779 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
3780
3781         * MenuAPI.cs: Check if mouse down comes from menu, we need it because
3782         sometimes we open a conext menu on mouse down of some controls and the mouse
3783         up is dispatched to menu and dont need to. It fix remaining issues of 
3784         #363711 and other problems related to menu mouse click events.
3785
3786 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
3787
3788         * MonthCalendar.cs: Implemented "Go to today" context menu, also changed
3789         some var names to better fit changes, now we have month_menu and today_menu
3790         vars. Fixes bug #363711.
3791
3792 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
3793
3794         * MonthCalendar.cs: Handle every right mouse click to open context menu,
3795         right now the default month menu but it will be change to have "Go to today"
3796         menu.
3797
3798 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3799
3800         * FileDialog.cs, MaskedTextBox.cs, OpenFileDialog.cs: corcompare.
3801
3802 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
3803
3804         * ThemeWin32Classic.cs: Fix MonthCalendar arrows drawing.
3805
3806 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
3807
3808         * ThemeVisualStyles.cs: Added support for TreeView.
3809
3810 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
3811
3812         * Theme.cs, ThemeWin32Classic.cs, TreeView.cs: Refactored:
3813         Moved TreeView.DrawNodePlusMinus to Theme.TreeViewDrawNodePlusMinus.
3814
3815 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3816
3817         * OpenFileDialog.cs: Implement 2.0 SP1 stuffs.
3818
3819 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3820
3821         * FileDialogCustomPlace.cs, FileDialogCustomPlacesCollection.cs:
3822         Implement 2.0 SP1 stuffs.
3823
3824 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3825
3826         * FileDialog.cs: Implement 2.0 SP1 stuffs.
3827
3828 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3829
3830         * Control.cs, ContainerControl.cs, DataGridView.cs, TextBoxBase.cs:
3831         Implement CanEnableIme property. (2.0 SP1)
3832
3833 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3834
3835         * BindingManagerBase.cs, PropertyManager.cs: Hide GetItemProperties
3836         from the 2.0 API.
3837
3838 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3839
3840         * Control.cs: Provide an internal way for a control to override
3841         the setting of Height.
3842         * DateTimePicker.cs: Remove SetBoundsCore from 2.0 profile,
3843         set height using new method.
3844
3845 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
3846
3847         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawMixedCheckBox.
3848
3849 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
3850
3851         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
3852         ControlPaint.DrawMixedCheckBox now calls Theme.CPDrawMixedCheckBox.
3853
3854 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
3855
3856         * ThemeVisualStyles.cs: Added support for StatusBar.
3857
3858 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3859
3860         * DataObject.cs: Add the other IDataObject interface.
3861
3862 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
3863
3864         * ThemeWin32Classic.cs: Refactored: extracted DrawStatusBarBackground,
3865         DrawStatusBarSizingGrip, DrawStatusBarPanelBackground.
3866
3867 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3868
3869         * DataGridViewCheckBoxCell.cs, DataGridViewImageCell.cs: Fix parameter names.
3870         * ListView.cs: Hide non-public API.
3871         * MaskedTextBox.cs: Remove extra attribute.
3872
3873 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
3874
3875         * DataGridViewImageCell.cs: Use formatted value instead of value
3876         to calculate preferred size.
3877
3878 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
3879
3880         * ListBox.cs: Move some initialization around so that selected_indices
3881         is not accessed before it is created.
3882
3883 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
3884
3885         * InputLanguageCollection.cs: Implement the collection better.
3886         [Fixes bug #385506]
3887
3888 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
3889
3890         * ToolStripDropDownItem.cs: Get the correct event object for
3891         DropDownItemClicked.
3892         * ToolStripMenuItem.cs: Raise DropDownItemClicked on our owner.
3893         [Fixes bug #385475]
3894
3895 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
3896
3897         * DataGridViewRowCollection.cs: We don't currently support shared 
3898         rows.  Should fix test failures caused by previous commit.
3899
3900 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
3901
3902         * DataGridViewRow.cs: Fixes for cloning the row, ensure header cell's
3903         datagridview gets set.  Only paint cells in visible columns.
3904         * DataGridViewCell.cs: Draw border after cell content.
3905         * DataGridView.cs: Invalidate after setting some properties.  Only
3906         use visible columns.  Fit hit test bug with areas in the col/row header
3907         area but not in a row or col.  Implement UpdateCell/Row methods.
3908
3909 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
3910
3911         * DataGridViewElement.cs: Don't throw NIEX.
3912         * DataGridViewColumnHeaderCell.cs: Draw error icons for top left header cells.
3913         * DataGridViewColumnDesignTimeVisibleAttribute.cs: Don't throw NIEX.
3914         * DataGridViewCheckBoxColumn.cs: Implement ToString.
3915         * DataGridViewCheckBoxCell.cs: Allow DBNull as a value.
3916         * DataGridViewCell.cs: Don't raise CellFormatting for RowHeader cells,
3917         if the user filled in the formatting Value, use it.
3918
3919 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
3920
3921         * DataGridViewTextBoxCell.cs: Fix for objects that cannot be cast
3922         to a string.
3923
3924 2008-04-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3925
3926         * BindingSource.cs: Some corrections to Filter property, as well as
3927         setting it for our list when resetting it.
3928
3929 2008-04-29  Jonathan Pobst  <monkey@jpobst.com>
3930
3931         * ScrollBar.cs: Don't let dragging the thumb grip set the value greater
3932         than the maximum.  Fixes reopened bug #384182.
3933
3934 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
3935
3936         * ToolStripDropDown.cs: Fix offscreen position for DropDown itens.
3937         Fixes remaining issues of #367490.
3938
3939 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
3940
3941         * ToolStripDropDown.cs: Screen.Bound dont return right value then use 
3942         SystemInformation.WorkingArea to get max_screen value.
3943
3944 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3945
3946         * BindingSource.cs: Implement Filter and RemoveFilter.
3947
3948 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
3949
3950         * MenuAPI.cs: Prevent sub-menu positon to be less than zero.
3951
3952 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3953
3954         * X11Dnd.cs: When trying to convert data and we know we started the
3955         dnd loop, don't try to use the cached data if the loop is not running,
3956         which means that the data has been resetted.
3957         Fixes #378191.
3958
3959 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
3960
3961         * MenuAPI.cs: Force first menu subitem to show from left to right to mimic
3962         win32 behavior.
3963
3964 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
3965
3966         * MenuAPI.cs: Check the screen limits before show sub-menus and prevent
3967         it to drawn off screen edge. Fixes bug #367490.
3968
3969 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
3970
3971         * MenuAPI.cs: In PopupWindow.RefreshItems uses a temp point var to store
3972         menu position to have only one assignment of Location var.
3973
3974 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
3975
3976         * MenuAPI.cs: Implement the right key for sub-menus. Thanks Ernesto Carrea
3977         for this patch. Fixes bug #384115.
3978
3979 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
3980
3981         * ScrollBar.cs: If SmallChange is larger than LargeChange, make them
3982         the same.  If LargeChange is zero, set a minimum size for the scroll
3983         thumb grip.  [Fixes bug #384182]
3984
3985 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
3986
3987         * TextBoxTextRenderer.cs: Don't turn &A into a prefix for textboxen.
3988         [Fixes bug #384181]
3989
3990 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
3991
3992         * ListBox.cs: Math.Min should be Math.Max.  [Fixes bug #384183]
3993
3994 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
3995
3996         * ThemeVisualStyles.cs: Added partial support for ScrollBar (based on the
3997         patch from Ernesto).
3998
3999 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
4000
4001         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawComboButton.
4002
4003 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
4004
4005         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawButton.
4006
4007 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
4008
4009         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawRadioButton.
4010
4011 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
4012
4013         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawScrollButton.
4014
4015 2008-04-27  George Giolfan  <georgegiolfan@yahoo.com>
4016
4017         * ThemeVisualStyles.cs: Added support for ButtonBase.UseVisualStyleBackColor.
4018
4019 2008-04-27  Andreia Gaita <avidigal@novell.com> 
4020
4021         * HtmlWindow.cs, HtmlHistory.cs: Throw on DomHistory getter (it's
4022           supposed to return a reference to an mshtml interface, which we
4023           don't support).
4024         * HtmlElement.cs: Throw on DomElement getter (it's supposed to return a
4025           reference to an mshtml interface, which we don't support). Code
4026           formatting cleanup.
4027         * HtmlDocument.cs: Add DefaultEncoding getter implementation. Throw on
4028           DomDocument getter (it's supposed to return a reference to an
4029           mshtml interface, which we don't support). Code formatting cleanup.
4030
4031 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4032
4033         * ListView.cs: Ouch, forgot to commit.
4034
4035 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4036
4037         * ListView.cs: 
4038         * ThemeWin32Classic.cs: Fire the -until now- forgotten CacheVirtualItems event.
4039
4040 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4041
4042         * ListView.cs: When calculating box selection for virtual mode, don't
4043         look for intersection with item's text, but item bounds, since that
4044         would mean read ListViewItem's text for _every_ item, and that's
4045         something we just can't do in virtual mode (items are only requested
4046         when drawn).
4047
4048 2008-04-26  George Giolfan  <georgegiolfan@yahoo.com>
4049
4050         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCaptionButton and
4051         partial support for managed windows (based on the patch from Ernesto).
4052
4053 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4054
4055         * ListView.cs: When doing a key search use FindItemWithText method
4056         instead of doing the search by ourselves, this way we avoid
4057         duplicating the code and also we handle the special case for virtual
4058         mode. To achieve that make our private overload of FindItemWithText
4059         internal and also have a 'roundtrip' parameter.
4060
4061 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4062
4063         * ListView.cs: When doing the layout don't request the
4064         ListViewItem instance if we are in virtual mode (since we can't request it
4065         until the item is actully drawn).
4066
4067 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
4068
4069         * ThemeVisualStyles.cs: Added support for ProgressBar (based on the patch 
4070         from Ernesto).
4071
4072 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
4073
4074         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCheckBox (based on 
4075         the patch from Ernesto).
4076
4077 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
4078
4079         * ThemeEngine.cs: Added code to select ThemeVisualStyles.
4080         * ThemeVisualStyles.cs: Added.
4081
4082 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
4083
4084         * IDeviceContext.cs: Added a missing using.
4085
4086 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
4087
4088         * ButtonBase.cs: Made IsDefault protected internal.
4089         * ButtonRenderer.cs: Made GetPushButtonRenderer(PushButtonState) internal.
4090
4091 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
4092
4093         * Application.cs: Included VisualStyles-related members in the 1.1 profile.
4094         * ButtonRenderer.cs, CheckBoxRenderer.cs, Padding.cs, PaddingConverter.cs,
4095         RadioButtonRenderer.cs: Included in the 1.1 profile.
4096         * IDeviceContext.cs: Added.
4097         * TextRenderer.cs: Included a member in the 1.1 profile.
4098
4099 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
4100
4101         * ThemeWin32Classic.cs: Added ShouldPaintFocusRectangle(ButtonBase).
4102
4103 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
4104
4105         * ErrorProvider.cs: Make the error icons come after the control
4106         they refer to.  It isn't the way the MS does it, but its better
4107         than what we were doing.  See bug #368587.
4108
4109 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
4110
4111         * InputLanguage.cs, InputLanguageCollection.cs: Apply patch
4112         from Eric Albright that lazy loads the input language as ensures
4113         everything gets properly initialized.  Fixes bug #373871.
4114
4115 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
4116
4117         * ToolStrip.cs: Don't use ToolStripControlHosts when figuring up
4118         implicit mnemonics.  [Fixes bug #383000]
4119
4120 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4121
4122         * X11Dnd.cs: When canceling the operation, automatically restore the
4123         default cursor - normally the default cursor is restored when the
4124         mouse buttons are released, but we should be able to restore it even
4125         if the buttons are still pressed (for example, when pressing ESC to
4126         cancel).
4127         Fixes #381894.
4128
4129 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4130
4131         * X11Dnd.cs: When starting a new drad and drop operation, set control
4132         field to null, just as the other fields, to avoid calling any
4133         operation on a previous control. Also, when calling DndLeave on a
4134         control, set it to null, thus we don't fire that event multiple times
4135         for that control.
4136         Fixes #209264.
4137
4138 2008-04-23  Geoff Norton  <gnorton@novell.com>
4139
4140         * XplatUICarbon.cs: Ensure that we have a valid hwnd before accessing
4141         the whole_window object.  Fixes #377084.
4142
4143 2008-04-23  Andreia Gaita <avidigal@novell.com> 
4144
4145         * HtmlElement.cs: Implement RaiseEvent (event injection into the
4146           embedded browser)
4147
4148 2008-04-23  Jonathan Pobst  <monkey@jpobst.com>
4149
4150         * DataGridViewColumnHeaderCell.cs: Implement some NIEX stuffs.
4151
4152 2008-04-23  Andreia Gaita <avidigal@novell.com> 
4153
4154         * HtmlElement.cs, HtmlDocument.cs: Implement javscript method
4155           invocation
4156
4157 2008-04-23  Andreia Gaita <avidigal@novell.com> 
4158
4159         * HtmlElement.cs, HtmlDocument.cs: Implement custom event handler
4160           attaching/detaching
4161
4162 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4163
4164         * X11Dnd.cs: When the drop was cancelled, or could just not be
4165         performed, return DragDropEffect.None always (match .net).
4166
4167 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
4168
4169         * DataGridViewRowHeaderCell.cs: Fill in some NIEX stuff.
4170
4171 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
4172
4173         * DataGridViewRowCollection.cs: Revert something I didn't mean to commit.
4174
4175 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
4176
4177         * DataGridView.cs: Add support for error icon tool tips.
4178         * DataGridViewCell.cs: ErrorIconBounds needs to call GetErrorIconBounds.
4179         * DataGridViewRowHeaderCell.cs: Need internal way to get ErrorIconBounds.
4180
4181 2008-04-22  Ivan N. Zlatev  <contact@i-nz.net>
4182
4183         * X11Structs.cs: Add mouse button masks enum.
4184         * XplatUIX11.cs, Hwnd.cs: Send WM_ENTERSIZEMOVE and 
4185         WM_EXITSIZEMOVE only once at the beginning and at the end of the 
4186         form resize/move operation instead of for each step of it.
4187         [Fixes bug #346529 for the x11 backend]
4188
4189 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
4190
4191         * DataGridView*: Implement support for drawing error icons.
4192
4193 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
4194
4195         * TreeView.cs: Make vbar and hbar internal.
4196         * TreeNode.cs: If collapsing the node removes one of the TreeView's
4197         scrollbars, invalidate the whole thing.
4198         [Fixes bug #382001]
4199
4200 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
4201
4202         * TreeView.cs: Calling Sort() sets Sorted = true.
4203         * TreeNodeCollection.cs: Try to find the owner TreeView to determine
4204         if the nodes need to be sorted.
4205         [Fixes bug #382028]
4206
4207 2008-04-21  Ivan N. Zlatev  <contact@i-nz.net>
4208
4209         * Form.cs: Fire SizeChanged for both when the form is minimized and 
4210         restored.
4211         * XplatUIX11.cs: Instead of tracking minimization on UnmapNotify track it 
4212         on PropertyNotify of _NET_WM_STATE. Much much cleaner.
4213
4214 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
4215
4216         * ComboBox.cs: If the combobox is disabled, draw a disabled
4217         background before painting anything else.
4218         [Fixes bug #381729]
4219
4220 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4221
4222         * X11Dnd.cs: Wehn the drag and drop operation is cancelled don't
4223         forget to send a Leave event to the target window - just as .net does
4224         when cancelling dnd operations.
4225
4226 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4227
4228         * X11Dnd.cs: Stop tracking messages as part of the dnd operation as
4229         soon as possible - this happens when we send the drop message to the
4230         target window. This way we avoid firing any DragOver _after_ drop finished.
4231         Fixes #378179.
4232
4233 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
4234
4235         * XplatUIX11.cs: Send WM_WINDOWPOSCHANGED when a toplevel is minimized.
4236         * Form.cs: Handle form minimization as a special state, where size doesn't 
4237         change, but we have to fire SizeChanged.
4238         [Fixes bug #325122 for the win32 and x11 backends]
4239
4240 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
4241
4242         * XplatUIX11.cs: Win32 doesn't send WM_(KILL|SET)FOCUS 
4243         if the handle is disabled.
4244         [Fixes bug #371751]
4245
4246 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
4247
4248         * XplatUIX11.cs: Enable Maximize/Minimize/Close ability (not decorations) 
4249         for forms with FormBorderStyle.None.
4250         [Fixes bug #349571]
4251
4252 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
4253
4254         * XplatUIX11.cs: Implement support for WM_ENTERSIZEMOVE and 
4255         WM_EXITSIZEMOVE.
4256         [Fixes bug #346529 for the X11 backend]
4257
4258 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
4259
4260         * XplatUIX11.cs: 
4261           - Send a mouse Enter message after say dragging the mouse with a 
4262           button down and then release it in another client.
4263           - Reset the cursor to prevent X11 from remembering it and setting it 
4264           before the control gets WM_SETCURSOR.
4265           - Qeueue a mouse move after a mouse enter like win32.
4266           [Fixes bug #323234]
4267
4268 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
4269
4270         * XplatUIX11.cs: Implement limited support for WM_SYSCOMMAND. 
4271         It's sent when the form gets moved, resized, closed.
4272         * XplatUIStructs.cs: Add SystemCommands enum for WM_SYSCOMMAND.
4273         [Fixes bug #359193 for X11]
4274
4275 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
4276
4277         * Form.cs: Add a ValidateChildren for the 1.1 profile. Fixes 
4278         the build.
4279
4280 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
4281
4282         * ListView.cs: Move CalculateDetailsGroupItemsCount to the NET_2_0 
4283         group. Fixes the 1.1 build.
4284
4285 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4286
4287         * ListView.cs: Use display indexes for selection in Details view, as
4288         well as do the proper layout based on display indexes for that view
4289         too.
4290
4291 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4292
4293         * ListView.cs: Focused item information is now stored as a display
4294         index, and display indexes are used all over the place for selection,
4295         instead of ListViewItem.Index values, which doesn't give us enough
4296         information to modify the selection in groups mode, and was broken.
4297
4298 2008-04-18  Ivan N. Zlatev  <contact@i-nz.net>
4299
4300         * Control.cs: Do not fire MouseDown if validation of the control has 
4301         failed.
4302         * Form.cs: Validate the form before closing.
4303         [Fixes bugs #330501 and #353310]
4304
4305 2008-04-18  Andreia Gaita <avidigal@novell.com> 
4306
4307         * WebBrowserBase.cs: Added WndProc, DrawToBitmap,
4308           CreateWebBrowserSiteBase implementations
4309         * HtmlElement.cs: Add missing OuterHTML, OuterText setters, stubbed
4310           Style and TabIndex setters
4311
4312 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4313
4314         * ListViewGroup.cs: When returning the actual item count, return the
4315         proper count for default group.
4316         Fix the tests.
4317
4318 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4319
4320         * ListView.cs:
4321         * ListViewGroup.cs: When calculating groups layout, get the actual
4322         number of items per group, since groups added to the group BUT not
4323         added to the ListView are just ignored, and can cause some nasty
4324         exceptions because of the lack of synchronization. Also for
4325         ListViewGroup don't use lazy initialization for items, since we 
4326         the common scenario is to use it always - and it helps us to  refactor
4327         and clean the .ctor overloads.
4328
4329 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4330
4331         * ListView.cs: When adding an item to a ListViewItemCollection
4332         belonging to a group (ListViewGroup.Items), don't generate a redraw if
4333         the added item hasn't beeen previously added to the ListView instance
4334         refered by the group, since it will be ignored. This should avoid some 
4335         really nasty flickering.
4336
4337 2008-04-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4338
4339         * ListView.cs: When accessing an item in a specific display
4340         position, use the helper method GetItemAtDisplayIndex, instead of
4341         direct access to the reordered_items_indices array. When doing layout
4342         for groups set the correct Items index for the display position (since
4343         in groups mode items don't have the same position as in Items
4344         collection).
4345         * ListViewGroup.cs: Add a field to store the starting item number,
4346         which is later used when calculating the layout.
4347
4348         Fixes #360805.
4349
4350 2008-04-17  Gert Driesen  <drieseng@users.sourceforge.net>
4351
4352         * Application.cs: Fixed ProductVersion to fallback to the assembly
4353         version. Fixes regression for bug #325413.
4354
4355 2008-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4356
4357         * ListView.cs: New helper method to retrieve an item in a _specific
4358         display_ position (the items can be displayed in a different order
4359         than one of Items collection).
4360         * ThemeWin32Classic.cs: When drawing, instead of iterating over Items
4361         collection, use ListView.GetItemAtDisplayIndex, to get an item in a
4362         specific display position (again remember that items can be sorted
4363         different than Items).
4364
4365 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
4366
4367         * DataGridViewColumnCollection.cs: Create a cached copy of our sorted
4368         list and update it when the collection changes.  We were recreating
4369         this several times per row paint and for every pixel the mouse moved
4370         across the grid.
4371         * DataGridViewColumn.cs: Regenerate cached sorted list when DisplayIndex
4372         changes.
4373
4374 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
4375
4376         * DataGridViewColumnCollection.cs: Convert our internal sorted columns
4377         list to use generics.
4378         * DataGridView.cs, DataGridViewRow.cs: Use generic sorted column list
4379         and remove unneccessay casts.
4380
4381 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
4382
4383         * DataGridViewBand.cs: Add internal way to set displayed variable.
4384         * DataGridViewRow.cs: Don't paint cells in non-displayed columns.
4385         * DataGridView.cs: Make sure we always keep track of Displayed
4386         rows and columns, and only draw things that are displayed.
4387
4388 2008-04-16  Atsushi Enomoto  <atsushi@ximian.com>
4389
4390         * X11Keyboard.cs, XplatUIX11.cs : manage key state regardless of
4391           whether the key events are filtered or not. Introduced
4392           PreFilter() process for this purpose. This fixes atokx3/iiimx
4393           shift state issue.
4394
4395 2008-04-16  Andreia Gaita <avidigal@novell.com> 
4396
4397         * HtmlHistory.cs: Implement Length property
4398
4399 2008-04-15  Jonathan Pobst  <monkey@jpobst.com>
4400
4401         * DataGridView.cs: Call EndEdit when a sort is performed so we take
4402         away the edit textbox.  Refactor to reuse column sort code.
4403
4404 2008-04-12  Everaldo Canuto  <ecanuto@novell.com>
4405
4406         * MenuAPI.cs: Remove the code that save and restore capture status of 
4407         grab_control, this fixes some Menu and Context menu bugs but maybe it can
4408         cause some others, I cant figure the possible problems of this patch but
4409         right now remove the code looks to be better than keep it. This patch fixes
4410         bugs #357638, #378721 and #379570.
4411
4412 2008-04-12  Andreia Gaita <avidigal@novell.com> 
4413
4414         * HtmlDocument.cs, HtmlElement.cs, HtmlHistory.cs, WebBrowser.cs:
4415         Implement OuterHtml, OuterText, Enabled, Scroll*, *Rectangle properties,
4416         add missing properties and event handlers.
4417         
4418 2008-04-14  Jonathan Pobst  <monkey@jpobst.com>
4419
4420         * ListBox.cs: Make sure the LargeChange we are setting is at least
4421         zero, to prevent an IOORE.  [Fixes bug #379531]
4422
4423 2008-04-13  Andy Hume <andyhume32@yahoo.co.uk>
4424
4425         * ComboBox.cs: Support item navigation by entering text.  Firstly, 
4426         in DropDownList mode, for each key-press select the next item 
4427         starting with that letter.
4428         For other modes, when no item selected, on arrow-up/-down and open 
4429         drop-down select the first item matching the text in the textbox.
4430
4431 2008-04-14  Atsushi Enomoto  <atsushi@ximian.com>
4432
4433         * X11Keyboard.cs : Control.FromHandle() could return null
4434           in MoveCurrentCaretPos().
4435
4436 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4437
4438         * ListView.cs: When changing the size in VirtualMode, also Reset the
4439         selection.
4440         * ListViewItem.cs: Don't call SelectedIndexCollection.Reset when
4441         changing selection info for VirtualMode.
4442         Fixes #372618.
4443
4444 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4445
4446         * ThemeWin32Classic.cs: When drawing ListViewItem instancesin Details
4447         view, don't use LineLimit for the first item - use NoWrap *always*
4448         instead, since ListView.LabelWrap is not used for this view.
4449         Fixes #378054.
4450
4451 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4452
4453         * Binding.cs: Call UpdateIsBinding when setting control - probably
4454         Binding is already usable and we don't need to wait to check the
4455         IsBinding state. Also for 1.1 profile use IsHandleCreated instead of
4456         Created, just like 2.0 does.
4457         * CurrencyManager.cs: I'm so lame - the previous check was wrong.
4458
4459 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4460
4461         * Binding.cs: Just realized we don't need to have a handler for
4462         BindingContextChanged, since this info should be now consumed directly
4463         in the BindingManagerBase. And also, the manager.IsBindingSuspended
4464         state info is checked directly, instead of caching it.
4465
4466         * CurrencyManager.cs: IsSuspended should return always false if Count
4467         == 0.
4468
4469 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4470
4471         * Binding.cs: When calling PushData, return if manager.Count == 0,
4472         since we just don't have data to be read. Also, when setting the
4473         Control for binding, hook up some events to refresh the IsBinding
4474         state when BindingContext change or control gets created; use
4475         Control.IsHandleCreated instead of Control.Created check to set
4476         IsBinding state - we *actually* need to modify IsBinding when control
4477         is created, but we don't have any Created event, only HandleCreated.
4478         Fixes part of #349364.
4479
4480 2008-04-11  Geoff Norton  <gnorton@novell.com>
4481
4482         * XplatUICarbon.cs: Expose Caret to the Carbon layer.  Guard against
4483         warping a null Caret.
4484
4485 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
4486
4487         * DataGridView.cs: Implement row/column autosizing methods. Implement
4488         autosorting.
4489         * DataGridViewColumnHeaderCell.cs: Add painting of the sort glyph.
4490         * DataGridViewRowCollection.cs: Add an internal sorting method.
4491
4492 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
4493
4494         * ThemeWin32Classic.cs: Apply patch from Ernesto to cache an expensive
4495         value in ListView drawing code.
4496
4497 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
4498
4499         * FileDialog.cs: Only call FileOk when Ok is clicked, not when Cancel
4500         is clicked.  Respect the user setting Cancel in FileOk.
4501
4502 2008-04-11  Geoff Norton  <gnorton@novell.com>
4503
4504         * ListView.cs: Avoid setting and resetting control Width/Heights and
4505         calculate the final value and set it once.  Prevents a feedback loop
4506         on the mac.
4507
4508 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
4509
4510         * TreeView.cs: Clamp setting the scrollbar value using SafeValueSet.
4511         [Fixes bug #378869]
4512
4513 2008-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4514
4515         * X11Keyboard.cs, X11Structs.cs : make over-the-spot mode default.
4516           Add some on-the-spot code, but it seems we don't need it.
4517
4518 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
4519
4520         * Form.cs: Add method for DataGridView to trigger focus cues
4521         even when it handles the tab keypress.
4522
4523 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
4524
4525         * DataGridView.cs: More keyboard handling, tab, esc.
4526         * DataGridViewTextBoxEditingControl.cs: Don't request arrow keys
4527         when at the beginning or end of the text in the text box.
4528
4529 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
4530
4531         * DataGridViewCell.cs: Guard against an NRE causing a test to fail.
4532
4533 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
4534
4535         * DataGridView.cs: Some fixups for showing and adding the edit control.
4536         * DataGridViewButtonColumn.cs: Implement ToString.
4537         * DataGridViewCell.cs: Size and position the control simultaneously.
4538         * DataGridViewTextBoxCell.cs: Use base to position control.
4539
4540 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
4541
4542         * DataGridViewCell.cs: Fix up some formatting and painting code.
4543         * DataGridViewImageCell.cs: Implement some NIEX methods.
4544
4545 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
4546
4547         * ToolStripItemCollection.cs: What moving an item from one owner
4548         to another, remove from source owner before adding to destination.
4549         [Fixes bug #378109]
4550
4551 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
4552
4553         * PictureBox.cs: Call Load when ImageLocation is set.
4554         [Fixes bug #378308]
4555
4556 2008-04-09  Atsushi Enomoto  <atsushi@ximian.com>
4557
4558         * X11Keyboard.cs, XplatUIX11.cs :
4559           Implement over-the-spot mode (with some odd offsets).
4560           - set preedit position when caret is set.
4561           - Wrap XMoveResizeWindow() to move preedit position.
4562
4563 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
4564
4565         * X11keyboard.cs: Fix last patch, maxval must be less not greater than
4566         array lenght.
4567
4568 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
4569
4570         * KeyboardLayouts.cs: Uses GENERATING_RESOURCES to make VKeyTableIndex
4571         and ScanTableIndex public, it fix compilations errors when compiling
4572         WinForms to generate keyboard layout resources.
4573
4574 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
4575
4576         * X11keyboard.cs: Prevent keyboard errors when vitual table theres 
4577         different element count than scan table. It prevents some errors in non
4578         standard keyboards.
4579
4580 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
4581
4582         * DataGridViewHeaderCell.cs: Implement some NIEX methods.
4583
4584 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
4585
4586         * DataGridView.cs: Call OnContentClick.
4587         * DataGridViewCell.cs: Do a null check on ValueType instead
4588         of valueType.
4589         * DataGridViewCheckBoxCell.cs: Implement.
4590
4591 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
4592
4593         * X11Keyboard.cs : Do not cast IntPtr to int. Use long.
4594
4595 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
4596
4597         * X11Keyboard.cs : Check XGetIMValues() return value in
4598           case it does not return input styles in some environment.
4599
4600 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
4601
4602         * X11Keyboard.cs : sizeof(IntPtr) != 4 on amd64.
4603
4604 2008-04-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4605
4606         * BindingContext.cs: Stub UpdateBinding method.
4607
4608 2008-04-07  Atsushi Enomoto  <atsushi@ximian.com>
4609
4610         * X11Structs.cs : added couple of structs for XIM support.
4611         * X11Keyboard.cs :
4612           Release XIM in case it failed to create XIC. 
4613           Use consts for XNblah string.
4614           Add support for IM style customization and XIC creation
4615           for preedit-position and preedit-callback.
4616           Right now use MONO_WINFORMS_XIM_STYLE environment variable
4617           (list of: over-the-spot | on-the-spot | root). Only root
4618           mode works so far.
4619
4620           (redoing r99172 with fix.)
4621
4622 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
4623
4624         * TreeView.cs: Center the checkbox a little better.
4625
4626 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
4627
4628         * ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs, ThemeWin32Classic.cs:
4629         Apply very nice patch from Ernesto Carrea that simplifies our
4630         scrollbar drawing.  [From bug #376146]
4631
4632 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
4633
4634         * TreeView.cs: Correct the location of the root node checkbox when
4635         ShowRootLines = false.  Don't draw the root lines for the root node
4636         when ShowRootLines = false.  [Fixes bug #377535]
4637
4638 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
4639
4640         * WebBrowserBase.cs: Added missing attributes and fixed attributes.
4641         Fixed line endings.
4642         * WebBrowser.cs: Added missing attributes and fixed attributes. Fixed
4643         line endings.
4644         * MaskedTextBox.cs: Added missing attribute. Code formatting.
4645         * PageSetupDialog.cs: Added missing attribute. Code formatting.
4646         * HtmlWindowCollection.cs: Code formatting. Fixed line endings.
4647         * ImeMode.cs: Added missing field.
4648         * HtmlWindow.cs: Code formatting. Fixed line endings.
4649         * HtmlElement.cs: Code formatting. Fixed line endings. Fixed compiler
4650         warnings.
4651         * HtmlHistory.cs: Code formatting. Fixed line endings.
4652         * HtmlDocument.cs: Code formatting. Fixed line endings.
4653         * ToolStripPanel.cs: Added missing IList implementation.
4654         * HtmlElementCollection.cs: Code formatting. Fixed line endings.
4655
4656 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
4657
4658         * BindingContext.cs: Changed argument names to fix corcompare errors.
4659         * DataGridView.cs: Removed extra explicit interface implementation
4660         of IDropTarget. Code formatting.
4661         * FlowLayoutPanel.cs: Changed argument names to fix corcompare errors.
4662         * ComboBox.cs: Changed argument names to fix corcompare errors.
4663         * DataGridTextBoxColumn.cs: Changed argument names to fix corcompare
4664         errors.
4665         * GridColumnStylesCollection.cs: Changed argument names to fix
4666         corcompare errors. Removed extra tabs.
4667         * GridTableStylesCollection.cs: Changed argument names to fix corcompare
4668         errors.
4669         * Control.cs: Changed argument names to fix corcompare errors. Code
4670         formatting. Removed extra explicit IList implementation.
4671         * TextBox.cs: Changed argument names to fix corcompare errors. Code
4672         formatting. Use string.Empty instead of "".
4673         * GridItemCollection.cs: Changed argument names to fix corcompare
4674         errors. Code formatting.
4675         * DataGridViewTopLeftHeaderCell.cs: Changed argument names to fix
4676         corcompare errors. Code formatting.
4677         * ImageList.cs: Changed argument names to fix corcompare errors.
4678         * ToolStripItem.cs: Changed argument names to fix corcompare errors.
4679         * DataGridViewRowCollection.cs: Changed argument names to fix
4680         corcompare errors. Code formatting.
4681         * TableLayoutPanel.cs: Changed argument names to fix corcompare errors.
4682         * DataGridViewSelectedCellCollection.cs: Changed argument names to
4683         fix corcompare errors. Code formatting.
4684         * DataGridViewComboBoxCell.cs: Changed argument names to fix
4685         corcompare errors. Code formatting.
4686         * LinkLabel.cs: Changed argument names to fix corcompare errors.
4687         * TreeNode.cs: Changed argument names to fix corcompare errors. Code
4688         formatting.
4689         * PropertyGrid.cs: Changed argument names to fix corcompare errors.
4690         Code formatting.
4691         * BindingSource.cs: Changed argument names to fix corcompare errors.
4692         Removed extra explicit interface implementations.
4693         * DataGridViewSelectedRowCollection.cs: Changed argument names to
4694         fix corcompare errors. Code formatting.
4695         * ToolStripItemCollection.cs: Removed extra explicit interface
4696         implementation of IList.ReadOnly.
4697         * DataGridViewColumnCollection.cs: Changed argument names to fix
4698         corcompare errors. Code formatting.
4699         * DataGridViewRow.cs: Rename converter to match MS. Code formatting.
4700         * ListView.cs:  Changed argument names to fix corcompare errors.
4701         * DataGridViewHeaderCell.cs: Changed argument names to fix corcompare
4702         errors.
4703         * DataGridBoolColumn.cs: Changed argument names to fix corcompare
4704         errors.
4705         * ListBindingHelper.cs: Changed argument names to fix corcompare
4706         errors.
4707         * DataGridViewSelectedColumnCollection.cs: Changed argument names to
4708         fix corcompare errors. Code formatting.
4709         * ToolStripPanel.cs: Removed extra explicit implementation of
4710         IDropTarget interface.
4711         * ListBox.cs: Changed argument names to fix corcompare errors. Code
4712         formatting. Removed extra tabs and spaces.
4713         * DataGridViewCellCollection.cs: Changed argument names to fix
4714         corcompare errors.
4715         * Help.cs: Changed argument names to fix corcompare errors. Code
4716         formatting.
4717         * TabControl.cs: Changed argument names to fix corcompare errors.
4718         * DataGridColumnStyle.cs: Changed argument names to fix corcompare
4719         errors.
4720         * TableLayoutSettings.cs: Changed argument names to fix corcompare
4721         errors.
4722
4723 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4724
4725         * ListBindingHelper.cs: When returning properties, only return those
4726         that are browsable. Also, don't do a linear search of the properties,
4727         but use the indexer of the PropertyDescriptorCollection class.
4728
4729 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4730
4731         * BindingSource.cs: Implement GetRelatedCurrencyManager by adding a
4732         Dictionary containing the related (child) currency managers. Also,
4733         when setting DataSource, add datasource to our List if it is not a list.
4734
4735 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
4736
4737         * PropertyGridTextBox.cs: Fix background color of the buttons.
4738         * PropertyGridView.cs: Make the entry less jumpy.
4739
4740 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
4741
4742         * PropertyGrid.cs: Fix unused variable warnings.
4743
4744 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
4745
4746         * PropertyGridView.cs: Fix expansion via [+] misbehavior on 
4747         double-click. It expanded it once in the mouse down and then 
4748         again in the double-click handler.
4749
4750 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
4751         
4752         * GridEntry.cs: ICustomTypeDescriptor support for PropertyOwner, 
4753         TypeConverter and UITypeEditors.
4754
4755 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
4756
4757         * Control.cs: Visibility should be set synchronously, 
4758         so we must also redraw once it is and not rely on layouting or 
4759         other code to repaint.
4760         [Fixes bug #339898]
4761
4762 2008-04-04  Jonathan Pobst  <monkey@jpobst.com>
4763
4764         * DataGridViewCell.cs: Respect DataGridView.GridColor.
4765
4766 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
4767
4768         * Control.cs: Invalidate when the alpha channel is less than 255,
4769         not only when control is transparent.
4770
4771 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
4772
4773         * DataGridViewRowPrePaintEventArgs.cs, DataGridViewRowPostPaintEventArgs.cs:
4774         Implement some painting convenience methods that threw NIEX.
4775
4776 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
4777
4778         * DataGridView.cs: Call CellMouse[Enter|Move|Leave] properly.
4779         * DataGridViewLinkCell.cs: Implement.
4780
4781 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
4782
4783         * GridEntry.cs: Report the conversion exception error description.
4784         [Fixes bug #375792]
4785
4786 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
4787
4788         * PropertyGridView.cs: Do not scroll to item on resize.
4789         [Fixes bug #375789]
4790
4791 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4792
4793         * BindingContext.cs: When retrieving a BindingManagerBase, if the
4794         dataSource parameter is ICurrencyManagerProvider, then return
4795         ICurrencyManagerProvider.CurrencyManager/GetRelatedCurrencyManager
4796         instead of creating a new one.
4797
4798 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4799
4800         * BindingSource.cs: Implement support for Type instances as
4801         DataSource.
4802
4803 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
4804
4805         * DataGridView.cs: Minor cleanups and call CellMouseUp.
4806         * DataGridViewCell.cs: Make some painting routines internally virtual.
4807         * DataGridViewButtonCell.cs: Implement.
4808
4809 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
4810
4811         * Control.cs: We always need to invalidate our children with
4812         transparent backgrounds when we are invalidated.
4813         [Fixes bug #376081]
4814
4815 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4816
4817         * BindingSource.cs: EndEdit and CancelEdit should call EndCurrentEdit
4818         and CancelCurrentEdit on CurrencyManager respectively. Implement
4819         support for ICancelAddNew too.
4820
4821 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4822
4823         * CurrencyManager.cs: When calling EndCurrentEdit/CancelCurrentEdit,
4824         call EndNew/CancelNew if list is ICancelAddNew.
4825
4826 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
4827
4828         * DataGridView.cs: Guard against an exception while painting
4829         if there are no rows.
4830
4831 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
4832
4833         * DataGridView.cs: Implement a bunch of keyboard commands.
4834
4835 2008-03-31  Jonathan Pobst  <monkey@jpobst.com>
4836
4837         * ToolBar.cs: Don't do our painting if UserPaint is set.  If UserPaint
4838         isn't set, don't call OnPaint.  [Fixes bug #375300]
4839
4840 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4841
4842         * BindingSource.cs: IsBindingSuspended, ResumeBinding and
4843         SuspendBinding depend on CurrencyManager. Implement RemoveCurrent,
4844         hookup the remaining events related to CurrencyManager, and fire
4845         OnListChanged also for the Clear () method.
4846
4847 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4848
4849         * BindingSource.cs: Use Current and Position implementations in
4850         CurrencyManager instead of using our own routines, since we need 
4851         to be in synch with it. Count should NEVER return a -1 value, and 
4852         also report ListChanged events for both simple IList data 
4853         sources (manually) as well for IBindingList ones (by hooking up an
4854         event handler for it).
4855
4856 2008-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4857
4858         * BindingSource.cs: Make one .ctor call the another, to avoid
4859         duplicate code. Add the CurrencyManager property, and also for AddNew
4860         throw the proper exceptions and show better error messages.
4861
4862 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
4863
4864         * ComboBox.cs: Only adjust selectedindex if Handle has been
4865         created.  Fixes failing test.
4866
4867 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
4868
4869         * ComboBox.cs: Adjust selectedindex if we insert a new item
4870         above the current selectedindex in a sorted ComboBox.
4871         [Fixes bug #374654]
4872
4873 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
4874
4875         * ComboBox.cs: Support PageUp/PageDown when dropdown is closed.
4876         [Fixes bug #374712]
4877
4878 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
4879
4880         * DataGridViewTextBoxCell.cs: Implement stuffs.
4881
4882 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
4883
4884         * TreeView.cs: Create the scrollbars even earlier to be
4885         double dog certain they are created before they are accessed.
4886
4887 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
4888
4889         * XplatUIX11.cs: Remove a no-op line that csc was choking on.
4890
4891 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
4892
4893         * ScrollBar.cs: Create an internal safe Value setter so we
4894         won't crash if we try to set a value outside the min and max.
4895         * TextBoxBase.cs: Use safe value setter to guard against a
4896         potential NRE that is being reported by Reflector.
4897
4898 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
4899
4900         * TreeView.cs: Create the scrollbars earlier in the constructor
4901         to attempt to guard against an NRE in SetTop in Reflector.
4902
4903 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
4904
4905         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCell.cs,
4906         DataGridViewRowCollection.cs: Do not scroll column and row headers,
4907         show messagebox on data format error, use column display index
4908         correctly, make sure HitTest supports new layout stuff,
4909         make sure scrollbars support new layout stuff.
4910
4911 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
4912
4913         * XplatUIX11.cs : Patch by Doug Rintoul.
4914           For some IM engines, keypress events need to delay call
4915           to XPending() and XNextEvent() in the loop so that it
4916           does not mess the orders in XIM commit callback.
4917           Some KeyRelease events such as shift keys need to be
4918           processed both in the IM engine and winforms driver
4919           itself since winforms holds its own state check.
4920
4921           For details, see: http://lists.ximian.com/pipermail/mono-winforms-list/2008-March/003279.html
4922
4923 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
4924
4925         * X11Keyboard.cs, XplatUIX11.cs :
4926           add primitive support for XIM input support (preedit-
4927           nothing and status-nothing). It requires precise event
4928           capturing (XSelectInput/"filterEvents") and different
4929           call to XFilterEvent against root window.
4930           Get composed string and send dummy WM_IME_COMPOSITION.
4931           Free XIM and XIC instances in finalizer.
4932
4933           (This first patch does not include suggested changes
4934            by Doug Rintoul. It will follow.)
4935
4936 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
4937
4938         * DataGridView.cs: When binding to a property, if the property
4939         doesn't have a setter, set the column to readonly.
4940         [Fixes bug #343965]
4941
4942 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
4943
4944         * ComboBox.cs: Guard against NRE if an arrow key is hit while
4945         we aren't dropped down.  Support Home/End in DropDownList mode.
4946         [Fixes bug #371990]
4947
4948 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
4949
4950         * TreeNodeCollection.cs: Don't increment count until we've
4951         saved our index to return.
4952         [Fixes bug #373603]
4953
4954 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
4955
4956         * Label.cs: Add padding to the label's AutoSize calculation.
4957         [Fixes bug #373792]
4958
4959 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4960
4961         * ListBindingHelper.cs: Actually implement GetListName method.
4962
4963 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4964
4965         * BindingSource.cs: Throw the propert expceptions for some methods, as
4966         well as detect the list item type for Add method if DataSource is null.
4967
4968 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
4969
4970         * DataGridViewCell.cs: I don't know why I commented this out,
4971         putting it back for now.
4972
4973 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
4974
4975         * DataGridViewCell.cs: Remove storage for owning column, just
4976         use column index.
4977         * DataGridViewColumn.cs: Make getter for HeaderTextSet.
4978         * DataGridViewColumnHeaderCell.cs: If the header text has been
4979         explicitly set, return it.
4980         [Fixes bug #325979]
4981
4982 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
4983
4984         * DataGridViewRowCollection.cs: Disable row sharing when
4985         using data binding.  Its a great feature, but lets work on
4986         getting DGV usable first before we worry about optimizations.
4987
4988 2008-03-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4989
4990         * BindingSource.cs: When resetting our internal list, compute list
4991         item type information to be used for indirect list access. Also
4992         implement/tune some properties and methods related to the list access
4993         too.
4994         * ListBindingHelper.cs: Add a stub for GetListName method, used from
4995         BindingSource.
4996
4997 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
4998
4999         * DataGridView.cs: If RowCount is increased while ColumnCount
5000         is zero, add a column.  [Fixes bug #331649]
5001
5002 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
5003
5004         * DataGridViewRowCollection.cs: When adding new rows for
5005         databinding, make sure they are place before the add row.
5006         [Fixes bug #343961]
5007
5008 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
5009
5010         * DataGridViewRow.cs: Draw cells in column DisplayIndex order
5011         instead of Index order.
5012
5013 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
5014
5015         * DataGridView.cs: If columns are added by increasing ColumnCount,
5016         they need to be DataGridViewTextBoxColumns, not DataGridViewColumn.
5017         [Fixes bug #325588]
5018
5019 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
5020
5021         * DataGridView.cs: Turn off and on the "new row" when 
5022         AllowUserToAddRows is toggled.  When the handle is created,
5023         set current cell and selected cell/row/col.
5024
5025 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
5026
5027         * ComboBox.cs: When navigating the drop down by keyboard, we
5028         need to scroll the list box if our selection moves out of the
5029         currently shown items.  [Fixes bug #371990]
5030
5031 2008-03-24  Luke Page <luke.a.page@gmail.com>
5032
5033         * RichTextBox.cs: Handles visible rtf tag and no longer shows the text
5034         on the control. Also now handles unicode compatibility characters and
5035         stores the unicode compatibility length on the stack. Fixes Bugs
5036         #355198 and #366436.
5037
5038 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5039
5040         * BindingSource..cs: Take into account DataMember when re-creating the
5041         List property, and also create a specific kind of list as needed.
5042
5043 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5044
5045         * ListBindingHelper.cs: Add a new case for GetList () method - when we
5046         get an empty IEnumerable, try to detect whether the datamember is
5047         valid or not for that type, if true, return null, and throw exception
5048         otherwise.
5049
5050 2008-03-22  Jonathan Pobst  <monkey@jpobst.com>
5051
5052         * ComboBox.cs: Alt-Down should drop down the list, Esc should
5053         retract it.  [Fixes bug #371989]
5054
5055 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
5056
5057         * PropertyGrid.cs: Initialize the sorting button as pushed.
5058
5059 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
5060
5061         * PropertyGrid.cs: 
5062          - Visually select the PropertyTab.
5063          - Filter Properties by Attributes properly.
5064
5065 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
5066
5067         * MenuItem.cs: Remove menu item from parent when disposed.
5068         [Fixes bug #372845]
5069
5070 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
5071
5072         * ToolBar.cs: Don't reset layout_type if Dock = None.
5073
5074 2008-03-21  Andreia Gaita <avidigal@novell.com> 
5075
5076         * UserControl.cs: Select the first available control when we get focus.
5077           Fixes #372616
5078
5079 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
5080
5081         * DataGridViewCell.cs, DataGridViewTextBoxCell.cs: Don't paint
5082         the content if we are in edit mode.  [Fixes bug #343964]
5083
5084 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
5085
5086         * DataGridViewCell.cs: Fix border painting for column headers.
5087
5088 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5089
5090         * BindingSource.cs: When setting or resetting data source,
5091         use ListBindingHelper.GetList () method, since it will get the list in
5092         case datasource is IListSource.
5093
5094 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
5095
5096         * DataGridViewCell.cs: Implement lots more stuffs.
5097
5098 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
5099
5100         * PropertyGridView.cs, GridEntry.cs: Implement support for 
5101         UITypeEditor.IsDropDownResizable.
5102
5103 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
5104
5105         * DataGridViewCell.cs: Remove unused variables, improve how
5106         several of the property getters work.
5107         * DataGridViewRow.cs: Don't call setSize on a cell, cell should
5108         get its size from the parent row/col.
5109
5110 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
5111
5112         * PropertyGrid.cs: Ensure PropertiesTab is visible even if the 
5113         user alters manually the PropertyTabs collection via the 
5114         PropertyTabs property.
5115
5116 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5117
5118         * ListBindingHelper.cs: Implement -previously- ignored cases. We have
5119         new tests for them to be sure to be compatible with .net.
5120
5121 2008-03-20  Andreia Gaita <avidigal@novell.com> 
5122
5123         * WebBrowserBase.cs: Fix attributes, add events
5124         * WebBrowser.cs: Fix Padding signature
5125
5126 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
5127
5128         * PropertyGrid.cs, PropertyGridView.cs: Implement PropertyTab support.
5129
5130 2008-03-19  Jonathan Pobst  <monkey@jpobst.com>
5131
5132         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCellStyle.cs,
5133         DataGridViewLinkCell.cs, DataGridViewRow.cs, DataGridViewRowHeaderCell.cs,
5134         DataGridViewTextBoxCell.cs: Changes so that DataGridViewCell
5135         passes the new suite of tests for it.
5136
5137 2008-03-18  Andreia Gaita <avidigal@novell.com> 
5138
5139         * WebBrowser.cs: Add missing attributes, missing Padding and
5140           DefaultSize properties, remove extraneous getters
5141
5142 2008-03-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5143
5144         * ListBindingHelper.cs: Implement a pair of GetListItemProperties
5145         method overloads.
5146
5147 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
5148
5149         * ComboBox.cs: Move resetting the selected index to keypress
5150         instead of textchanged.  Changing the text programmatically
5151         should not trigger resetting the selected index.  Fixes test.
5152
5153 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
5154
5155         * ComboBox.cs: When the user types into the textbox, reset
5156         the selected index to -1.  [Fixes bug #371672]
5157
5158 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
5159
5160         * FileDialog.cs: Support Control-A for selecting everything
5161         in an OpenFileDialog.  [Fixes bug #371564]
5162
5163 2008-03-15  Jonathan Pobst  <monkey@jpobst.com>
5164
5165         * DataGridView.cs: When row/column visible/height properties
5166         change, invalidate.  Take the NIEX out of InvalidateRow/Column
5167         etc.  We don't support them yet, but we can just invalidate
5168         everything until we do support them.  (Added MonoTODO).  Set
5169         proper control styles.
5170         * DataGridViewRow.cs: Don't call PaintHeader if row headers
5171         are turned off. 
5172
5173 2008-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5174
5175         * ListBindingHelper.cs: Implement 2.0 GetListItemType methods.
5176
5177 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
5178
5179         * DataGridViewRow.cs: Only paint the white background in
5180         cell bounds, the row bounds extends past the cells if the 
5181         grid width isn't as wide as the DGV.
5182
5183 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
5184
5185         * DataGridView*: Completely revamp the drawing to match the
5186         public API.  Our grids now look better, and call all the
5187         appropriate methods and event to allow users to override
5188         the painting and do their own.
5189
5190 2008-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5191
5192         * ListBindingHelper.cs: Implement 2.0 GetList methods.
5193
5194 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
5195
5196         * DataGridView.cs: Implement BorderStyle.
5197
5198 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
5199
5200         * FileDialog.cs: Apply patch from Andy Hume: Any time we
5201         are comparing attributes, make sure we only look at the
5202         one we are interested.  These calls were failing if there
5203         were more than one attribute.
5204         [Fixes bug #370385]
5205
5206 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
5207
5208         * DataGridColumnStyle.cs: Hide ctor from 1.1 profile.
5209
5210 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
5211
5212         * PageSetupDialog.cs: Stub EnableMetric.
5213         * PrintControllerWithStatusDialog.cs: Implement IsPreview.
5214         * PrintPreviewDialog.cs: Add ProcessDialogKey,
5215         ProcessTabKey.
5216
5217 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
5218
5219         * MonthCalendar.cs: Remove unused variable.
5220
5221 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
5222
5223         * DataGridView*.cs: corcompare stuffs.
5224
5225 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
5226
5227         * MonthCalendar.cs: Remove an incorrect invalidate optimization.
5228         The savings aren't worth the extra code to fix the optimization.
5229         [Fixes bug #368585]
5230
5231 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
5232
5233         * ToolBar.cs: Always call base.Dock in the Dock override so that
5234         Control's layout_type gets reset correctly.
5235         [Fixes bug #368882]
5236
5237 2008-03-11  Ivan N. Zlatev  <contact@i-nz.net>
5238
5239         * X11Dnd.cs: End DnD operation also for the middle mouse button.
5240
5241 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
5242
5243         * ContainerControl.cs: We can't do MenuStrip implicit mnemonics
5244         at the same time we do explicit ones, because we have to give all
5245         other controls on the container a chance to handle explicit ones
5246         first.  If no one has an explicit mnemonic, then we can let the
5247         MenuStrip have a shot at implicit mnemonics.
5248         * MenuStrip.cs: Create an implicit mnemonic function.
5249         * ToolStrip.cs: When processing explicit mnemonics, don't do implicit
5250         mnemonics for MenuStrips.
5251         [Fixes bug #368493]
5252
5253 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
5254
5255         * AxHost.cs, Binding.cs, DataGridView.cs, DataGridViewCell.cs,
5256         DataGridColumnStyle.cs: corcompare stuffs.
5257
5258 2008-03-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5259
5260         * FileDialog.cs: Don't add any ColumnHeader to Columns if view is not
5261         Details - This is needed after we added the bits to use any available
5262         column also for List and SmallIcon view. 
5263
5264 2008-03-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5265
5266         * ListBox.cs: Fire SelectedIndexChanged and SelectedValueChanged events
5267         at the proper place, not only when changing SelectedIndex and changing
5268         the selection using keys/mouse, as .net does.
5269
5270 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5271
5272         * ControlBindingsCollection.cs: Implement last 2.0
5273         DefaultDataSourceUpdateMode property. Also fix a wrong instruction
5274         in the new 2.0 Add methods.
5275
5276 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5277
5278         * ListBox.cs: When calling SelectedIndexCollection.Clear,
5279         return if no items are previously selected - this is done to avoid 
5280         firing OnSelectedIndexChanged without need to do so. Also,
5281         when creating handle ensure that the focused item is visible (as
5282         .net does).
5283
5284 2008-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5285
5286         * ListBox.cs: Rewrote/refactored most of selection code. We require
5287         the following things in selection: a) keep selection sorted (both
5288         indices and items), b) SelectedIndices automatically detect the
5289         selection mode, c) SelectedIndex should be the first selected item
5290         index, d) Need to Focus/adjust scroll bar when selecting a new item,
5291         not only for SelectedIndex, which is specially important in Multi*
5292         selection modes. To achieve this we are moving the selection core to
5293         SelectedIndexCollection and make depend all selection modifications on
5294         it.
5295         Fixes #366438.
5296
5297 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
5298
5299         * ToolStrip.cs: Enable implicit mnemonics for drop down
5300         menu strips.  [Fixes part of bug #367692]
5301
5302 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
5303
5304         corcompare - fix parameter names [stragglers].
5305         Binding.cs, BindingsCollection.cs, GridColumnStylesCollection.cs,
5306         HelpEventHandler.cs, Label.cs, ListView.cs, Message.cs,
5307         TabControl.cs.
5308
5309 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
5310
5311         Control.cs: Don't call ProcessMenuKey on WM_SYSKEYUP if there
5312         was a mnemonic pressed as well as Alt.  Also, if nothing handles a
5313         mnemonic, let the ToolStripManager have it even if it doesn't
5314         have a matching mnemonic.
5315         [Fixes bug #367499]
5316
5317 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
5318
5319         corcompare - fix warning about implicit implementation
5320         * ToolStrip.cs: Add IToolStripData interface.
5321         * IToolStripData.cs: Add.
5322
5323 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
5324
5325         corcompare - fix warning about implicit implementation
5326         * Control.cs, ToolStripPanelRow.cs: Add IBounds interface.
5327         * IBounds.cs: Add.
5328
5329 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
5330
5331         corcompare - fix parameter names [N-Z].
5332         LinkArea.cs, NativeWindow.cs, NotifyIcon.cs, PageSetupDialog.cs,
5333         Panel.cs, PrintDialog.cs, PrintPreviewControl.cs, PropertyGrid.cs,
5334         PropertyManager.cs, RichTextBox.cs,
5335         ScrollBar.cs, SelectionRange.cs, SplitContainer.cs, StatusBar.cs,
5336         StatusBarDrawItemEventArgs.cs, StatusBarPanelClickEventArgs.cs,
5337         StatusStrip.cs, TabControl.cs, TableLayoutColumnStyleCollection.cs,
5338         TableLayoutRowStyleCollection.cs, TableLayoutStyleCollection.cs,
5339         TextBoxBase.cs, ThreadExceptionDialog.cs, ToolStrip.cs,
5340         ToolStripContentPanel.cs, ToolStripDropDown.cs,
5341         ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
5342         ToolStripPanel.cs, ToolStripSeparator.cs,
5343         TreeNode.cs, TreeView.cs, TreeViewHitTestInfo.cs,
5344         UICuesEventHandler.cs, UpDownBase.cs.
5345
5346 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
5347
5348         corcompare - fix parameter names [G-M].
5349         GridColumnStylesCollection.cs, GridItemCollection.cs,
5350         GridTableStylesCollection.cs, GroupBox.cs, Help.cs,
5351         HelpProvider.cs, ImageListStreamer.cs, InputLanguageCollection.cs,
5352         Label.cs, LayoutEngine.cs, LinkClickedEventArgs.cs,
5353         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewGroupCollection.cs,
5354         ListViewItem.cs, Menu.cs, MenuItem.cs, MenuStrip.cs, MouseEventArgs.cs.
5355
5356 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
5357
5358         corcompare - fix parameter names [A-F].
5359         Control.cs, DataGridBoolColumn.cs, DataGridColumnStyle.cs,
5360         DataGridTextBoxColumn.cs, DataGridViewButtonCell.cs,
5361         DataGridViewCellCollection.cs, DataGridViewCellParsingEventArgs.cs,
5362         DataGridViewCheckBoxCell.cs, DataGridViewColumnDesignTimeVisibleAttribute.cs,
5363         DataGridViewComboBoxCell.cs, DataGridViewHeaderCell.cs,
5364         DataGridViewImageCell.cs, DataObject.cs, DomainUpDown.cs,
5365         DrawItemEventArgs.cs, FolderBrowserDialog.cs, FontDialog.cs, Form.cs.
5366
5367 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
5368
5369         * GridEntry.cs: Do not convert not only if the types match, 
5370         but also if the property type is assigneable from the value's
5371         type.
5372         [Fixes bug #366566]
5373
5374 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
5375
5376         * PropertyGridView.cs: 
5377          - Subscribe to the listbox only once and not everytime.
5378          - Update the textbox even if SetValue fails.
5379          - Close the listbox before calling TrySetValue just in case.
5380          [Fixes bug #366569]
5381
5382 2008-03-03  Jonathan Pobst  <monkey@jpobst.com>
5383
5384         * Control.cs: Hide ICollection.CopyTo from the 1.1 profile.
5385
5386 2008-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5387
5388         * ListView.cs: Implement support for custom column width based on
5389         Columns collection (we were previously using this collection only
5390         with Details view).
5391         Fixes #364484.
5392
5393 2008-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5394
5395         * ListViewItem.cs: For Tile view, always set bounds for the first
5396         subitem (which is the main one), and also don't let Width be larger
5397         than ListView.TileSize.Width. Improve code readibility also.
5398         * ThemeWin32Classic.cs: When painting the ListViewItem instances
5399         in Tile view, _always_ use the NoWrap flag.
5400         Fixes #360798.
5401
5402 2008-02-29  Ivan N. Zlatev  <contact@i-nz.net>
5403
5404         * PropertyGrid.cs: Check for null PropertyDescriptor.Name just 
5405         in case.
5406         * GridEntry.cs: For MS compitability make all child properties 
5407         readonly if the parent is readonly. Ugh.
5408         [Fixes bug #365945 and #365944]
5409
5410 2008-02-29  Andreia Gaita <avidigal@novell.com> 
5411
5412         * HtmlHistory.cs: Fix sigs for Forward and Back to navigate by index
5413           relative to the history
5414
5415 2008-02-29  Andreia Gaita <avidigal@novell.com>
5416
5417         * HtmlElement.cs: More handlers for mouse and key events
5418
5419 2008-02-28  Andreia Gaita <avidigal@novell.com>
5420
5421         * WebBrowserBase.cs: MouseClick sig changed.
5422         * HtmlHistory.cs: Implement history navigation
5423         * HtmlElement.cs: Add event handlers, and connect them.
5424
5425 2008-02-28  Ivan N. Zlatev  <contact@i-nz.net>
5426
5427         * GridEntry.cs: 
5428          - Use PropertyDescriptor.DisplayName instead of .Name for Label,
5429            so that DisplayNameAttribute doesn't get ignored.
5430          - Check for ParenthesizeNameAttribute and parenthesize the Label.
5431          - Add support for PasswordPropertyTextAttribute
5432         * PropertyGridView.cs: Check if an entry is a password.
5433         [Fixes bugs #365589, #365586, #365588]
5434
5435 2008-02-28  Andreia Gaita <avidigal@novell.com>
5436
5437         * PropertyGridView.cs: Revert the message filtering change, as we
5438         need it to block after all. Remove block parameter, unnecessary.
5439
5440 2008-02-27  Jonathan Pobst  <monkey@jpobst.com>
5441
5442         * UserControl.cs: Better implementation of GetPreferredSize.
5443         First step to fixing bug #361441.
5444
5445 2008-02-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5446
5447         * Binding.cs: Actually implement data binding support for 
5448         classes implementing IBindableComponent.
5449         * ControlBindingsCollection.cs: Likewise.
5450
5451 2008-02-26  Andreia Gaita  <avidigal@novell.com>
5452
5453         * PropertyGridView.cs: Use a message filter to check when to 
5454         close the dropdown
5455
5456 2008-02-26  Andreia Gaita  <avidigal@novell.com>
5457
5458         * Application.cs: Change the message_filters loop so a filter 
5459         can be removed while looping.
5460
5461 2008-02-26  Ivan N. Zlatev  <contact@i-nz.net>
5462
5463         * GridEntry.cs: Optimization in ToggleValue so that it caches
5464         the current value.
5465         * PropertyGridView.cs: An optimization so that the property isn't 
5466         re-read twice for each StandardValue added to the drop-down menu.
5467         Patch by Andy Hume <andyhume32@yahoo.co.uk> under the MIT/X11
5468         license.
5469         [Fixes bug #362755]
5470
5471 2008-02-26  Jonathan Pobst  <monkey@jpobst.com>
5472
5473         * Application.cs: Apply patch from Justin Cherniak to match
5474         MS better for ProductName, ProductVersion, and CompanyName.
5475         [Fixes bug #361709]
5476
5477 2008-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5478
5479         * Binding.cs: Actually implement 2.0 NullValue property. Also
5480         when changing the formatting related properties, only update the state
5481         if formatting_enabled is true (we don't mind otherwise).
5482
5483 2008-02-25  Jonathan Pobst  <monkey@jpobst.com>
5484
5485         * ToolStrip.cs: Don't raise ItemClicked for disabled items.
5486         [Fixes bug #364486]
5487
5488 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
5489
5490         * GridEntry.cs: Use the PropertyDescriptor.PropertyType instead 
5491         of GetType on the current value as it uses reflection to 
5492         determine the type. This fixes the case where the new value is 
5493         null. 
5494
5495 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
5496
5497         * PropertyGridView.cs: Limit mousewheel scrolling to not scroll
5498         past the view.
5499
5500 2008-02-24  Luke Page  <luke.a.page@gmail.com>
5501
5502         * Line.cs, TextControl.cs: Implement offset x and y so that a
5503         document doesn't have to begin  at (0,0) on the viewpoint.
5504         * TextBox.cs, TextBoxBase.cs: RightToLeft switches the scroll
5505         bars and switches the text alignment (and therefore is now
5506         implemented for textbox). Fixes #321383.
5507
5508 2008-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5509
5510         * Binding.cs: Actually implement 2.0 FormatString and FormatInfo
5511         properties. Also when changing FormattingEnabled update the control
5512         property -as .Net does-.
5513
5514 2008-02-22  Carlos Alberto Cortez <calberto.cortez@Å‹mail.com>
5515
5516         * ControlBindingsCollection.cs: Add the missing 2.0 Add overloads.
5517         * Binding.cs: Add stubs for the overloads of the Add method in
5518         CBCollection.
5519
5520 2008-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5521
5522         * Binding.cs: PullData () returns a false value if we got an exception.
5523         Also when validating the control and we get an error, instead of
5524         setting the value of the previous one, cancel the event (tested in 1.1
5525         and 2.0).
5526
5527 2008-02-22  Jonathan Pobst  <monkey@jpobst.com>
5528
5529         * TreeView.cs: Make selected_node and highlighted_node internal.
5530         * TreeNodeCollection.cs: Reset selected_node and highlighted_node
5531         to null when Nodes.Clear is called.
5532         [Fixes bug #363884]
5533
5534 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
5535
5536         * FontDialog.cs: Ensure that when the Font is set in code,
5537         all the gui pieces are updated accordingly.
5538         [Fixes bug #361020]
5539
5540 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
5541
5542         * TextRenderer.cs: Respect proposed size for MeasureString.
5543         * ThemeWin32Classics.cs: If our CheckBox/RadioButton isn't
5544         autosize, use a proposed width to force wrapping for long text.
5545         [Fixes bug #360981]
5546
5547 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
5548
5549         * TreeView.cs: Factor in checkboxes = false and state images in
5550         to HitTest.  [Fixes bug #363360]
5551
5552 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
5553
5554         * ThemeWin32Classic.cs: Only look at the Date part of a DateTime
5555         when drawing the selected range.
5556         [Fixes bug #363648]
5557
5558 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
5559
5560         * ToolStripContainer.cs: Add SupportsTransparentBackColor and
5561         ResizeRedraw control styles.
5562         [Fixes bug #363555]
5563
5564 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
5565
5566         * TreeView.cs: StateImages are basically custom checkboxes, so
5567         factor their size the same as real checkboxes when determining
5568         what got clicked.
5569         [Fixes bug #363367]
5570
5571 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
5572
5573         * MessageBox.cs: Make the message box wider if the form caption
5574         is longer than the text in the form.
5575         [Fixes bug #361137]
5576
5577 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
5578
5579         * PropertyGridView.cs: Fix a NRE when closing the drop down form.
5580
5581 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
5582
5583         * TreeNode.cs: Guard against an NRE when the parent's
5584         StateImageList hasn't been set.
5585         [Fixes bug #363353]
5586
5587 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
5588
5589         * SplitContainer.cs: Add SupportsTransparentBackColor and
5590         OptimizedDoubleBuffering control styles.
5591         [Fixes bug #363303]
5592
5593 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
5594
5595         * Application.cs: For the app data paths and the registry key paths,
5596         ensure they are created before returning them to the user.
5597         [Fixes bug #361709]
5598
5599 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
5600
5601         * Application.cs: Guard against an NRE in CompanyName and
5602         ProductName.
5603
5604 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
5605
5606         * Application.cs: For CompanyName, ProductName, and ProductVersion,
5607         make sure we handle all three cases correctly: attribute is present,
5608         attribute is present but is an empty string, and attribute is not
5609         present.
5610
5611 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
5612
5613         * PropertyGridView.cs: 
5614          - Fix a NRE that caused a test failure
5615          - Another performance improvement - cache the standard values
5616          listbox.
5617
5618 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
5619
5620         * ComboBox.cs: Fix previous change to affect both 1.1 and 2.0
5621         code paths.
5622
5623 2008-02-19  Ivan N. Zlatev  <contact@i-nz.net>
5624
5625         * PropertyGridView.cs: Fix a big performance bug.
5626
5627 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
5628
5629         * SelectionRange.cs: Apply patch from Andy Hume to make
5630         constructor behavior more accurate.  [Fixes bug #362117]
5631
5632 2008-02-19  Andreia Gaita <avidigal@novell.com> 
5633
5634         * Control.cs: Added a new flag is_disposing to track if the
5635         window is currently in the process of being disposed of.
5636         This is used so that, when firing visibility changes triggered
5637         by unparenting controls during Dispose, the control doesn't
5638         get created again.      
5639
5640 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
5641
5642         * ComboBox.cs: Set height to preferred height when the handle
5643         is created.  [Fixes bug #360862]
5644
5645 2008-02-18  Andreia Gaita <avidigal@novell.com>
5646
5647         * XplatUIX11.cs: Create FosterParent with border width at 0.
5648         With the previous value of 4, everytime a control got reparented
5649         from parent = null, it's location would be shifted right and 
5650         down by 4, since these coordinates would be offset by the 
5651         FosterParent's border width.
5652
5653 2008-02-18  Ivan N. Zlatev  <contact@i-nz.net>
5654
5655         * Control.cs: During diposing firstly remove ourselfes from
5656         the parent and *then* destroy our handle, because removing
5657         ourselfes from the parent controls collection causes 
5658         VisibilityChange, etc events, which require a handle and end
5659         up recreating the control.
5660
5661 2008-02-17  Ivan N. Zlatev  <contact@i-nz.net>
5662
5663         * GridEntry.cs: Set expanded state before notifying that the
5664         expansion has taken place.
5665         * PropertyGridView.cs:
5666          - Set the propertygridtextbox text to the selected 
5667          StandardValue before proceeding to setting it.
5668          - Scrolling bugfixes.
5669
5670 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
5671
5672         * GridEntry.cs:
5673          - Fix ValueText to not return null.
5674          - Fix conversion error reporting to actually happen.
5675         * PropertyGridView.cs: Set entry only if the text has changed.
5676         [Fixes bug #362116]
5677
5678 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
5679
5680         * GridEntry.cs: 
5681          - Fix handling of a null current value.
5682          - Swallow editor exceptions.
5683         [Fixes bug #362114]
5684
5685 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
5686
5687         * PropertyGrid.cs: Clear current items first thing before 
5688         repopulating subitems.
5689         * GridEntry.cs: 
5690          - Handle null StandardValuesCollection.
5691          - Mark as not editable if there is no PropertyDescriptor and
5692          if the Converter cannot convert from string.
5693         [Part of fix for bugs #360666 and #358332]
5694
5695 2008-02-15  Luke Page  <luke.a.page@gmail.com>
5696         * MaskedTextBox.cs: Now skips non editable characters after a
5697         character has been entered and we are progressing to the next
5698         position in the MaskedTextBox.
5699
5700 2008-02-15  Luke Page  <luke.a.page@gmail.com>
5701         * TextBoxBase.cs: Handles MouseDown when shift key is clicked so
5702         that it changes the selection rather than just repositioning the
5703         cursor. Fixes Bug #360873.
5704
5705 2008-02-15  Luke Page  <luke.a.page@gmail.com>
5706         * TextBoxBase.cs, TextControl.cs, RichTextBox.cs: TextChanged fires
5707         when Undo/Redo changes the text. Undo/Redo/Undo/Redo now works
5708         correctly. See #359330
5709
5710 2008-02-15  Andreia Gaita <avidigal@novell.com>
5711
5712         * XplatUIX11.cs: If the handle is null when posting a message, use the
5713         current thread queue to post instead. Fixes #332409
5714
5715         * SendKeys.cs: Slight optimization
5716
5717 2008-02-14  Ivan N. Zlatev  <contact@i-nz.net>
5718
5719         * PropertyGrid.cs, PropertyGridView.cs:
5720         Fix multiple scrolling and sizing issues.
5721         [Fixes bug #359199]
5722
5723 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
5724
5725         * PropertyGridView.cs: Ensure that drop down editors are shown
5726         in the WorkingArea of the screen.
5727         [Fixes bug #359807]
5728
5729 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
5730
5731         * GridEntry.cs: Fail silently when UITypeEditor is missing.
5732         [Fixes bug #360666]
5733
5734 2008-02-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5735
5736         * Binding.cs: Implement 2.0 DataSourceNullValue property.
5737
5738 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
5739
5740         * PropertyGridView.cs:
5741          - Clear the controls in the drop down form after it is hidden.
5742          - Fix Width sizing of the dropdown editors to match MSFT.
5743
5744 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
5745
5746         * PropertyGridView.cs: 
5747          - Fix height for drawing the grid entry
5748          text value, so that it clips multiline text properly.
5749          - Fix unfocusing to match MSFT.
5750
5751 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
5752
5753         * PropertyGrid.cs: Do not populate subgriditems unless expandable.
5754         Fixes a bug where on repopulation after value changed items become
5755         expandable.
5756
5757 2008-02-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5758
5759         * Binding.cs: For the 2.0 profile, look for a 
5760         'PropertyChanged' event in the target control, and add checks for
5761         DataSourceUpdateMode property to change -or not- the data source
5762         from validation/control property change.
5763
5764 2008-02-10  Atsushi Enomoto  <atsushi@ximian.com>
5765
5766         * Binding.cs : build fix (operator == is not overriden in 1.x. Do
5767           not compare struct with null in 2.0).
5768
5769 2008-02-10  Luke Page <luke.a.page@gmail.com>
5770
5771         * MaskedTextBox.cs: UseSystemPasswordChar updates PasswordChar, PasswordChar
5772         updates the provider and if not using a provider, uses the internal document
5773         class implementation of password char. Also when showing text, uses display string
5774         from the provider, instead of the actual text.
5775
5776 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5777
5778         * Binding.cs: Ooooops, forgot to take into account the data_source
5779         and binding_member_info null case (it was breaking the Binding tests).
5780
5781 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5782
5783         * Binding.cs: Implement support for data source changes exposed by
5784         'PropertyNameChanged' events, and update the control property as
5785         needed.
5786
5787 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5788
5789         * Binding.cs: Implement 2.0 WriteValue method.
5790
5791 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
5792
5793         Commit patch from James Purcell for better AutoScale implementation:
5794
5795         * ScaleControl should call GetScaledBounds with the control's total size rather
5796         than client size.  GetScaledBounds should handle ignoring the borders in its
5797         calculations.  Cleaned up ScaleControl/GetScaledBounds overrides in controls
5798         (for the most part they just call the base code now since that is fixed).
5799         * Added ScaleChildrenInternal to allow controls to disable scaling of children
5800         without having to override ScaleChildren (since none of .NET's controls do). 
5801         This is required for most controls in Mono that have scrollbars to prevent the
5802         scrollbars from being moved/resized.
5803         * Nested ContainerControls can have a different scale mode than their parent. 
5804         This is briefly mentioned in MSDN but is buggy in MS.NET (the runtime and
5805         designer produce different results both of which look incorrect).
5806         * Default AutoScaleMode for ContainerControl should be Inherit.
5807         * Simplified workaround for ComboBox scaling issue.
5808         * 1.0 style auto-scaling now uses its own methods instead of sharing 2.0's. 
5809         1.0 style auto scaling should scale the whole control's size instead of
5810         ignoring the borders (except for Form) and the rounding is done differently to
5811         preserve control alignment.
5812         * ApplyAutoScaling (used for 1.0 style) should use the rounded result of
5813         GetAutoScaleSize.
5814         * Cleaned up fix for "Bug 355703 - Setting AutoScale = true doesn't stick".
5815         * CurrentAutoScaleDimensions should round the estimated character width instead
5816         of truncating.
5817         * ListBox's GetScaledBounds should always use the height it was set to instead
5818         of the height that was passed in.  This prevents rounding errors from
5819         accumulating quickly with IntegralHeight.
5820         [Bug #359098]
5821
5822 2008-02-08  Andreia Gaita <avidigal@novell.com>
5823
5824         * Form.cs: Add a null check (darn it). 
5825
5826 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
5827
5828         * MdiClient.cs: Make sure the requesting form actually owns the
5829         control menu items before removing them.  Also, use
5830         Suspend/ResumeLayout when adding or removing items so we only
5831         layout once.
5832         [Fixes bug #359887]
5833
5834 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
5835
5836         * Control.cs: Guard against an NRE in ShowFocusCues.
5837         [Fixes bug #359830]
5838
5839 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5840
5841         * Binding.cs: Implement 2.0 ReadValue method and ControlUpdateMode
5842         property, as well as stubbing DataSourceUpdateMode.
5843
5844 2008-02-08  Andreia Gaita <avidigal@novell.com>
5845
5846         * Form.cs: When closing forms, get focus back to the active control of the
5847         active form. [Fixes #341314, corner case]
5848         
5849 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
5850
5851         * MdiClient.cs: After we move the scrollbars, invalidate the NC
5852         area, so any old scrollbar artifacts are cleaned up.
5853         [Fixes bug #336305]
5854
5855 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
5856
5857         * MdiWindowManager.cs: If we are maximized and using MainMenuStrip
5858         for our menus, display that control box menu instead of the 1.1
5859         menu one.
5860
5861 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
5862
5863         * MdiControlStrip.cs: Add property to access the mdi form tied to
5864         each toolstripitem.
5865         * MdiClient.cs: Be smarter about removing and adding toolstripitems
5866         to the implicitly merged menu.  Every time we clicked the form, items
5867         were getting removed and the re-added, causing the form to jump around
5868         as the menu resized.
5869
5870 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
5871
5872         * MdiClient.cs: Make sure the NormalBounds always gets set.  It
5873         was being reset by the implicit menu merge for menustrips.
5874         [Fixes bug #336296]
5875
5876 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
5877
5878         * Form.cs: Don't do the previous change when WindowState = Normal,
5879         or it messes up where the window is placed.  Fixes test failure.
5880
5881 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
5882
5883         * Form.cs: When becoming visible, if we are an MDI child, call
5884         SetWindowState with a dummy old_state so that changes will actually
5885         be made.
5886         [Fixes the 2nd part of bug #325473]
5887
5888 2008-02-07  Andreia Gaita <avidigal@novell.com>
5889
5890         * Control.cs: Reset properties to their pre parent-change values in case
5891         the new parent == null (in which case we're basically removing the control, 
5892         and don't want any events fired due to fake property changes)
5893         [Fixes #355850]
5894
5895 2008-02-06  Ivan N. Zlatev  <contact@i-nz.net>
5896
5897         * PropertyGridView.cs: 
5898          - Refactor SetValue to allow setting the value
5899         when a custom editor is used, but the entry is not editable.
5900          - Remove the custom editor control on CloseDropDown.
5901         [Fixes #359196]
5902
5903 2008-02-06  Andreia Gaita <avidigal@novell.com>
5904
5905         * PrintControllerWithStatusDialog.cs: Set PrintFileName value through
5906         reflection only on 1.1, this property is public on system.drawing on 2.0.
5907         Fixed #359247
5908
5909 2008-02-06  Andreia Gaita  <avidigal@novell.com>
5910         
5911         * WebBrowser.cs: Do a normal page refresh by default.
5912
5913 2008-02-05  Andreia Gaita  <avidigal@novell.com>
5914
5915         * XplatUIWin32.cs, XplatUICarbon.cs: set the hwnd.Mapped flag when we create 
5916         the window so that the check on Control.UpdateZOrderOfChild passes on non-X
5917         platforms. Fixes #359036
5918         
5919         Note: Control.UpdateZOrderOfChild needs to be rewritten to not rely on 
5920         platform-specific flags.
5921
5922 2008-02-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5923
5924         * Binding.cs: Add 2.0 BindableComponent property - just return control
5925         by now.
5926
5927 2008-02-05  Everaldo Canuto  <ecanuto@novell.com>
5928
5929         * MenuAPI.cs: Check if control is disposable when track popup menu. Thanks
5930         Jonathan for this patch. Fixes #358442.
5931
5932 2008-02-05  Jonathan Pobst  <monkey@jpobst.com>
5933
5934         * Form.cs: If we change the active MDI child form, let the others
5935         know they need to repaint their title bar so it will appear inactive.
5936         [Fixes part 1 of bug #325473]
5937
5938 2008-02-05  Ivan N. Zlatev  <contact@i-nz.net>
5939
5940          * PropertyGridView.cs: Do not trucate custom editors' width
5941          and align them to the left.
5942          [Fixes #358353 and #358349]
5943
5944 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5945
5946         * BindingsCollection.cs: Implement 2.0 CollectionChanging event.
5947         Also fix the arguments passed to CollectionChangeEventArgs in the
5948         related methods.
5949
5950 2008-02-04  Geoff Norton  <gnorton@novell.com>
5951
5952         * Hwnd.cs: The conversion to Quartz coordinates happens in
5953         System.Drawing.  Removing this translation from here.
5954
5955 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
5956
5957          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs,
5958          CategoryGridEntry.cs, RootGridEntry.cs, GridItem.cs,
5959          GridItemCollection.cs:
5960          PropertyGrid rewrite part 2. Tons of bugfixes and new features.
5961
5962 2008-02-04  Geoff Norton  <gnorton@novell.com>
5963
5964         * X11Keyboard.cs: VK_MENU should send a KEYUP instead of 
5965         SYSKEYUP if any other key has been pressed in the mean time.
5966         Fixes #324404
5967
5968 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5969
5970         * ListView.cs: In ItemControl.ItemsMouseMove, only fire ItemDrag event
5971         when the item in current position is different than 0. Also, save the
5972         item index in the beginning of the operation, instead of getting the
5973         index of the item when the event is actually performed. Lastly clean
5974         the related fields in ItemsMouseUp if the ItemDrag operation wasn't
5975         triggered.
5976         [Fixes #357873]
5977
5978 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
5979
5980         * Form.cs: Alt-Minus for MDI children system menu should work
5981         with both the minus keys on the keyboard.
5982         [Fixes bug #336295]
5983
5984 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
5985
5986         * Control.cs: Don't invalidate on region change.  The WM should
5987         take care of this automagically.  Keeps us out of an infinite
5988         paint loop if someone changes the Region in the OnPaint.
5989         [Fixes bug #358327]
5990
5991 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
5992
5993          * ImageIndexConverter.cs: ConvertFrom must handle "(none)".
5994
5995 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
5996
5997         * DateTimePicker.cs: Apply patch from Srikanth Madikeri so we drop
5998         down the MonthCalendar only on F4, not Alt+F4.
5999         * MonthCalendar.cs: If we are a popup, close ourselves on Alt+F4.
6000         [Fixes bug #358340]
6001
6002 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
6003
6004         * ThemeWin32Classic.cs: For MonthCalendar, draw a dark border
6005         if its part of a DateTimePicker, else, use the back color.
6006         [Fixes bug #358339]
6007
6008 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
6009
6010         * Hwnd.cs: Use GraphicContext instead of the uninitialized bmp_g.
6011         [Fixes bug #358342]
6012
6013 2008-02-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6014
6015         * CurrencyManager.cs: When we get a ListChanged event from our source,
6016         always fire our own ListChanged event, as .Net does.
6017
6018 2008-02-03  Luke Page  <luke.a.page@gmail.com>
6019
6020         * RichTextBox.cs: AutoSize now defaults to false. Fixes Bug
6021         #358379.
6022
6023 2008-02-03  Luke Page  <luke.a.page@gmail.com>
6024
6025         * TextBoxBase.cs, RichTextBox.cs, TextControl.cs: Sets richtext
6026         property. Removed if for richtext property that was always true.
6027         PgUp/PgDn at top/bottom fixed for RTB. Fixes bug #358237.
6028
6029 2008-02-03  Luke Page  <luke.a.page@gmail.com>
6030
6031         * TextBoxBase.cs - commited patch from James Purcell that
6032         correctly sets the FixedHeight control style when the MultiLine
6033         property is changed on a TextBox control. Fixes bug 358229.
6034
6035 2008-02-02  Luke Page  <luke.a.page@gmail.com>
6036
6037         * Line.cs, LineTag.cs, RichTextBox.cs, TextControl.cs
6038         Fixes bug 351938 - caret is positioned correctly when drawn
6039         and when calculating textual position of caret, no longer
6040         has a NRE in certain situations.
6041         
6042 2008-02-01  Geoff Norton  <gnorton@novell.com>
6043
6044         * Hwnd.cs: Ensure that windows moved into -'ve coordinate space
6045         get that region removed from the paint event.
6046         * XplatUICarbon.cs: Remove the window mapping after disposing of 
6047         window.  Prevents a crash with handle reuse.  Optimize exposes
6048         only onto visible windows (rare; but possible).
6049
6050 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
6051
6052         * UpDownBase.cs: Make sure the internal textbox calls the base's
6053         OnMouseDown and OnMouseUp so the textbox will function correctly.
6054         There were notes saying it doesn't chain up, but its an internal
6055         class, so our implementation may differ.
6056         [Fixes bug #357482]
6057
6058 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
6059
6060         * ListBox.cs: Fix a logic error and don't process MouseDown
6061         for mouse buttons other than Left.
6062
6063 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
6064
6065         * Control.cs: Remove HeightInternal.
6066         * ListBox.cs: Commit patch from James Purcell that correctly
6067         calculates heights for ListBoxen.
6068         [Fixes bug #357152]
6069
6070 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
6071
6072         * Label.cs: Apply patch from James Purcell that corrects the 
6073         signature of the AutoSize property.
6074         [Fixes bug #357605]
6075
6076 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
6077
6078         * ListBox.cs: Don't throw [Mouse]Click events for buttons
6079         other than the left mouse button.
6080
6081 2008-01-31  Jonathan Pobst  <monkey@jpobst.com>
6082
6083         * Control.cs: Remove my awesome optimization as it caused some
6084         regressions with control ordering.  :(
6085         [Fixes bug #357467]
6086
6087 2008-01-31  Ivan N. Zlatev  <contact@i-nz.net>
6088
6089          * PropertyGridView.cs: Fix a NRE on double click when there is no
6090          selected object.
6091
6092 2008-01-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6093
6094         * BindingManagerBase.cs: Implement IsBindingSuspended 2.0 property.
6095
6096 2008-01-30  Jonathan Pobst  <monkey@jpobst.com>
6097
6098         * ListBox.cs: Call MouseClick and MouseDoubleClick.
6099         [Fixes bug #357146]
6100
6101 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
6102
6103         * Hwnd.cs: Make bmp, bmp_g variables threadstatic and private.
6104         * Control.cs, DataGridViewCell.cs, LineTag.cs: Use Hwnd.GraphicsContext
6105         instead of Hwnd.bmp_g.
6106
6107 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
6108
6109         * TextRenderer.cs: Don't maintain private bitmap/graphics contexts.
6110         Use the Hwnd one instead.
6111
6112 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
6113
6114         * Form.cs: Remove duplicated copy of GetAutoScaleSize.
6115
6116 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
6117
6118         * Form.cs: corcompare for RestoreBounds.
6119
6120 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
6121
6122         * Control.cs: Add MarshalAs attribute to Font getter for corcompare.
6123
6124 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
6125
6126         * Form.cs: Handle Alt-Minus for MDI children forms.
6127         * MdiWindowManager.cs: Make ShowPopup internal so Form can call it.
6128         Add mnemonics to the control menu.
6129         [Fixes bug #336295]
6130
6131 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6132
6133         * Binding.cs: Initial implementation bits of FormattingEnabled
6134         property and BindingComplete event (2.0). 
6135         * BindingCompleteEventArgs.cs: Internal methods for setting error text
6136         and exception.
6137
6138 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
6139
6140         * TableLayoutPanel.cs: Draw the table border at 0,0 instead of
6141         table.Location.  [Fixes bug #354672]
6142
6143 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
6144
6145         * Form.cs: Handle WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE to raise
6146         ResizeBegin and ResizeEnd.  [Fixes bug #346529 for win32]
6147
6148 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6149
6150         * ComboBox.cs: When OnDisplayMemberChanged method is reached, instead
6151         of doing all the re-bound work, just invalidate and call SetControlText 
6152         to set the updated text of selected item to our textbox.
6153         Fixes #333750.
6154
6155 2008-01-28  Andreia Gaita <avidigal@novell.com>
6156
6157         * HtmlWindow.cs: Add event handler support. Add Document, Frames, 
6158         IsClosed, Opener, StatusBarText, Url properties, stub out the remaining
6159         missing properties and methods. Add Load, Unload, Error, GotFocus, 
6160         LostFocus, Resize, Scroll events (only load and unload are connected)
6161
6162 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
6163
6164         * AccessibleObject.cs: Modified argument names to match MS.
6165         * Button.cs: Modified argument names to match MS.
6166         * BindingContext.cs: Modified argument names to match MS.
6167         * BindingMemberInfo.cs: Modified argument names to match MS.
6168         * ButtonBase.cs: Modified argument names to match MS.
6169         * ComboBox.cs: Modified argument names to match MS.
6170         * Control.cs: Modified argument names to match MS.
6171         * CheckedListBox.cs: Modified argument names to match MS.
6172         * CommonDialog.cs: Modified argument names to match MS.
6173         * DataGrid.cs: Modified argument names to match MS.
6174         * CursorConverter.cs: Modified argument names to match MS.
6175         * ControlPaint.cs: Modified argument names to match MS.
6176         * CheckBox.cs: Modified argument names to match MS.
6177         * ControlBindingsCollection.cs: Modified argument names to match MS.
6178         * BindingSource.cs: Modified argument names to match MS.
6179         * DataFormats.cs: Modified argument names to match MS.
6180         * ContainerControl.cs: Modified argument names to match MS.
6181         * CurrencyManager.cs: Modified argument names to match MS.
6182         * Application.cs: Modified argument names to match MS.
6183         * ContextMenuStrip.cs: Modified argument names to match MS.
6184         * ContextMenu.cs: Modified argument names to match MS.
6185         * BindingManagerBase.cs: Modified argument names to match MS.
6186         * WindowsFormsSection.cs: Fixed line ending.    
6187
6188 2008-01-27  Andreia Gaita <avidigal@novell.com>
6189
6190         * PropertyGridView.cs: Rearrange the dropdown loop so that it exits when
6191         detecting that the dropdown toolwindow is hidden. EndLoop outside the
6192         while.
6193
6194 2008-01-26  Gert Driesen  <drieseng@users.sourceforge.net>
6195
6196         * PropertiesTab.cs: Fixed argument name of GetDefaultProperty to match
6197         MS. Code formatting.
6198
6199 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6200
6201         * Binding.cs: Don't avoid the Format event if the control 
6202         property type is object. Also, if the value retrieved by 
6203         the data source is null _and_ the control proeprty type 
6204         is object, return Convert.DBNull (match .Net).
6205         Fixes part of #324286.
6206
6207 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6208
6209         * ListControl.cs: Since we are getting two BinginContextChanged events
6210         for the same binding context instance (when the control is added to
6211         form, and when the form is actually shown), take it into account only the
6212         first time for a given binding context instance.
6213         Fixes part of #324286.
6214
6215 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
6216
6217          * PropertryGridView.cs: Ops.
6218
6219 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
6220
6221          * PropertyGridView.cs: Close dropdown form if the owner form is
6222          moved or minimized.
6223          [Fixes bug #322446]
6224
6225 2008-01-25  Ivan N. Zlatev  <contact@i-nz.net>
6226
6227          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs, GridItem.cs, 
6228          RootGridEntry.cs, CategoryGridEntry.cs:
6229          PropertyGrid rewrite.
6230          - Rewrite all of the control logic in PropertyGrid.
6231          - Rewrite all of the ComponentModel logic in GridEntry.
6232          - Rewrite all UI work in PropertyGridView.
6233          - Many bugfixes, etc.
6234
6235 2008-01-24  Jonathan Pobst  <monkey@jpobst.com>
6236
6237         * TableLayoutPanel.cs: Enhance GetPreferredSize to take into account
6238         when all contained controls are autosize or dock-fill.  Also take into
6239         account when the total percentage of column/row sizes is not 100%.
6240         [Fixes bug #354672]
6241
6242 2008-01-24  Andreia Gaita <avidigal@novell.com>
6243
6244         * HtmlDocument.cs:
6245         - Save a reference to the IDocument in the instance and
6246           use that one instead of going to WebHost.Document; the document that the 
6247           WebHost returns might not be the right one (in case of frames).
6248         - Use the hashcode returned from the IDocument interface.
6249         - Implemented: ActiveElement, ActiveLinkColor, All, BackColor, Cookie, 
6250           Domain (setter is not supported), Encoding, ForeColor, Forms, Images, 
6251           LinkColor, Url, VisitedColor, Window
6252
6253         * HtmlElement.cs: 
6254         - Implemented: CanHaveChildren, Children, Document, GetAttribute, 
6255           set_Attribute, NextSibling, Parent, TagName, AppendChild, 
6256           GetElementsByTagName, GetHashCode, HasAttribute, InsertAdjacentElement,
6257           SetAttribute, Equals, equality operators.
6258         - Added stubs for: AttachEventHandler, DetachEventHandler, Focus, 
6259           InvokeMember, RaiseEvent, RemoveFocus, ScrollIntoView, 
6260         
6261         * HtmlElementCollection.cs: Change implementation to use a generic
6262         collection. Implemented Enumerator and CopyTo
6263
6264         * HtmlHistory.cs: Add constructor, no implementation yet.
6265
6266         * HtmlWindow.cs: Initial implementation with: Name, Parent, Alert,
6267         Confirm, Prompt, Navigation, ScrollTo, Open, OpenNew, GetHashCode, 
6268         Equals, equality operators.
6269
6270         * HtmlWindowCollection.cs: Implemented. 
6271
6272         * WebBrowser.cs: Use the Navigation object to navigate (WebHost.Navigate
6273         has been deprecated).
6274
6275         * WebBrowserBase.cs: Use Completed event to track document loading
6276         (Navigated has been deprecated)
6277
6278 2008-01-24  Jonatham Pobst  <monkey@jpobst.com>
6279
6280         * ThemeWin32Classic.cs: Add tab stops and NoWrap to dropdown MenuItems.  Top
6281         level MenuItems do not respect tabs.
6282         [Fixes bug #355196]
6283
6284 2008-01-23  Geoff Norton  <gnorton@novell.com>
6285
6286         * XplatUICarbon.cs:  Ensure that windows are created in their initial 
6287         FormWindowState.  Finished fixing Fullscreen windows on Carbon
6288
6289 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
6290
6291         * MenuAPI.cs: When FindForm fails uses FindRootParent to find the control to
6292         be used as grab_control. Also save status of capture before show ContextMenu
6293         and restore it after close.
6294
6295 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
6296
6297         * Control.cs: Internal FindRootParent method added to return high control
6298         in parent tree.
6299
6300 2008-01-23  Geoff Norton  <gnorton@novell.com>
6301
6302         * Hwnd.cs: Refactor Whole/Client pointer to 1 element for Cursors.
6303         * XplatUICarbon.cs: Refactor some dead code out to Cursor.cs and make
6304         it work again.  Handle HITTEST events.
6305
6306 2008-01-23  Geoff Norton  <gnorton@novell.com>
6307
6308         * XplatUICarbon.cs: Ensure that we always have a host window.  Prevents
6309         a crash in certain cases.  Support for fullscreen windows in certain cases.
6310
6311 2008-01-23  Jonathan Pobst  <monkey@jpobst.com>
6312
6313         * Form.cs: Don't set AutoScaleMode in AutoScale if we don't have to.
6314         [Fixes bug #355703]
6315
6316 2008-01-23  Geoff Norton  <gnorton@novell.com>
6317         
6318         * XplatUICarbon.cs: Remove some dead code that was causing warnings.
6319
6320 2008-01-23  Geoff Norton  <gnorton@novell.com>
6321
6322         * XplatUICarbon.cs:  Re-enabled Carets in QuickDraw as a overlay window.
6323
6324 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
6325
6326         * SplitContainer.cs: Remove unused declarations.
6327         * Binding.cs: Remove unused declarations.
6328
6329 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
6330
6331         * Form.cs: Remove unused declaration of 'active' in Activate method.
6332         * Control.cs: Move declaration of nested_layout inside '#if NET_2_0" to 
6333         prevent compilation warnings.
6334         * TextControl.cs: Remove unused declaration of selection_pos_on_line.
6335         * Hwnd.cs: Remove unused declaration of clip in GetClippingRectangles.
6336         * Bindings.cs: Remove unused formatting_enabled declaration.
6337         * ToolTip.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
6338         warnings.
6339         * TreeView.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
6340         warnings.
6341         * PropertyGridView.cs: Remove usused 'ex' declaration.
6342         * DataGridView.cs: Remove unused declarations.
6343
6344 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
6345
6346         [Fixes bugs #343966, #338511 and other non reported (context)menu bugs]
6347         
6348         * Form.cs: Remove all active_tracker (used by menu) stuff, it is now moved 
6349         to Control class, it makes possible to grab menu to controls that can't 
6350         reach Form using parent tree. Handle for WmButtonUp, WmButtonDown and
6351         WmMouseMove removed since it was used only to track menu events.
6352
6353         * Control.cs:
6354         - Moved all active_tracker stuff from Form.
6355         - ProcessActiveTracker added to prevent code duplicity, now mouse events 
6356         can call this method instead of reimplement all necessary code handle for
6357         menu tracker.
6358         - Call to ProcessActiveTracker for mouse events (WmButtonUp, WmButtonDown
6359         and WmMouseMove).
6360         
6361         * MenuAPI.cs: 
6362         - Remove special handle to ToolStripOverflow, now we can grab menu to 
6363         controls that can't reach Form using parent tree.
6364         - Change type of grab_control from Form to Control.
6365
6366 2008-01-22  Geoff Norton  <gnorton@novell.com>
6367
6368         * TextBoxBase.cs: Split up the sizing of controls and placing of 
6369         controls.  Fixes a bug where scrollbars in Reflector could be sized
6370         wrong and have non-working thumbers.
6371
6372 2008-01-23  Geoff Norton  <gnorton@novell.com>
6373
6374         * XplatUI.cs: Refactor environment variables to default support to the
6375         Carbon driver on the Mac.
6376
6377 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
6378
6379         * Label.cs: Uses new LabelPainter for drawing operations.
6380         * ThemeWin32Classic.cs: DrawLabel and LabelDefaultSize removed.
6381         * Theme.cs: DrawLabel and LabelDefaultSize removed.
6382
6383 2008-01-22  Geoff Norton  <gnorton@novell.com>
6384
6385         * XplatUICarbon.cs: Enable packing scroll delta into the mouse wParam
6386
6387 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
6388
6389         * ThemeWin32Classic.cs: Run Flat, Button appearance, 2.0 CheckBoxes
6390         through the normal flat button code and don't draw the checkbox glyph.
6391         * Theme.cs: Button->ButtonBase signature change.
6392         [Fixes bug #324755]
6393
6394 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
6395
6396         * LinkLabel.cs: Uses new class LinkLabelPainter.
6397
6398 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
6399
6400         * MessageBox.cs: Adjust right border space, we don't need to add 
6401         "space_border*2" two times.
6402
6403 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
6404
6405         * ScrollableControl.cs: With the advent of 2.0's Padding, DockPadding
6406         becomes a wrapper around Padding.
6407         [Fixes a part of bug #354676]
6408
6409 2008-01-22 Geoff Norton  <gnorton@novell.com>
6410
6411         * Mime.cs:  Avoid a needles exception on OSX if we dont have a buffer
6412         acquired.  Also ensure the buffer is large enough to grab the header
6413         we need on linux boxes.
6414
6415 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
6416
6417         * Control.cs: Implement a custom enumerator so people can delete
6418         from the Controls collection while in a foreach.
6419         [Fixes bug #355074]
6420
6421 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
6422
6423          * PropertyGridView.cs: Fix focusing behavior:
6424          - Tab should focus the grid text box.
6425          - Clicking on the labels shouldn't focus the grid text box.
6426
6427 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
6428
6429          * PropertyGridView.cs: IsValueTypeGridItem should return true 
6430          for Arrays as well.
6431
6432 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
6433
6434          * PropertyGrid.cs, GridEntry.cs, PropertyGridView.cs:
6435           - Renamed GridEntry.SelectedObjects to TargetObjects to better
6436           reflect the property name role.
6437           - PropertyGrid.GetTarget is not required as the target is known
6438           (TargetObjects).
6439           - Setting values will handle value types as a special case now and
6440           populate them up in the chain.
6441           [Fixes #354990]
6442
6443 2008-01-21  Jonathan Pobst  <monkey@jpobst.com>
6444
6445         * Hwnd.cs: Create a public property for the Graphics we keep around.
6446
6447 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
6448
6449          * PropertyGridView.cs: Just hide the grid textbox and do nothing more 
6450          when the current object selection changes. 
6451          Fixes failing test SelectedObject_Null2.B5.
6452
6453 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
6454
6455          * PropertyGrid.cs: Process Browsable properties with 
6456          DesignerSerializationVisibilityAttribute.Content as being expandable.
6457          This seems also what MS does. Without this e.g SplitContainer.Panel1/2
6458          will not be expandable. We should be nested components-friendly now.
6459
6460 2008-01-21  Andreia Gaita <avidigal@novell.com>
6461
6462         * WebBrowserBase.cs: Check if control was loaded properly, 
6463         don't bind if it wasn't.
6464
6465         * HtmlDocument.cs: Implement CreateElement, Equals, Focus, 
6466         GetElementFromPoint, equality operators, OpenNew, Write.
6467         Remove extra set_Body
6468
6469 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
6470
6471         * ContainerControl.cs, Control.cs: Apply patch from James Purcell
6472         that makes our AutoScale* stuff more tolerant to different orders
6473         of being set.  [Fixes bug #354669]
6474
6475 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
6476
6477          * PropertyGridView.cs, PropertyGridTextBox.cs: 
6478          Drop WM_LBUTTONDOWN msg sending and use focusing instead.
6479          [Fixes #339005 and #348209]
6480
6481 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
6482
6483          * PropertyGridView.cs: Hide the grid text box before adjusting it
6484          for the newly selected GridItem.
6485          [Fixes #338999]
6486
6487 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
6488
6489         * Form.cs: Give MDI children the opportunity to cancel the parent form
6490         attempting to close.  Ensure that all [Form]Clos[ing,ed] events get called
6491         properly for both the parent and child.
6492         * Application.cs: Signature of internal method changed, pass the previous
6493         default of false.
6494         [Fixes bug #354286]
6495
6496 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
6497
6498         * PropertyGridView.cs: Set the property value only if it has changed.
6499         [Fixes bug #338997]
6500
6501 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
6502
6503         * MenuAPI.cs: Windows sends us MOUSEMOVE messages when any key is pressed.
6504         If the mouse hasn't actually moved, ignore these messages so the currently
6505         highlighted menuitem isn't reset to the one under the mouse.
6506         [Fixes bug #333668]
6507
6508 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
6509
6510         * PropertyGridView.cs: When the property changes Invalidate the GridItem
6511         in order for the properties with UITypeEditor.GetPaintValueSupported == true
6512         to reflect the change visually.
6513         [Fixes bug #338998]
6514
6515 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
6516
6517         * ButtonBase.cs: Add LineLimit to 1.1 button drawing, and TextBoxControl
6518         to 2.0 button drawing.
6519         * ThemeWin32Classic.cs: Ensure that the rectangle we are using to draw 
6520         the button text is tall enough for one line.  LineLimit says it will
6521         always draw at least one line, but it is a lie.
6522         [Fixes bug #324941]
6523
6524 2008-01-17  Atsushi Enomoto  <atsushi@ximian.com>
6525
6526         * XplatUIStructs.cs, X11Keyboard.cs :
6527           added some more VK_* keys to be handled.
6528
6529 2008-01-16  Andreia Gaita <avidigal@novell.com>
6530
6531         * Control.cs: Check if there is a container before setting or getting
6532         the validation flag.
6533
6534 2008-01-16  Andreia Gaita <avidigal@novell.com>
6535
6536         * ContainerControl.cs: Add flag to track if a control cancels validation, 
6537         so we don't fire click events.
6538
6539         * Control.cs: 
6540         - (HandleClick) Check if validation was cancelled before  firing the click
6541         events (doubleclicks are fired, but not clicks)
6542         - (WmLButtonDown) Reset validation flag. The flag is normally reset on 
6543         ContainerControl.set_ActiveControl, but in the case of non-selectable
6544         controls, like a Label, activecontrol is not set. 
6545
6546         * ButtonBase.cs: Only fire clicks if validation passes.
6547         
6548         Fixes #353310
6549
6550 2008-01-16  Geoff Norton  <gnorton@novell.com>
6551
6552         * XplatUICarbon.cs: Implement GetAutoScaleSize to fix Reflector on
6553         trunk
6554
6555 2008-01-16  Jonathan Pobst  <monkey@jpobst.com>
6556
6557         * FolderBrowserDialog.cs: If we cannot interpret the user's requested
6558         SelectedPath, just display the default dialog instead of crashing.
6559         [Fixes bug #348989]
6560
6561 2008-01-16  Geoff Norton  <gnorton@novell.com>
6562
6563         * XplatUICarbon.cs:  Flicker be gone!  Generate our messages in
6564         AddExpose instead of trusting apples compositing manager which doesn't
6565         work for our use case.  Remove some dead code causing warnings and 
6566         redecorate some other code to prevent warnings.
6567
6568 2008-01-16  Geoff Norton  <gnorton@novell.com>
6569
6570         * XplatUICarbon.cs:  Avoid some unecessary invalidation calls when
6571         carbon signals us to redraw.  Fixes another portion of the flickering bug
6572
6573 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
6574
6575         * Form.cs: Prevent the MdiParent property to be set when value is the same
6576         as value already set. Fixes bug #328019.
6577
6578 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
6579
6580         * Form.cs: Don't set mdi_parent as null when mdi window close is prevented, 
6581         it prevents NRE when closing mdi child windows. Fixes bug #325211.
6582
6583 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
6584
6585         * InternalWindowManager.cs: Invalidade close button after mouse up when 
6586         mdi form is prevented to close.
6587
6588 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
6589
6590         * MdiClient.cs: Fix the minimum bounds on child window sizes when cascade,
6591         thanks to Andy Hume. Fixes bug #325433.
6592
6593 2008-01-16  Andreia Gaita <avidigal@novell.com>
6594
6595         * LinkLabel.cs: Reset focused_index when resellecting the control.
6596         Fixes #323190
6597
6598 2008-01-15  Geoff Norton  <gnorton@novell.com>
6599
6600         * XplatUICarbon.cs:  Rework Grab/Ungrab handling to send some needed 
6601         messages.
6602
6603 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
6604
6605         * Form.cs: Change 2 more AutoScaleBaseSize calculation to round instead
6606         of truncate.
6607
6608 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
6609
6610         * ContainerControl.cs: Setting AutoScaleMode to anything should set
6611         Form.AutoScale to false.
6612         * Form.cs: Setting AutoScale to true should set AutoScaleMode to None.
6613         AutoScaleBaseSize should be changed on Font change unless it has been
6614         explicitly set.
6615         [Fixes bug #353827]
6616
6617 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
6618
6619         * MenuAPI.cs: On instance of MenuTracker check if source control is
6620         ToolStripOverflow and use properly method to find form.
6621         [Fixes bug #338511]
6622
6623 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
6624
6625         [Fixes bug #323241 Transparent toolbar support]
6626
6627         * ToolBar.cs: Define ToolBarStyles.TBSTYLE_FLAT in CreateParams when toolbar
6628         is flat.
6629
6630         * Control.cs: Paint background as transparent in case of TBSTYLE_FLAT is
6631         defined in control style to mimic win32 behavior.
6632
6633         * ThemeWin32Classic.cs: Don't paint background for flat apparence toolbar, 
6634         it will be transparent.
6635
6636 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
6637
6638         * XplatUIStructs.cs: Implement ToolBarStyles to use in Style property of
6639         CreateParams for ToolBar controls.
6640
6641 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
6642
6643         * Form.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs: Forms with
6644         FixedToolWindow, SizeableToolWindow, or None for border styles have
6645         different minimum sizes than regular forms.  Implemented to fix
6646         regression in PDN with toolbox being too wide.
6647
6648 2008-01-14  Andreia Gaita <avidigal@novell.com>
6649
6650         * HtmlElementCollection.cs: Implemented
6651
6652         * HtmlElement.cs: Implemented:
6653           - All
6654           - InnerHtml
6655           - InnerText
6656           - Id
6657           - Name
6658           - FirstChild
6659
6660         * HtmlDocument.cs: Implemented GetElementsByTagName.
6661
6662 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
6663
6664         * Screen.cs: Stub BitsPerPixel to always return 32.
6665
6666 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
6667
6668         * Form.cs: Implement RestoreBounds.
6669
6670 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
6671
6672         * RichTextBox.cs, ToolStrip.cs: Fix some typos pointed out by
6673         Sebastien and his fabulous magical problem-finding machine:
6674         Gendarme.  Also put a MonoTodo on AutoWordSelect since we don't
6675         respect the value set.
6676
6677 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
6678
6679         * Form.cs: In WmWindowPosChanged call base.WndProc including when state is
6680         minimized. Fixes bug #325122 for Win32. Thanks  Srikanth Madikeri.
6681
6682 2008-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6683
6684         * X11Dnd.cs: Since we don't propagate the WM_LBUTTONUP/WM_RBUTTONUP
6685         messages (to match .Net), we need to remove the capture ourselves.
6686
6687 2008-01-11  Jonathan Pobst  <monkey@jpobst.com>
6688
6689         * MenuAPI.cs: If we get an Alt-F4, release our capture so Windows
6690         will process the message and close our window.
6691         [Fixes bug #324328]
6692
6693 2008-01-10  Geoff Norton  <gnorton@novell.com>
6694
6695         * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
6696         tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
6697         window manager.
6698
6699 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
6700
6701         * Form.cs: Enforce the Form minimum size in SetBoundsCore.  Fixed
6702         failing test.
6703
6704 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
6705
6706         * XplatUIX11.cs: Set a minimum window size and enforce it.  Even though
6707         Linux doesn't care, having a minimum matches MS and keeps the window
6708         from becoming too small to use window decorations.
6709         [Fixes bug #338996]
6710
6711 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
6712
6713         * ThemeWin32Classic.cs: Tie CheckBox/RadioButton focus rectangles to
6714         ShowFocusCues.  Make focus rectangles fit the text instead of the whole
6715         control.  [Fixes bug #325419]
6716
6717 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
6718
6719         * ComboBox.cs: Guard against an NRE if the user open a new form from a
6720         SelectedIndexChanged event.  This closes the combobox dropdown, and we
6721         were trying to dispose it.  [Fixes bug #352830]
6722
6723 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
6724
6725         * Control.cs, Form.cs: Implement the necessary semantics for
6726         ShowFocusCues.  All paint code will need to check Control.ShowFocusCues
6727         to determine if a focus rectangle should be drawn.
6728         * PropertyGrid.cs: Fix property visibility to match override.
6729         * ThemeWin32Classic.cs: Use ShowFocusCues for Button.
6730
6731 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
6732
6733         * Application.cs: Use GetCommandLineArgs to calculate ExecutablePath.
6734         [Fixes bug #323552]
6735
6736 2008-01-09  Geoff Norton  <gnorton@novell.com>
6737         
6738         * XplatUICarbon.cs: Scroll windows in the correct direction.
6739
6740 2008-01-09  Geoff Norton  <gnorton@novell.com>
6741
6742         * XplatUICarbon.cs: Track all created utility windows so we can hide them
6743         when the app is deactivated or spaces is enabled.
6744
6745 2008-01-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6746
6747         * ListViewItem.cs: Cosmetic fix - When calculating layout for item, don't add an
6748         extra separation pixel for the label rect origin if SmallImageList is
6749         null, and thus we don't need that separation between icon and label
6750         rects.
6751         Patch by Ernesto Carrea.
6752         Fixes # 340195.
6753
6754 2008-01-08  Jonathan Pobst  <monkey@jpobst.com>
6755
6756         * StatusStrip.cs: Invalidate after completing a layout.  The base
6757         OnLayout does this, but we don't call the base.
6758         * ToolStripItem.cs: Revert the previous change to invalidate after
6759         the item moves.
6760         [Fixes bug #351341 better.]
6761
6762 2008-01-07  Geoff Norton  <gnorton@novell.com>
6763
6764         * XplatUICarbon.cs:  WM_DESTROY is a teardown of a single window
6765         not a notification to exit the application.  Listen for WM_QUIT
6766         instead.
6767
6768 2008-01-07  Andreia Gaita <avidigal@novell.com>
6769
6770         * HtmlDocument.cs: Fix case on GetElementById (interface changed)
6771
6772 2008-01-07  Jonathan Pobst  <monkey@jpobst.com>
6773
6774         * ToolStripItem.cs: If the bounds of an item changes, invalidate it
6775         so it can repaint at the correct location.
6776         [Fixes bug #351341]
6777
6778 2008-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6779
6780         * ListControl.cs: SelectedValue should return a null value if
6781         SelectedIndex is -1. Also, when setting it, it should throw an
6782         ArgumentNullException if the value is null, as well as taking
6783         into account the String.Empty value, instead of ignoring it (we have
6784         tests for that now).
6785         Fixes part of #324286.
6786
6787 2008-01-06  Jonathan Pobst  <monkey@jpobst.com>
6788
6789         * TextBoxBase.cs, TextControl.cs: Patch from Luke Page to ensure
6790         SelectionStart is updated after pressing enter.  Fixes bug #351918.
6791
6792 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
6793
6794         * TextControl.cs: Revert a piece r92316 that prevented the fix
6795         from working when there were multiple tags in the text box.
6796         Fixes bug #351881.
6797
6798 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
6799
6800         * TextControl.cs: Apply patch from Luke Page that prevents an
6801         NRE when determining the beginning of a paragraph.
6802         Fixes bug #351886.
6803
6804 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
6805
6806         * TextBoxBase.cs: Apply patch from Luke Page that ensures the
6807         caret gets moved with clicking away from a selected block of
6808         text.  Fixes bug #351885.
6809
6810 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
6811
6812         * TextControl.cs: Apply patch from Luke Page that takes line
6813         alignment into account for mouse selection, so that center and
6814         right aligned text can be selected.
6815         Fixes bug #351881.
6816
6817 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
6818
6819         * RichTextBox.cs: Apply patch from Luke Page that fixes some caret
6820         issues after loading an RTF file by using the correct line feeds.
6821         Fixes bug #351841.
6822
6823 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
6824
6825         * TextControl.cs: When deleting multiple line selections, we need
6826         to invalidate every line beginning at the first line of the selection.
6827         Patch from Luke Page fixes bug #351791.
6828
6829 2008-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6830
6831         * ListControl.cs: When getting a CurrencyManager.PositionChanged
6832         event, don't set SelectedIndex if the number of items is 1. This is
6833         because, for the first item, PositionChanged is fired _before_
6834         ItemChanged (the place where we actually populate the items), and
6835         leave us in a temporary invalid state (since items collection is
6836         empty).
6837         Fixes #349655.
6838
6839 2008-01-04  Geoff Norton  <gnorton@novell.com>
6840
6841         * XplatUICarbon.cs:  Create native toolwindows instead of
6842         the managed drawing ones.
6843
6844 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
6845
6846         * LineTag.cs: If the line doesn't have any characters, return
6847         0 for GetCharIndex.  Fixes an AOORE exception after certain
6848         caret movements.  Fixes bug #351683.  Patch by Luke Page.
6849
6850 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
6851
6852         * TextBoxBase.cs: Apply patch from Luke Page so when backspace
6853         is hit when there is selected text, only the selected text gets
6854         deleted, not the character in front of the selection as well.
6855         Fixes bug #351578.
6856
6857 2008-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6858
6859         * ComboBox.cs: When the values are displayed, calculate the
6860         ComboListBox scrollbar's LargeChange based on the visible area's
6861         height and  the actuall ItemHeight, instead of calculating it
6862         based on MaxDropItems value, since it's not used by our _current_ 
6863         2.0 profile.
6864         Fixes #332366.
6865
6866 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
6867
6868         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
6869         Patch from Luke Page that fixes issues with font colors and styles
6870         not showing up in a readonly RichTextBox.  Fixes bug #324354.
6871
6872 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
6873
6874         * Line.cs, RichTextBox.cs, TextControl.cs: Another awesome patch
6875         from Luke Page.  This one fixes bug #349926.
6876
6877 2007-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6878
6879         * CurrencyManager.cs: Actually fire the 2.0 ListChanged event when
6880         an item in the IBindingList source changes with
6881         ListChangedType.ItemAdded. Ignore for now firing the event for other
6882         changes, since we want to have tests for those cases as well.
6883
6884 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
6885
6886         * TextBoxBase.cs: Don't store a 1x1 Bitmap for every TextBox
6887         created.
6888
6889 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
6890
6891         * TextBoxTextRenderer.cs: Implement a cache for measuring each
6892         character.  This is effective because the typical usage of a
6893         TextBox is with a limited amount of fonts and characters, and
6894         the current implementation of TextBox measures everything one
6895         character at a time.  Another second or two speedup for bug #347238.
6896
6897 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
6898
6899         * Control.cs: Rewrite the Font getter to only query the parent's
6900         Font property once instead of twice.  Since this operation is
6901         recursive, the queries were growing exponentially as the control
6902         tree got deeper.  Another second or two speedup for bug #347238.
6903
6904 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
6905
6906         * Control.cs: Avoid setting a parent (and more importantly, updating
6907         the zorder of all its children) if the parent is already correct in
6908         WmShowWindow.  Decreases the startup time of the test case on bug
6909         #347238 from 35 seconds to 11 seconds.
6910
6911 2007-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6912
6913         * X11Dnd.cs: When the dnd operation has started and we are 
6914         in the dnd loop, don't dispatch either WM_LBUTTONUP nor WM_RBUTTONUP.
6915         This is done to match .Net, which doesn't send those messages after
6916         dnd operation was completed/cancelled.
6917         Fixes #349922.
6918
6919 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
6920
6921         * ToolStrip.cs: Previous change should be != null, not == null.
6922         Thanks Gert!
6923
6924 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
6925
6926         * ToolStrip.cs: Guard against an NRE after ItemClicked is called, the
6927         user may have moved the mouse off the current item during the event.
6928
6929 2007-12-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6930
6931         * ListView.cs: In ItemControl.ItemsMouseMove, try to avoid
6932         calling GetItemAt for every MouseMove event by also taking into
6933         account whether any mouse button is pressed (probably dragging); 
6934         if so, we can call GetItemAt, and if not, try to not call it 
6935         (GetItemAt can be quite expensive when used with a large number of items).
6936
6937 2007-12-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6938
6939         * ListView.cs: Implement -finally- support for dnd, by calling
6940         OnItemDrag as needed. Also, remove the dnd TODO, and add myself to the
6941         authors list ;-).
6942         * ListViewInsertionMark.cs: Implement NearestIndex method, by doing a
6943         simple calculation of distances for all the items in the owner
6944         listview.
6945
6946 2007-12-21  Geoff Norton  <gnorton@novell.com>
6947
6948         * XplatUICarbon.cs:  Ensure that we create WindowMapping handles
6949         for windows that are originally created as invisible.  Fixes missing
6950         main window in paint-mono.
6951
6952 2007-12-21  Geoff Norton  <gnorton@novell.com>
6953
6954         * XplatUICarbon.cs:  Register our D&D handler.  Register our custom
6955         subclass handler for com.novell.mwfview subclassing HIView.  Implement
6956         Pasteboard and Dnd methods.
6957
6958 2007-12-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6959
6960         * ListBox.cs: When we got focus, give focus to first item if there
6961         wasn't any pervious focused item. Also update navigation to depend on
6962         SelectedIndex rather than FocusedItem, just as .Net does.
6963         Fixes #349174.
6964
6965 2007-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6966
6967         * ListBox.cs: Both FindString and FindStringExact methods must do an
6968         case insensitive search, should allow the last valid index to be
6969         passed in the overload taking an initial index, and should also
6970         continue searching from the top back to the specified index when it
6971         reaches the bottom.
6972
6973 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
6974
6975         * TextControl.cs: Apply patch from Luke Page that fixes a scrolling
6976         redraw issue, and allows RichTextBox to draw colored text even while
6977         disabled or readonly.
6978
6979 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
6980
6981         * RichTextBox.cs, TextBoxBase.cs: Apply patch from Luke Page that
6982         disallows cut/paste in a readonly textbox, adds support for Shift-Insert,
6983         and doesn't grey text in a disabled RichTextBox.
6984
6985 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
6986
6987         * RichTextBox.cs: Apply patch from Luke Page that adds better support
6988         for many RTF commands: quad alignment, separate formatting for blocks
6989         inside groups, and ParDef support.  Makes the test case from bug #324589
6990         look much better.
6991
6992 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
6993
6994         * LineTag.cs: Fix an error in the new Draw method that caused
6995         a crash when rendering the document on bug #324589.
6996
6997 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
6998
6999         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs,
7000         TextControl.cs: Apply patch from Luke Page that adds support
7001         for URL links in RichTextBox.
7002         [Fixes enhancement #342516]
7003
7004 2007-12-18  Everaldo Canuto  <ecanuto@novell.com>
7005
7006         * MenuItem.cs: When cloning menuitem clone also name and tag properties for
7007         2.0 profile. Thanks Ernesto Carrea and Luke Page. Fixes bug #340289.
7008
7009 2007-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7010
7011         * ListBox.cs: When a key gets pressed, try to find a string
7012         if the key is a character or a digit.
7013         Fixes #343971.
7014
7015 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
7016
7017         * TableLayoutPanel.cs: Remove some unused variables.
7018
7019 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
7020
7021         * DateTimePicker.cs: Commit patch from Luke Page that ensures
7022         we don't end up at an invalid date when we click the up/down
7023         spinner to change the month or year.  Fixes bug #348682.
7024
7025 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
7026
7027         * Application.cs: Calling Exit in 2.0 should chain to the
7028         Exit (CancelEventArgs) version so it can be cancelled.
7029         * Form.cs: Create a flag to allow raising the Closing
7030         events to be skipped.  We raise them once in Application.Exit
7031         and don't want to raise them again when the Form is actually
7032         closed.  [Fixes bug #349073]
7033
7034 2007-12-16  Jonathan Pobst  <monkey@jpobst.com>
7035
7036         * ToolStripDropDown.cs: Guard against an NRE when there
7037         hasn't been a mainform set in the application context.
7038         [Fixes bug #349108]
7039
7040 2007-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7041
7042         * ListBox.cs: When SetBoundsCore gets called, besides
7043         calling UpdateScrollBars, update the value of
7044         last_visible_index, since we could need to show more items
7045         than before, and we need to let the paint routines know that.
7046         Fixes #344445.
7047
7048 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7049
7050         * ListView.cs: Add DesignerSerializationVisibility attribute to
7051         InsertionMark property.
7052         * ListViewItem.cs: Add same attribute to Position property.
7053
7054 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7055
7056         * ListViewItem.cs: .ctor (SerializationInfo, StreamingContext)
7057         is 2.0 only.
7058
7059 2007-12-14  Jonathan Pobst  <monkey@jpobst.com>
7060
7061         * ThemeWin32Classic.cs: Don't draw the background on a
7062         flat button if there is a background image.
7063         [Fixes bug #348649]
7064
7065 2007-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7066
7067         * ListBox.cs: If we remove the item currently selected,
7068         remove it not only from SelectedItems, but also
7069         resetting selected_index. Moreover, set focused_item to Items.Count - 1 if 
7070         the items count decreased and focused_item has bigger value than that.
7071
7072 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
7073
7074         * Control.cs: Perform our layout after we resize ourselves
7075         if we had to adjust our AutoSize.  Missed commit for bug
7076         #346246.
7077
7078 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
7079
7080         * TableLayoutPanel.cs: Override GetPreferredSizeCore so
7081         we can provide an implementation of AutoSize.
7082         [Fixes bug #346246]
7083
7084 2007-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7085
7086         * ListBox.cs: Add the internal overload Sort (bool paint),
7087         to indicate whether we actually need a paint or we will
7088         call Refresh ourselves. This way we don't request a paint
7089         _before_ having an updated and valid layout.
7090         Fixes #347233.
7091
7092 2007-12-12  Andreia Gaita <avidigal@novell.com>
7093
7094         * XPlatUIX11.cs: Send paint messages when updating a systray icon
7095         * NotifyIcon.cs: Invalidate the window before doing a systray change so it is
7096         properly invalidated. 
7097         Fixes #324237
7098
7099 2007-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7100
7101         * ListViewItem.cs: When using a .ctor taking a ListViewGroup,
7102         don't simply assign it to our internal group field, but instead 
7103         use our Group property, which should do all the neccessary work
7104         required to support groups. Fixes an issue reported to me (mail) by a 
7105         guy using this new feature.
7106
7107 2007-12-11  Jonathan Pobst  <monkey@jpobst.com>
7108
7109         * Control.cs: Use Scale instead of ScaleControl to ensure the
7110         whole hierarchy gets scaled.
7111         [Fixes bug #347282]
7112
7113 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
7114
7115         * DateTimePicker.cs: Don't set the internal MonthCalendar's
7116         Parent property.  Doing this causes the control to be hosted by
7117         the Form instead of being a popup window.
7118         [Fixes bug #347665]
7119
7120 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
7121
7122         * ToolStripItemCollection.cs: If we try to insert a ToolStripItem
7123         at an index higher than Count, just use Add instead of Insert.
7124         [Fixes bug #347669]
7125
7126 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
7127
7128         * ThemeWin32Classic.cs: Don't draw a PictureBox's background in
7129         DrawPictureBox, this is handled by Control.PaintBackground.
7130         [Fixes bug #347276]
7131
7132 2007-12-10  Everaldo Canuto  <ecanuto@novell.com>
7133
7134         * MenuAPI.cs: When process menu keys return true by default only if menu is
7135         active. Fixes bug #342892.
7136
7137 2007-12-09  Andreia Gaita <avidigal@novell.com>
7138
7139         * Control.cs: check if windows are actually mapped before
7140         trying to zorder. Fixes #342509, #346955
7141
7142 2007-12-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7143
7144         * ListView.cs:
7145         * ListViewInsertionMark.cs:
7146         * ThemeWin32Classic.cs: Implement the drawing side of the
7147         new 2.0 ListView.InsertionMark property.
7148
7149 2007-12-07  Jonathan Pobst  <monkey@jpobst.com>
7150
7151         * CurrencyManager.cs: Silence some debug spew.
7152
7153 2007-12-07  Geoff Norton  <gnorton@novell.com>
7154         
7155         * Hwnd.cs: Refactor GetClippingRectangles to suppose returning the
7156         masks for our children as well as siblings to avoid having to query
7157         Quartz for this information.
7158         * XplatUICarbon.cs: Implement a delegate based system to pass
7159         information to System.Drawing.  Implement Async methods.  Remove
7160         the hack for the resize thumb and imlpement a transparent Grow Box.
7161         Rework the messaging system to proplery create window's and messages,
7162         fixes TabControl.
7163
7164 2007-12-06  Andreia Gaita <avidigal@novell.com>
7165
7166         * X11Keyboard.cs: Use Xutf8LookupString to support international 
7167         characters under alternate codepages. Patch from #340878
7168
7169 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7170
7171         * ListView.cs: When doing layout computations, set position in the
7172         ListView instances (we cache the position just as .Net does).
7173         * ListViewItem.cs: New internal setter method for Position. Also set
7174         position field as also available in 1.1, since we are going to use it
7175         now in the common case.
7176
7177 2007-12-06  Andreia Gaita <avidigal@novell.com>
7178
7179         * Control.cs: When removing controls, get the actual container
7180         to notify about active control changes. Fixes 341314.
7181
7182 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7183
7184         * ListViewItem.cs: Forgot to add Font to our serialization stuff.
7185
7186 2007-12-05  Andreia Gaita <avidigal@novell.com>
7187
7188         * Control.cs: When updating the zorder, ignore windows that are not
7189         mapped. Fixes #342509
7190
7191 2007-12-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7192
7193         * ListViewItem.cs: Actually implement serialization on this class.
7194
7195 2007-12-05  Gert Driesen  <drieseng@users.sourceforge.net>
7196
7197         * LinkLabel.cs: Fixed paramname of ArgumentNullException in ctor of
7198         LinkCollection. Spaces to tabs, and removed extra tabs.
7199
7200 2007-12-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7201
7202         * XplatUIX11.cs: Make toolwindows' decorations show up without causing any
7203           tests to fail (hopefully).
7204
7205 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
7206
7207         * ToolStripDropDownMenu.cs: Fill in AffectedBounds when drawing
7208         the image margin so custom renderers can correctly place it.
7209
7210 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
7211
7212         * StatusStrip.cs: Fill in AffectedBounds when drawing the grip
7213         so custom renderers can correctly place it.
7214
7215 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
7216
7217         * Application.cs: Let WM_CHAR messages flow through to controls
7218         hosted in Strips.  [Fixes bug #343972]
7219
7220 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
7221
7222         * ToolStripManager.cs: Guard against an NRE I ran into.
7223
7224 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
7225
7226         * LinkLabel.cs: Apply patch from George to fix bug 344012.  If
7227         a Link is manually added to the Links collection, we need to set
7228         its owner, so it can invalidate properly.
7229         [Fixes bug #344012]
7230
7231 2007-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7232
7233         * ListView.cs: When changing ListViewItem.Position (which calls
7234         ListView.ChangeItemLocation), invalidate not only the area
7235         corresponding to the main item, but also to the area occupied
7236         by the items being moved.
7237
7238 2007-11-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7239
7240         * ListView.cs: When changing the position of a given item,
7241         don't use item bounds, but item areas (which includes the item spacing
7242         between them). Also, use first/last position if the requested
7243         position is outside bounds (as .Net does). Invalidate the previous and
7244         new bounds. Finally, in ItemControl.ItemsMouseDown use the actual item
7245         in a specific position, instead of directly accessing Items collection
7246         (this is done to get the right item - remember an Item can have a
7247         different position in the grid than in the Items collection).
7248
7249 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
7250
7251         * MessageBox.cs: Calculate text area instead of just top left, this rect 
7252         area will be used in DrawString. Fixes bug #343364.
7253
7254 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
7255
7256         * MessageBox.cs: Calculate max amount for text area width, it must be 60% of
7257         screen width. Partially fixes bug #343364.
7258
7259 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
7260
7261         * NotifyIcon.cs: Remove duplicated code before call realculate and put this
7262         code inside recalculate, it makes code more simple.
7263
7264 2007-11-22  Everaldo Canuto  <ecanuto@novell.com>
7265
7266         * NotifyIcon.cs: When recalculate icon verify if icon is active to decide
7267         between update or add icon. Fixes bug #324344.
7268
7269 2007-11-21  Andreia Gaita <avidigal@novell.com>
7270
7271         * XPlatUIX11.cs: Do not treat tool windows as if they have no 
7272         window manager, since that stretches the drawing area to include
7273         the window decorations, and they get hidden. Reverts r84444 and fixes
7274         #335849 and #342790 (mdi and pdn3 regression)
7275
7276 2007-11-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7277
7278         * ListView.cs: When setting focused item, try to give focus to the
7279         previous one _only_ if the previous one remains valid. 
7280         Fixes #342504.
7281
7282 2007-11-20  Jonathan Pobst  <monkey@jpobst.com>
7283
7284         * Application.cs: Revert r89650, as it broke a common case to fix
7285         an obscure case.  Fixes bug #342606.
7286
7287 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
7288
7289         * ThemeWin32Classic.cs: Fix extra space on end of tooltip.
7290
7291 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
7292
7293         * ThemeWin32Classic.cs: Fix tooltip text align removing horizontal 
7294         alignment. [Fixes #324228]
7295
7296 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
7297
7298         * ToolStrip.cs: Handle flow layout in GetPreferredSize to fix PDN3.
7299         [Fixes bug #342123]
7300
7301 2007-11-19  Everaldo Canuto  <ecanuto@novell.com>
7302
7303         * Form.cs: Check for empty Text before assign to cp.Caption in CreateParams
7304         it prevent problems when empty captions. [Fixes #342141]
7305
7306 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
7307
7308         * Label.cs: Use Size instead of None.  Fixes bug #342077.
7309
7310 2007-11-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7311
7312         * ListViewItem.cs: Implement 2.0 FindNearestItem method.
7313
7314 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
7315
7316         * MenuStrip.cs: Guard against a NRE when a MdiWindowItem is set
7317         but there isn't a MdiContainer.
7318         [Fixes bug #342358]
7319
7320 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
7321
7322         * TextControl.cs: Don't recalculate document if the recalc_start and
7323         recalc_end hasn't changed.
7324         [Fixes bug #342505]
7325
7326 2007-11-17  Gert Driesen  <drieseng@users.sourceforge.net>
7327
7328         * DataGridViewTextBoxCell.cs: Removed CWL.
7329
7330 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7331
7332         * ListView.cs: Implement 2.0 SearchForVirtualItem event support.
7333
7334 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
7335
7336         * TextControl.cs: Missed some code for bug 341534 to trigger a
7337         recalculation when the font changes.
7338
7339 2007-11-16  Andreia Gaita <avidigal@novell.com>
7340
7341         * Control.cs: When updating the zorder, check if the child to update is
7342         the same control that is set to always be on top (i.e., scrollbars), and 
7343         just put it on top directly. Fixes BadMatch error on pdn3
7344
7345 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7346
7347         * ListView.cs: Throw the needed exceptions for FindNearestItem.
7348
7349 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
7350
7351         * Control.cs: Don't perform a new layout when a label changes its text,
7352         cause label handles its own autosizing.
7353         [Fixes bug #342077]
7354
7355 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7356
7357         * ListView.cs: Implement 2.0 FindNearestItem methods.
7358
7359 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
7360
7361         * ToolStripPanel.cs: Make Join at least add the control to the panel,
7362         even if the rest of what Join does isn't supported.  Add some more
7363         support for vertical toolbars.
7364         * ToolStripPanelRow.cs: Add some more support for vertical toolbars.
7365         [Fixes the application breaking parts of bug #341998]
7366
7367 2007-11-15  Jonathan Pobst <monkey@jpobst.com>
7368
7369         * ToolStripItem.cs: When determining if we have a check/image margin,
7370         we need to look at ShowCheckMargin as well as ShowImageMargin.
7371
7372 2007-11-15  Geoff Norton  <gnorton@novell.com>
7373
7374         * XplatUIOSX.cs: Rename to...
7375         * XplatUICarbon.cs: and refactor all event handling out to the new event handling
7376         system in System.Windows.Forms.CarbonInternal.  Lots of code cleanup as well.
7377
7378 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
7379
7380         * KeysConverter.cs: The default values should be an array of Keys, not
7381         strings.  Also, the array has more values for 2.0.
7382         [Fixes bug #341851]
7383
7384 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
7385
7386         * Application.cs: Change ExecutablePath to use 
7387         Process.GetCurrentProcess ().MainModule.FileName instead of Assembly.GetEntryAssembly.
7388         [Fixes bug #323552]
7389
7390 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
7391
7392         * LineTag.cs: Don't attempt to draw '\r', treat it like it doesn't exist.
7393         When measureing CR or LF, use /u000D instead of /u0013. (Hex, not decimal.)
7394         * TextControl.cs: Fix a case in GetLineEnding where a \n before a \r would
7395         be ignored.  Create a new GetLineEnding that can specify which types of
7396         line endings to look for.  On Insert, only create new lines for \n and \r\n.
7397         [Fixes bug #324274]
7398
7399 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
7400
7401         * TextBoxBase.cs: As we loop through each line changing the font, tell
7402         the document that the line needs to be recalculated.  Fixes bug #341534.
7403
7404 2007-11-13  Jonathan Pobst  <monkey@jpobst.com>
7405         [Another round of refactoring]
7406         * Line.cs: Add DeleteCharacters.
7407         * LineTag.cs: Add Delete.
7408         * TextBoxBase.cs: Update to use new methods.
7409         * TextControl.cs: Refactor the Delete* methods.
7410
7411 2007-11-13  Everaldo Canuto  <ecanuto@novell.com>
7412
7413         * Win32DnD.cs: Implement Win32 Drop files, thank you Srikanth Madikeri for
7414         the patch. [Fixes #324856]
7415
7416 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7417
7418         * ListView.cs:
7419         * ListViewItem.cs: Add an initial implementation of
7420         2.0 ListViewItem.Position getter.
7421
7422 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7423
7424         * ListView.cs: Add a reordered_items_indices array, to allow us
7425         to have a different sorting than that of Items (the sorting in Items
7426         could not match the actual sorting in screen). This is needed to
7427         implement a pair of 2.0 features.
7428         * ListViewItem.cs: Add a DisplayIndex property to keep track of the
7429         actual position in the ListView grid, since it could have a position
7430         different than its Index (position in ListViewItemCollection). 
7431
7432 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
7433
7434         * Label.cs: Add StringFormatFlags.LineLimit.  This tells DrawString to
7435         not draw partial lines.
7436         * LinkLabel.cs: Change FormatFlags setter from = to |= so that the
7437         LineLimit flag from the base is preserved.
7438         Fixes the windows part of bug #338965.
7439
7440 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
7441
7442         * TextBoxBase.cs: Move handling of the enter key from KEYDOWN to CHAR
7443         so that it can be canceled in KeyPress.
7444         Fixes bug #340078.
7445
7446 2007-11-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7447
7448         * ListView.cs: In ItemControl, reset mouse-handling related
7449         fields even if we dont' have items (we still should reset them when
7450         we had items but then called Items.Clear). Partially based in a patch
7451         by George Giolfan.
7452         Fixes #338399.
7453
7454 2007-11-08  Gert Driesen  <drieseng@users.sourceforge.net>
7455
7456         * Application.cs: In ProductVersion first try AssemblyFileVersion
7457         before falling back to assembly version. Fixes bug #339787.
7458
7459 2007-11-08  Andreia Gaita <avidigal@novell.com>
7460
7461         * HtmlElement.cs: Implement InnerText setter.
7462         * WebBrowserBase.cs: Implement Navigated event support.
7463         Add flag to track when the browser "document" is ready to be retrieved.
7464         * WebBrowser.cs: Implement CanGoBack, CanGoForward, Title, Url.
7465         Make sure browser document is ready before retrieving it.
7466         Clean up cached objects (document) when moving to a new page through
7467         any of the navigation methods.
7468         Use the new Mono.WebBrowser.INavigation interface to control navigation.
7469         Implement OnNavigated event.
7470
7471 2007-11-07  Jonathan Pobst  <monkey@jpobst.com>
7472
7473         * ThemeWin32Classic.cs: Don't draw the background in DrawLabel or
7474         DrawLinkLabel, this is handled by OnPaintBackground.
7475         Fixes bug #339565, part II.
7476
7477 2007-11-07  Andreia Gaita <avidigal@novell.com>
7478
7479         * Control.cs: Revert r88915. Selecting text on a textbox depends on
7480         getting a Select call on click, so this call needs to be here for now.
7481         Unfixes #325809
7482
7483 2007-11-07  Geoff Norton  <gnorton@novell.com>
7484
7485         * OSXStructs.cs: Add the kEventClassApplication constants.
7486         * XplatUIOSX.cs: Send a WM_LBUTTONDOWN to the Grab window when the 
7487         application is deactivated otherwise Menu overlays linger on top of
7488         other application windows.
7489
7490 2007-11-07  Geoff Norton  <gnorton@novell.com>
7491
7492         * XplatUIOSX.cs: Dont throw an exception on OverrideCursor as we
7493         dont support cursors yet anyways.  This allows Reflector to run.
7494
7495 2007-11-07  Geoff Norton  <gnorton@novell.com>
7496
7497         * XplatUIOSX.cs: Implement DragSize.
7498
7499 2007-11-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7500
7501         * ListView.cs: When we receive a WM_LBUTTONDOWN message in
7502         ItemControl, request the focus, as .Net does. This is needed after 
7503         Control does not request focus anymore when it receives a
7504         WM_LBUTTONDOWN.
7505
7506 2007-11-06  Jonathan Pobst  <monkey@Jpobst.com>
7507
7508         * Label.cs: Make DrawImage internal so it can be called from Theme code.
7509         Remove the DrawImage call from OnPaint.
7510         * LinkLabel.cs: Remove the DrawImage call from OnPaint.
7511         * ThemeWin32Classic.cs: Call DrawImage after we paint the background,
7512         but before we draw the text for DrawLabel and DrawLinkLabel.
7513         Fixes bug #339565.
7514
7515 2007-11-05  Andreia Gaita <avidigal@novell.com>
7516
7517         * Control.cs: Remove select call on click. Fixes #325809
7518
7519 2007-11-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7520
7521         * ListViewItem.cs: Add 2.0 Position property getter.
7522
7523 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7524
7525         * ListView.cs: Add 2.0 BackgroundImageTiled property.
7526         Also, to make it work properly, change item's BackColor and
7527         BackgroundImageLayout as needed.
7528         * ThemeWin32Classic.cs: Don't fill any background rectangle 
7529         in ListView.ItemControl when drawing items; just let the Control
7530         base implementation fill it.
7531
7532 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7533
7534         * ListViewGroup.cs: Adda TypeConverter attribute for this class,
7535         as well as adding a custom 'dummy' Converter, as .net does.
7536
7537 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7538
7539         * PropertyGridView.cs: When clicking drop-down button,
7540         select an index in the listbox only if our standard values collection 
7541         has one or more items.
7542
7543 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7544
7545         * ListViewItem.cs: Add a DefaultValue attribute to 2.0 IndentCount
7546         property.
7547
7548 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
7549
7550         * PropertyGrid.cs: In PropertySort, update the toolbar buttons even if
7551         the value is not changed. This ensure a pushed button remains in that
7552         state when clicked again. When switching the value of PropertySort
7553         between Categorized and CategorizedAlphabetical, do not update the
7554         grid items and do not fire a PropertyChangedEvent. When clicking the
7555         sorting buttons, do not modify the PropertySort value when switching
7556         between Categorized and CategorizedAlphabetical but only update the
7557         button state.
7558
7559 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
7560
7561         * Label.cs: Make AutoEllipsis internal on 1.0 profile. Code
7562         formatting.
7563         * PropertyGrid.cs: Also put Categorized button in pushed state when
7564         PropertySort is CategorizedAlphabetical. Set AutoEllipsis to true
7565         for help description label.
7566
7567 2007-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7568
7569         * ListView.cs: When calculating the biggest item for a given column,
7570         take into account 2.0 LIstViewItem.IndentCount, since it directly affects
7571         the item's width.
7572
7573 2007-11-03  Gert Driesen  <drieseng@users.sourceforge.net>
7574
7575         * PropertyGrid.cs: Fixed default value for PropertySort. Allow invalid
7576         value for PropertySort on 1.0 profile. PropertySortChanged event
7577         should only be fired on 2.0 profile. Fixed NullReferenceException
7578         in UpdateSortLayout when PropertyGrid contains no items.
7579
7580 2007-11-02  Jonathan Pobst  <monkey@jpobst.com>
7581
7582         * MessageBox.cs: Patch from George to implement MessageBoxDefaultButton.
7583         [Fixes bug #338554]
7584
7585 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7586
7587         * ListViewItem.cs: Implement 2.0 IndentCount property.
7588
7589 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7590
7591         * X11Dnd.cs: When sending status in a dnd operation, compare current
7592         effect with the 'allowed' field instead of 'drag_data.Allowed', since
7593         the later is only created when a Winforms application is both the
7594         source and the target, but not when we are the target only.
7595         Fixes part of #324251.
7596
7597 2007-11-01  Geoff Norton  <gnorton@novell.com>
7598
7599         * XplatUI*.cs: Add GetPreviousWindow utility method to return windows in
7600         order of Z-Order.
7601         * Hwnd.cs: Add initial implementation of GetClippingRectangles to clip sibling 
7602         children out of the drawing view on mac.
7603         * XplatUIOSX.cs: Code cleanup.  Handle more window grab cases.  Fix SetParent
7604         to handle the orphan and invisible case (1/2 fixes TabStrip drawing in FormsTest)
7605         
7606 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
7607
7608         * ToolStrip.cs: Don't process MouseUp for a ToolStripControlHost, clicking
7609         on the non-hosted-control part of it shouldn't do anything.
7610         Fixes part of bug #327498.
7611
7612 2007-11-01  Andreia Gaita <avidigal@novell.com>
7613
7614         * WebBrowserBase.cs: revert previous change, resize can be called anytime
7615
7616 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
7617
7618         * Application.cs: When a toolstrip has the keyboard input loop, let messages
7619         it does not use flow through to controls that are hosted in menus.
7620         Same with mouse clicks.
7621         * Form.cs: Don't close all menus on click if the click is on a
7622         control hosted in a menu.
7623         Fixes part of bug #327498, and part of bug #325969.
7624
7625 2007-10-31  Andreia Gaita <avidigal@novell.com>
7626
7627         * WebBrowserBase.cs: Only call resize on gluezilla when it is active
7628
7629 2007-10-31  Jonathan Pobst  <monkey@jpobst.com>
7630
7631         * TextBoxBase.cs: Use int.MaxValue for MaxLength instead of magic number.
7632         Addresses an issue raised in bug #336218.
7633
7634 2007-10-30  Jonathan Pobst  <monkey@jpobst.com>
7635
7636         * Form.cs: Patch from George that moves the conversion of ClientSize->Size
7637         for PreferredSize from OnLayout to PreferredSize.  Fixes bug #325242.
7638
7639 2007-10-30  Andreia Gaita <avidigal@novell.com>
7640
7641         * ContainerControl.cs: Check if the active control is a
7642         child of a removed control and update active_control accordingly.
7643         Fixes #329718
7644
7645 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
7646
7647         * DateTimePicker.cs: Throw ArgEx if the Value is set outside the MinDate
7648         or the MaxDate.  Fixed bug #337693.
7649
7650 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
7651
7652         * XplatUIWin32.cs: Always call SetWindowPos with SWP_FRAMECHANGED flag
7653         after calling SetWindowLong for a form, to force an immediate NC refresh.
7654         Fixes first part of bug #325150.
7655
7656 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
7657
7658         * ComboBox.cs: Don't try to resize the listbox when we are DropDownStyle
7659         simple.  Fixes the last part of bug #322668.
7660
7661 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
7662
7663         * MessageBox.cs: If the owner is TopMost, then the MessageBox form
7664         needs to be TopMost as well, or else the MessageBox is under the form.
7665         Patch by George fixes bug #325300.
7666
7667 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7668
7669         * X11Dnd.cs: When starting a new drag operation, reset the static
7670         'dropped' field to false (previously the implementation didn't reset
7671         it and got confused after the first drag).
7672         Fixes #325071.
7673
7674 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7675
7676         * PropertyGrid.cs: When PropertySort changes, re-organize the grid
7677         items instead of re-creating them all. For this purpose we now cache
7678         both CategoryGridEntry items and the GridEntries for the main object's
7679         properties.
7680         * GridItem.cs: Make SetParent method abstract.
7681         * GridEntry.cs: Override the SetParent method (already there, but now
7682         we override it).
7683         Fixes #324866.
7684
7685 2007-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7686
7687         * PropertyGridView.cs: Set the plus/minus bounds of a grid item
7688         depending on its depth (as .Net does). Update the needed values in
7689         MouseDown handler. Also draw the plus/minus rect after the label,
7690         so we don't draw on top of it.
7691
7692 2007-10-24  Everaldo Canuto  <ecanuto@novell.com>
7693
7694         * MenuAPI.cs: Return true as default in ProcessKeys to prevent keys to be
7695         processed by forms or controls when menu is active. [Fixes #333548]
7696
7697 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
7698
7699         * ToolStripItem.cs: Don't focus a ToolStripControlHost on Select of the
7700         parent doesn't have focus.  This was causing ToolStripTextBoxes to take
7701         focus on mouse over.
7702
7703 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
7704
7705         * TextControl.cs: Code cleaning, simplifying.
7706
7707 2007-10-24  Geoff Norton  <gnorton@novell.com>
7708
7709         * XplatUIOSX.cs: Route mouse events to the grab hwnd on mouse down as well.
7710         * XplatUIStructs.cs: Fix the ToString method of POINT and MSG.
7711
7712 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
7713
7714         * TextBoxBase.cs: If the user sets maxlength to 0, it should mean
7715         the cap is maxvalue, not actually 0.  [Fixes bug #336218]
7716
7717 2007-10-24  Andreia Gaita <avidigal@novell.com>
7718
7719         * SendKeys.cs: apply jpobst's patch to bug #332409
7720
7721 2007-10-23  Andreia Gaita <avidigal@novell.com>
7722
7723         * TextBoxTextRenderer.cs: Lower bounds max size to Int16.MaxValue, the 
7724         Windows 2000 gdi DrawText call doesn't draw if it's higher than that
7725         for some reason
7726
7727 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7728
7729         * PropertyGridView.cs: If a property has an UIEditor available,
7730         make the drop-down/editor button available only if the property
7731         is _not_ read only.
7732
7733 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7734
7735         * PropertyGridView.cs: Don't make the grid item textbox 
7736         editable when a drop-down control is available, but 
7737         CanConvertFrom (typeof (string)) is false or GetStandardValuesExclusive () is
7738         true. The same bur the color of the grid item value's label.
7739
7740 2007-10-22  Geoff Norton  <gnorton@novell.com>
7741
7742         * OSXStructs.cs: Add the needed constants for keyboard modifiers.
7743         * OSXKeyboard.cs: Initial support for keyboard and limited modifiers.
7744         * XplatUIOSX.cs: New reversible frame support.  Wire in the new keyboard
7745         driver.  Padd the bottom of all real windows so the resize thumb doesn't
7746         obscure scroll/status bars.
7747
7748 2007-10-22  Jonathan Pobst  <monkey@jpobst.com>
7749
7750         * WindowsFormsSection.cs: Implement.
7751
7752 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
7753
7754         * MdiClient.cs: Maximize new active mdi child when a maximized child is 
7755         closed see #325434 patch.
7756
7757 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
7758
7759         * MdiClient.cs: Fix remaining issues from layout vertical and horizontal,
7760         see #325434 patch.
7761
7762 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7763
7764         * PropertyGridView.cs: When showing the textbox for a grid item,
7765         have two local variables to store the read-only and non-editable
7766         status of a grid item (we were previously using just one variable
7767         to do this, when actually they are slightly different).
7768         Fixes part of #325023.
7769
7770 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7771
7772         * PropertyGridView.cs: When showing a drop-down list, try to get the
7773         values using TypeConverter.ConvertTo (to convert to a string). Fixes
7774         part of #325023.
7775
7776 2007-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7777
7778         * PropertyGrid.cs: When updating a property and populating sub grid
7779         items, remove the previous ones, and invalidate the specific area.
7780         * PropertyGridView.cs: A new InvalidateBelowGridItem to invalidate the
7781         area behind a grid item.
7782         * GridItemCollection.cs: Add an internal Clear method, to allow us to
7783         clean the items if needed (specially for controls implementing 
7784         ICustomTypeDescriptor and returning a variable number of properties).
7785         Fixes #324865.
7786
7787 2007-10-19  Jonathan Pobst  <monkey@jpobst.com>
7788
7789         * TextControl.cs: Clean up and document the Insert function.
7790
7791 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
7792
7793         * TextControl.cs: Make sure we know our start point for updating the view
7794         in ReplaceSelection.  Fixes an issue where pasting multiline text wouldn't
7795         update the view.
7796
7797 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
7798
7799         * ListView: Couple of corcompare fixes.
7800
7801 2007-10-17  Geoff Norton  <gnorton@novell.com>
7802
7803         * XplatUIOSX.cs: Implement support for window icons in the dock.  Set
7804         the title caption of real window.
7805
7806 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
7807
7808         * ErrorProvider.cs: Add the error provider's internal window to a 
7809         containercontrol when the parent changes.  [Fixes bug #329714]
7810
7811 2007-10-17  Geoff Norton  <gnorton@novell.com>
7812
7813         * XplatUIOSX.cs: Implement ScrollWindow.  Properly create TOOLWINDOWs.
7814         When we make a new window; restore the old active window - fixes dialogs.
7815
7816 2007-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7817
7818         * PropertyGridView.cs: Look for RefreshPropertiesAttribute
7819         when modifying a property, and if found then invalidate as
7820         requested.
7821         Fixes part of #324865.
7822
7823 2007-10-17  Geoff Norton  <gnorton@novell.com>
7824
7825         * XplatUIOSX.cs: Re-enable the native driver on the Mac.  This is still
7826         highly experimental.  Fixed coordinate translation.  Fixed window locations.
7827         Initial support for clipping. Implemented NC areas and menus.  Support for
7828         launching from command line from Will Johansson (wjohansson@atacomm.com).
7829         * OSXStructs.cs: Add ProcessSerialNumer (Patch from Will Johansson
7830         wjohansson@atacomm.com)
7831         * Hwnd.cs: Add some internal structures for tracking Mac cursors.
7832         Hwnds now track the existence of all of their children for Mac clipping.
7833     * XplatUI.cs: Re-enabled the native driver on the Mac.
7834
7835 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
7836
7837         * Line.cs: Move the InsertString function to here.
7838         * TextControl.cs: Cleanup some duplicate code, move some InsertString
7839         functionality to Line.
7840
7841 2007-10-17  Geoff Norton  <gnorton@novell.com>
7842
7843         * ComboBox.cs: Destroy the popup after hiding it.  Fixes #322582
7844
7845 2007-10-16  Gert Driesen  <drieseng@users.sourceforge.net>
7846
7847         * ButtonBase.cs: Fixed IsDefault to use assigned value instead of
7848         always setting value to true.
7849         * Form.cs: When changing AcceptButton, notify new and original button.
7850
7851 2007-10-16  Jonathan Pobst  <monkey@jpobst.com>
7852
7853         * Form.cs: Guard against an NRE when the user sets the AcceptButton to
7854         a custom control that implements IButtonControl instead of an actual
7855         button.  [Fixes bug #334244]
7856
7857 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
7858
7859         * Form.cs: Change SelectActiveControl to internal, we need to call it in
7860         MdiWindowManager.
7861         
7862         * MdiWindowManager.cs: In RaiseActivated call SelectActiveControl to select
7863         active control when activate a new mdi window.
7864         
7865         [Fixes bug #330495]
7866
7867 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
7868
7869         * ComboBox.cs: Dont implicit add listbox_ctrl on OnHandleCreated because it
7870         is already added.
7871         [Fixes bug #333617]
7872
7873 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
7874
7875         * TextControl.cs: When SuspendRecalc is first called, reset the recalc_start
7876         to MaxValue and recalc_end to MinValue.  Currently, recalc_start is always 1,
7877         so we always recalculate the whole document instead of just the new part.
7878         [Fixes bug #325082]
7879
7880 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
7881
7882         * LineTag.cs: Fix a case where the GetCharIndex would not return 0
7883         when the mouse was to the left of the first character in the line.
7884
7885 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
7886
7887         * TextBox.cs, TextBoxBase.cs: When setting the document's password
7888         character, use the property instead of the variable so that the
7889         UseSystemPasswordChar property is taken into account.
7890         [Fixes bug #333748]
7891
7892 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7893
7894         * FolderBrowserDialog.cs: When a node is right clicked and the "New
7895         folder" contex menu appears, actually add the new folder to it, even
7896         if the node is not currently selected. Still use SelectedNode in case 
7897         there wasn't found a node under the pointer.
7898         Fixes #325452.
7899
7900 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7901
7902         * ListViewItem.cs: When retrieving the focused state, the index check
7903         should be done only when ListView is in virtualmode, as it is an
7904         expensive check for normal mode.
7905
7906 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7907
7908         * ListViewItem.cs: Make the focus state information be stored
7909         in the ListView, not in the items. This is done to match the MS
7910         behaviour for items that are not yet part of a ListView control;
7911         besides that, since just one item can be focused at the same time,
7912         we save a little space in our items.
7913         Fixes part of #331643.
7914
7915 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
7916
7917         * ComboBox.cs: When focus is lost, deselect the text. When setting
7918         text of control, select all text. Do not hide selection when control
7919         does not have focus. Fixes bug #333663.
7920
7921 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
7922
7923         * TextBoxBase.cs: On 2.0 profile, throw ArgumentOutOFRangeException
7924         instead of ArgumentException when SelectionLength is set to negative
7925         value. Added same check to SelectionStart. Code formatting.
7926
7927 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
7928
7929         * TextBoxBase.cs: Invalidate selection before changing SelectionLength
7930         or SelectionStart. Code formatting.
7931
7932 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7933
7934         * TreeView.cs: drag_begin_x and drag_begin_y are now set to -1,
7935         indicating that there was not a previous drag-and-drop operation going
7936         on.
7937         Fixes part of #325071.
7938
7939 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7940
7941         * X11Dnd.cs: When DragEventArgs.Effect is set to a value not part of
7942         AllowedEffect, don't let the drop operation happen. 
7943         Fixes #32580.
7944
7945 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
7946
7947         * TextRenderer.cs: Use GDI on Windows in both the 1.1 and 2.0 profiles.
7948
7949 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
7950
7951         * Line.cs, LineTag.cs: Guard against an exception when Document.Clear
7952         is called.
7953
7954 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
7955
7956         * Line.cs: Add a method that finds the tag that contains an x-coord.
7957         * LineTag.cs: Add a method that finds the character at an x-coord using
7958         a binary search, the old way was a linear search.
7959         * TextControl.cs: Change FindCursor to use the above new methods.
7960
7961 2007-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7962
7963         * DragEventArgs.cs: Allow Effect to have a non allowed value (a
7964         value different than AllowedEffect). This should be possible to
7965         indicate that dragging is not possible in some control/area.
7966
7967 2007-10-11  Jonathan Pobst  <monkey@jpobst.com>
7968
7969         * LineTag.cs: Encapsulate all variables with properties.  Calculate ascent/
7970         descent internally when font changes instead of outside code being responsible
7971         for setting it.
7972         * Line.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Use Tag properties
7973         instead of accessing internal variables.
7974
7975 2007-10-09  Everaldo Canuto  <ecanuto@novell.com>
7976
7977         * MdiClient.cs: Always call ArrangeIconicWindows before any arrangement and
7978         remove special treatment for ArrangeIcons since it is already arranged.
7979
7980 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
7981
7982         * TextBoxTextRenderer.cs: Draw takes a Color now instead of a Brush, as
7983         the Win32 backend uses Color.
7984         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
7985         Refactor to store a Color instead of a Brush for Color.
7986
7987 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
7988
7989         * Line.cs, LineTag.cs: Override GetHashCode to make a compiler warning go
7990         away.  I didn't realize I needed this when I refactored these earlier.
7991
7992 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
7993
7994         * LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Refactor to
7995         store a Color structure and use the ResPool for back color instead of
7996         holding onto brushes.
7997
7998 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
7999
8000         * TextControl.cs: Fix how we calculate the end of the tag we are drawing.
8001         [Fixes bug #325592]
8002
8003 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
8004
8005         * MonthCalendar.cs: When ShowWeekNumbers is changed, force the calendar
8006         to recalculate its size.  Fixes a part of bug #331052.
8007
8008 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
8009
8010         * NotifyIcon.cs: Set the correct mouse button when handling right mouse
8011         button.  Fixes a part of bug #331052.
8012
8013 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
8014
8015         * Form.cs: Trim NewLine before setting XPlatUI.SetText, and when setting
8016         the CreateParams.
8017         * ThemeWin32Classic.cs: Trim NewLine before drawing MDI children window
8018         decorations.
8019         [Fixes bug #330986]
8020
8021 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
8022
8023         * TextBoxTextRenderer.cs: Don't make this a static class, as static
8024         doesn't exist in 1.1.  (Thanks jb!)
8025
8026 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
8027
8028         * TextBoxTextRenderer.cs: Abstract text measuring and drawing to this
8029         class to allow us to use different backends on different platforms.
8030         Linux uses the current [Draw|Measure]String backend.  Windows uses
8031         the TextRenderer.[Draw|Measure]Text backend, which uses GDI instead
8032         of GDI+.  This leads to better looking text and more accurate measurements
8033         on Windows, fixing many of the reported issues.
8034         * Line.cs, LineTag.cs: Update to use TextBoxTextRenderer.
8035
8036 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8037
8038         * FolderBrowserDialog.cs: When running on Windows,
8039         try to detect paths such "C:" and add Path.DirectorySeparatorChar,
8040         since we must match both "C:" and "C:\" forms. A little hackish, but
8041         works.
8042         Fixes #325247.
8043
8044 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8045
8046         * ListView.cs: When calling EndEdit (after editing an item),
8047         create a new instance of LabelEditEventArgs to keep clean the fields
8048         in case we get a new call to BeginEdit; also do Application.DoEvents
8049         to have focus in synch. This is a fix similar to TreeView's #325244.
8050
8051 2007-10-07  Andreia Gaita <avidigal@novell.com>
8052
8053         * HtmlDocument.cs, HtmlElement.cs, WebBrowser.cs: Added dom support
8054         * WebBrowserBase.cs: Added dialog support, calling the
8055           WebBrowserDialogs classes for each specific dialog type.
8056
8057 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8058
8059         * ListView.cs: When the last item is focused and is removed,
8060         move the focus to the previous item (in Items order). This is what MS
8061         does.
8062         Fixes #330415.
8063
8064 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8065
8066         * ListView.cs: In ListViewItemCollection, make Remove call RemoveAt,
8067         instead of the opposite (RemoveAt call Remove). This is a better
8068         approach since we don't need to to a pair of traversals when using
8069         RemoveAt.
8070
8071 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8072
8073         * TreeView.cs: When Keys.Left is pressed, before trying to Collapse
8074         check that the node actually has nodes, and if not, move to the
8075         parent node instead. 
8076         Fixes #325265.
8077
8078 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8079
8080         * TreeView.cs: Move the previous change to the general case (to
8081         call Application.DoEvents in cases where the method was called by
8082         different places).
8083
8084 2007_10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8085
8086         * TreeView.cs: When calling EndEdit and we need to hide the textbox,
8087         call Application.DoEvents. This is neccessary when we get a call to
8088         BeginEdit from an AfterLabelEdit handler, because the focus always
8089         goes to the TreeView, even if we try to give it to our
8090         LabelEditTextBox. The call do Application.DoEvents seems to
8091         synchronize the focus, basically.
8092         Fixes #325244.
8093
8094 2007-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8095
8096         * TreeView.cs: When AfterLabelEdit event is fired, TreeNode.IsEditing
8097         should be false. This also removes some nasty recursive paths. Fixes
8098         part of #325244.
8099
8100 2007-10-04  Everaldo Canuto  <ecanuto@novell.com>
8101
8102         * MdiClient.cs: When cascade (layout) mdi window that is maximized, set the
8103         state to normal. Also resize window when cascading. Fixes #325433. 
8104
8105 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
8106
8107         * RichTextBox.cs: When SelectionColor is set to Color.Empty, use
8108         DefaultForeColor, as drawing empty colored lines isn't very useful.
8109         [Fixes the not drawn lines part of bug #324358]
8110
8111 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
8112
8113         * TextControl.cs: Move Line and LineTag classes into separate files to
8114         make things easier to find.
8115         * Line.cs, LineTag.cs: Bring coding standards up to Mono's guidelines.
8116         * RichTextBox.cs: Capitalize LineTag.Length property access.
8117         - This is purely an organizational/formatting change, no logic changed. -
8118
8119 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
8120
8121         * ThemeWin32Classic.cs: Do not show focus rectangle in radio buttons when
8122         text is empty.
8123
8124 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
8125
8126         * ThemeWin32Classic.cs: Do not show focus rectangle in checkboxes when
8127         text is empty.
8128
8129 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
8130
8131         * ComboBox.cs: On contructor use backgound_color instead of BackColor to
8132         prevent calling of OnBackColorChanged. Fixes #325321.
8133
8134 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
8135
8136         * TextBox.cs: When check enabled uses Enabled property instead of is_enabled
8137         because control can be disabled because owner is disabled.
8138
8139 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
8140
8141         * ComboBox.cs: For the 1.1 profile, the default SelectedText is
8142         string.Empty, test failed from previous change.
8143
8144 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
8145
8146         * TextBoxBase.cs: For the 1.1 profile, the default SelectedText
8147         is null, not String.Empty.  See bug #323038.
8148
8149 2007-10-01  Jonathan Pobst  <monkey@jpobst.com>
8150
8151         * TextControl.cs: Change the margins to match MS a little better.
8152         Still not perfect for X11 due to some DrawString differences, but
8153         is still an improvement over the old stuff.
8154         Partially fixes #324467.
8155
8156 2007-09-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8157
8158         * FolderBrowserDialog.cs: When using MyComputer as 
8159         RootFolder, let absolute paths be considered as valid ones. Also, use
8160         Path.DirectorySeparatorChar instead of Path.AltDirectorySeparatorChar,
8161         for Windows compatibility.
8162         Partially fixes #325247.
8163
8164 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8165
8166         * FolderBrowserDialog.cs: Fix the recursive FindPathInNodes method.
8167         Also remove the stack.Count > 0 check in FBTreeView.SetSelectedNode
8168         method, since it causes the dialog to not select folders directly
8169         under the root path (when setting SelectedPath property).
8170
8171 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8172
8173         * TreeNode.cs: When calling Expand/Collapse and need to call 
8174         ExpandBelow/CollapseBelow respectively, take into account
8175         partially visible nodes (previously Expanding/Collapsing
8176         a partially visible node in the bottom was not updating its +- sign).
8177
8178 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8179
8180         * TreeView.cs: When calling Expand on a TreeNode, and we need to
8181         expand nodes below (ExpandBelow), scroll the entire Viewport
8182         area if the node is above it and not visible (instead of scrolling
8183         the area from node's Bottom, which applies only when the node is
8184         visible).
8185         Fixes #325266.
8186
8187 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8188
8189         * TreeView.cs: When calling ExpandAll, set SelectedNode to the top
8190         node in the bottom area (as .Net does). This is done to preserve the
8191         scroll position when ExpandAll is called before handle is created for
8192         the 1.1 profile (bottom area, as opposed to top area in 2.0).
8193         Fixes #324103.
8194
8195 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8196
8197         * TreeView.cs: When calling ExpandAll, don't move the scroll to the 
8198         bottom area if we are in fact not using the vertical scroll bar.
8199         Fixes #324824.
8200
8201 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
8202
8203         * Control.cs: Comment out a double buffering optimization that doesn't
8204         take into account invalidates created in OnPaint, causing the control
8205         to never be redrawn.  It would take quite a bit of work to work around
8206         this, but I left it commented with an explanation for later possible
8207         optimization.
8208         [Fixes bug #328681]
8209
8210 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
8211
8212         * Control.cs: Ask parent to perform a layout if control is AutoSize and
8213         the text changes.
8214         * RadioButton.cs: Implement GetPreferredSizeCore.
8215         [Fixes bug #328672]
8216
8217 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
8218
8219         * RichTextBox.cs, TextBoxBase.cs, WindowsFormsSynchronizationContext.cs:
8220         corcompare stuffs.
8221
8222 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
8223
8224         * Application.cs: Move the sync context stuff to Run instead of RunLoop
8225         so that it doesn't get uninstalled on modal forms.
8226         * Control.cs: Install a sync context when a control is created.
8227         * WindowsFormsSyncronizationContext.cs: Create a private static control
8228         to invoke on.  This is easier than trying to find a created control we
8229         can use.
8230         [Fixes bug #327608]
8231
8232 2007-09-25  Jonathan Pobst  <monkey@jpobst.com>
8233
8234         * Application.cs: Install a WindowsFormsSynchronizationContext in the
8235         run loop, and uninstall it when done.
8236         * WindowsFormsSynchronizationContext.cs: Implement.
8237         [Fixes the common case in bug #327608]
8238
8239 2007-09-23  Gert Driesen  <drieseng@users.sourceforge.net>
8240
8241         * DataGridViewCellCollection.cs: Added argument checks for indexers.
8242         Use case-insensitive lookup of column name in indexer. Code
8243         formatting.
8244
8245 2007-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8246
8247         * TreeNode.cs: When collapsing or expanding a node, check whether its
8248         change will affect the visible area (we were previously doing a
8249         IsVisible check, but that check is not enough since children nodes
8250         could be still visible). Fixes part of #325266.
8251
8252 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
8253
8254         * TreeView.cs: Always select the first node when the TreeView gets
8255         focus if there is no currently selected node.
8256         [Fixes bug #324279]
8257
8258 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
8259
8260         * TreeView.cs: Do not raise BeforeSelect or AfterSelect when the
8261         node being selected is null.
8262         [Patch from Yves Bastide fixes bug #326858]
8263
8264 2007-09-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8265
8266         * TreeNode.cs: Add an internal ArePreviousNodesExpanded, to know
8267         whether all the parent nodes are expanded.
8268         * TreeNodeCollection.cs: When adding a new node an calling SetupNode,
8269         call RecalculateVisibleOrder if all previous nodes are expanded.
8270         Before that we were doing a IsVisible check, but sometimes the node
8271         is not in the visible area, but _should_already be ready, because of
8272         all previous nodes are expanded. Fixes #325259.
8273
8274 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
8275
8276         * ToolStripSplitButton.cs: Call the ButtonClick event if the button
8277         portion of the item is clicked.
8278
8279 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
8280
8281         * TextControl.cs: Do not tell the system to move the cursor if the
8282         textbox isn't focused.  Fixes part of bug #322668.
8283
8284 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
8285
8286         * ComboBox.cs: When there are no items, do not show the dropdown if
8287         the down arrow is clicked.  Fixes part of bug #322668.
8288
8289 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
8290
8291         * ToolStripComboBox.cs: Manually set the size of this control in the
8292         constructor, as it doesn't seem to be the same as DefaultSize.
8293         Fixes a failing monobuild test.
8294
8295 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
8296
8297         * DateTimePicker.cs: If the user sets MinDate to DateTime.MinValue,
8298         change it to DateTimePicker.MinDateTime.  [Fixes bug #326609]
8299
8300 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
8301
8302         * Theme.cs: FileDialogs should be using DesktopDirectory instead of
8303         Desktop.  This lets it work for people who have moved their desktops
8304         from the default location on windows.  For people who have not, both
8305         values are the same, so it shouldn't hurt anything.  [Fixes bug #325270]
8306
8307 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
8308
8309         * ToolStripControlHostTest.cs: DefaultSize is based off hosted control,
8310         but when the base constructor sets this, the control is null.  Set it
8311         again in the constructor.  Fixes a failing monobuild test.
8312
8313 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
8314
8315         * ToolStripDropDownItem.cs: Make sure Click and DropDownOpened events
8316         get called.
8317         * ToolStripSplitButton.cs: Make sure MouseDown and MouseUp events get
8318         called.
8319
8320 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
8321
8322         * ToolStrip.cs: Don't show tooltips for ToolStripTextBoxes, they
8323         will handle it themselves.
8324         * ToolStripItem.cs: When deciding what the text of a tooltip should
8325         be, use the Text property instead of the text field.
8326         * ToolStripTextBox.cs: Handle tooltips.
8327         [Fixes bugs #325417 and #325973]
8328
8329 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
8330
8331         * ToolStripDropDownButton.cs: Only drop down overflow menu with a
8332         left click.  Fixes the easy part of bug #325969.
8333
8334 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
8335
8336         * ToolStrip.cs: Set AutoSizeMode back to GrowAndShrink to refix
8337         bug #325406, but set a minimum for StatusStrip to 22 to keep
8338         bug #325390 fixed.  I think this minimum would have been figured
8339         up automatically if the grip was actually a ToolStripItem, but it
8340         currently is not.
8341
8342 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8343
8344         * ListView.cs: max_label_wrapping is now 30 pixels instead of 38,
8345         as this is apparently the actual value used by .Net. Also apply
8346         ItemPadding in Details view only, and decrease the general width padding,
8347         to have only the needed. This should fix #324340 in Windows too.
8348
8349 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8350
8351         * ListViewItem.cs: Don't Invalidate item if parent is inside
8352         a BeginUpdate/EndUpdate block. This prevents to have differences
8353         between the ListView and items state, as well as avoid some exceptions
8354         there.
8355         * ListView.cs: Make 'updating' field internal.
8356
8357 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
8358
8359         * ToolStripControlHost.cs: Realign control when ControlAlign changes.
8360         * ToolStripItem.cs: Use ImageScalingSize when calculating preferred
8361         size if appropriate.
8362         Fixes reopened bug #325414.
8363
8364 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
8365
8366         * ToolStrip.cs: Set AutoSizeMode back to GrowOnly.
8367         * ToolStripItem.cs: Invalidate before and after our new autosize when
8368         text changes.
8369         Fixes reopened bug #325390.
8370
8371 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
8372
8373         * ToolStripMenuItem.cs: Make sure we invalidate when clicked so
8374         mnemonics can be drawn or undrawn correctly.  Fixes reopened bug 
8375         #325044.
8376
8377 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
8378
8379         * Control.cs: Do WM_CONTEXTMENU before OnMouseUp.  [Fixes bug #325535]
8380
8381 2007-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8382
8383         * ColumnHeader.cs: When drawing column text, use EllipsisCharacter
8384         instead of EllipsisWord (by equistango at gmail.com). Fixes part of
8385         #82734.
8386
8387 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
8388
8389         * ToolStrip.cs: Make ToolStrip selectable when TabStop = true.  Find an
8390         item to select when the ToolStrip is selected.
8391         * ToolStripControlHost: Realign the control when the bounds or visibility
8392         change.
8393         * ToolStripItem.cs: When selected, if it's a control host, focus the control.
8394         * ToolStripOverflow.cs: When laying out the drop down, respect the item's
8395         preferred height.
8396         * ToolStripTextBox.cs: OnPaintInternal should call base.OnPaintInternal, not
8397         base.OnPaint.  Was causing text not to be drawn.
8398
8399 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
8400
8401         * SplitterPanel.cs: Ignore attempts to set AutoSizeMode.
8402
8403 2007-09-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8404
8405         * TreeView.cs: When creating the label edit text box,
8406         set is initially to Visible = false. This is done to
8407         prevent a confusion in the layout which makes it to lose
8408         focus when shown the first time. Fixes part of #82592.
8409
8410 2007-09-13 Andreia Gaita <avidigal@novell.com>
8411
8412         * WebBrowserBase.cs: add FocusOption enumeration for finer focus control
8413
8414 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
8415
8416         * ToolStrip.cs: Take Margin into account when calculating preferred
8417         size.  Also, allow preferred size to get smaller than the explicit
8418         size.
8419         * ToolStripTextBox.cs: Don't change the GetPreferredSize implementation.
8420         First step towards fixing bug #82747.
8421
8422 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
8423
8424         * TreeView.cs: Applied patch from latency@gmx.de to not paint the
8425         full row select background over the plus/minus glyph.  Also, turn
8426         off the focus rectangle for full row select since MS doesn't seem
8427         to ever paint it.  [Fixes bug #81839]
8428
8429 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
8430
8431         * ToolStrip.cs: Don't FocusInternal if there is no selected item.
8432         This was causing keyboard opened dropdowns to lose focus.
8433         [Fixes bug #82803]
8434
8435 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
8436
8437         * Control.cs: If Rectangle.Empty is passed to Invalidate, use
8438         ClientRectangle instead.  [Fixes bug #82838]
8439
8440 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
8441
8442         * SplitContainer.cs: We can't reset Visible on every layout because
8443         someone may have set Visible = false explicitly on a SplitterPanel.
8444         Make sure when we switch orientation the SplitterDistance does not
8445         change.  Fixes two failing tests.
8446
8447 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8448
8449         * TreeView.cs: Use MeasureTextInternal instead of MeasureText in
8450         TextRenderer, since the latter is only available in 2.0.
8451
8452 2007-09-13  Ivan N. Zlatev <contact@i-nz.net>
8453
8454         * Cursor.cs: Fix Cursor.Current to apply Cursor.Default.
8455         * SplitContainer.cs: Implement FixedPanel layouting.
8456
8457 2007-09-12  Andreia Gaita  <avidigal@novell.com>
8458
8459         * WebBrowserBase.cs: setup shutdown routine
8460
8461 2007-09-12  Andreia Gaita  <avidigal@novell.com>
8462
8463         * Application.cs: Let keyboard events that are targetted 
8464                 to non-mwf windows hosted inside mwf (as in, webbrowser),
8465                 propagate properly. Fixes keyboard handling on the webbrowser.
8466
8467 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8468
8469         * ListView.cs: When handling MouseUp event and we are 
8470         highligting a node with the mouse right button, don't trigger
8471         Before/AfterSelecting event, since we are not actually selecting
8472         the node.
8473
8474 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8475
8476         * TreeView.cs: When editing a node, modify the edit text box
8477         depending on the text length (as you are typing), like MS does.
8478
8479 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
8480
8481         * ToolStrip.cs: Fixup preferred size calculations for vertical toolbars. 
8482         Override GetPreferredSizeCore to perform calculations.  Remove custom
8483         autosize logic.  [Fixes bug #82739]
8484
8485 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
8486
8487         * TextBoxBase.cs: Modified should default to false.
8488
8489 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
8490
8491         * Control.cs: Update the anchoring distances even when layout is supspended.
8492         Patch provided by George fixes bug #82805.
8493
8494 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
8495
8496         * Control.cs: Provide a setter for ExplicitHeight.
8497         * TextBoxBase.cs: Now that we have the implementation for explicit heights,
8498         remove the hacks in here for requested_height.
8499         [Fixes bug #82749]
8500
8501 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
8502
8503         * ScrollBar.cs: Fix an issue reported on the lists where setting a scrollbar's
8504         Maximum to lower that its current Value caused an ArgumentException by setting
8505         the Value to the new Maximum.
8506
8507 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
8508
8509         * ThemeWin32Classic.cs: Math is hard!  Fix some math so that the TrackBar
8510         handle moves to the closest tick when it is being dragged.
8511         [Fixes bug #82751]
8512
8513 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
8514
8515         * ToolStripManager.cs: When we have added MDI buttons onto a MenuStrip, we
8516         can't let them count as real items when calculating where to merge in the
8517         user's items.  [Fixed bug #82786]
8518
8519 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
8520
8521         * ToolStripMenuItem.cs: Add a parent type check so we don't crash on people
8522         who want to add a menu item directly onto a toolstrip.
8523         [Fixes bug #82775, part II]
8524
8525 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
8526
8527         * StatusStrip.cs: Synchronize SetDisplayedItems with the ToolStrip version.
8528         * ToolStrip.cs: If a ToolStripItem set to not visible is added to a ToolStrip,
8529         don't set it to available.
8530         * ToolStripItem.cs: When Visible is changed, tell the owner to perform a layout.
8531         [Fixes bug #82727, part II]
8532
8533 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
8534
8535         * StatusStrip.cs: Change item placement to None if not visible.
8536         * ToolStripItem.cs: Invalidate when InternalVisible changes.
8537         These should have been committed to fix 82723, but I missed them.
8538
8539 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
8540
8541         * ToolStrip.cs: Make sure ItemClicked is raised before the ToolStripItem's
8542         Click, and that it is only called once.
8543         * ToolStripMenuItem.cs: Call OnClick even when there are dropdown items.
8544         * ToolStripDropDownItem.cs: Override HandleItemClick so dropdowns stay
8545         dropped down.
8546         [Fixes bug #82775]
8547
8548 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8549
8550         * ColumnHeaderSample.cs: Use 5 pixels as extra height instead of 8
8551         to match .Net.
8552         * ThemeWin32Classic.cs: For the columns text, use 5 pixels as left padding
8553         instead of 8, just like above. Partially fixes #82734.
8554
8555 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8556
8557         Patch by Ernesto Carrea <equistango at gmail.com>. Partially 
8558         fixes #82734.
8559
8560         * ListView.cs: Remove extra space between rows in Details view (match
8561         .Net). 
8562         * ThemeWin32Classic.cs: Header text should use ListView.Font, not
8563         the DefaultFont.
8564
8565 2007-09-08  Gert Driesen  <drieseng@users.sourceforge.net>
8566
8567         * Application.cs: Modified ProductVersion to return value of
8568         AssemblyInformationVersion if available, and fallback to assembly
8569         version. Fixes bug #82746. Code formatting.
8570         * BindingSource.cs: Remove NIE from Dispose, and mark it MonoTODO
8571         instead.
8572
8573 2007-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8574
8575         * Control.cs: When updating ZOrder for a child control,
8576         take into account the implicit ones (we need it in our controls
8577         using them). Fixes #82642.
8578
8579 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
8580
8581         * ToolStripItem.cs: Add support for animated images.
8582         [Fixes bug #82726]
8583
8584 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
8585
8586         * ToolStrip.cs: Make sure we aren't drawing anything that isn't 
8587         visible.  [Fixes bug #82727]
8588
8589 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8590
8591         * ToolStripItem.cs: If AutoSize changes the size of our item, invalidate
8592         so we repaint using the new size.  [Fixes bug #82723]
8593
8594 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8595
8596         * TreeView.cs: If ShowLines is true, we should ignore the FullRowSelect
8597         option.  [Fixes bug #81779]
8598
8599 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8600
8601         * TreeView.cs: Override HandleClick because the StandardClick style is
8602         set to false.  According to MSDN (and testing), the click events should
8603         only be raised when the click occurs on a TreeNode.  [Fixes bug #81739]
8604
8605 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8606
8607         * ToolStripTextBox.cs: Invalidate our textbox when it loses focus, so
8608         the border will disappear.  Fixes reopened #82653.
8609
8610 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8611
8612         * Control.cs: If the control is autosize, and its preferred size changes
8613         when it lays out its children, tell its parent so it can be re-layed out.
8614         Fixing some of the fallout from r85433.
8615
8616 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8617
8618         * ThemeWin32Classic.cs: Fix a NRE caused by r85427 because RadioButton
8619         and CheckBox share some code.
8620
8621 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8622
8623         * TrackBar.cs: Only call OnScroll if we actually changed the Value of
8624         the TrackBar, not every mouse move.  [Fixed bug #82718]
8625
8626 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8627
8628         * ThemeWin32Classic.cs: Allow a CheckBox to be rendered like a Button
8629         under 2.0 rendering.  [Fixes bug #82657]
8630
8631 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8632
8633         * TreeView.cs: If we found a TreeNode to display a context menu, but
8634         it doesn't have one to show, let the TreeView display its menu
8635         instead.  [Fixes bug #82680]
8636
8637 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
8638
8639         * ToolStripTextBox.cs: TextBox no longer call OnPaint, we need to use
8640         OnPaintInternal instead.  Give the internal TextBox a Border property
8641         so it can draw itself more correctly.  [Fixes bug #82653]
8642
8643 2007-09-06  Zoltan Varga  <vargaz@gmail.com>
8644
8645         * HtmlHistory.cs HtmlWindow.cs HtmlWindowCollection.cs ListBindingHelper.cs WindowsFormsSection.cs WindowsFormsSynchronizationContext.cs: Stubs for missing 2.0 classes.
8646
8647 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
8648
8649         * ComboBox.cs: Adjust combobox button state to reflect current state when
8650         back to enabled = true. Fixes first issue of #82654.
8651
8652 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
8653
8654         * Control.cs: Fix last patch regression, prevent forms to update zorder when
8655         setting visible property.
8656
8657 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
8658
8659         * Control.cs: Update zorder after control creation in SetVisibleCore, it 
8660         fix zorder for controls initially created as non visible. Fixes #82667.
8661
8662 2007-09-04  Everaldo Canuto  <everaldo@simios.org>
8663
8664         * ThemeWin32Classic.cs: Adjust checkbox light color to ControlLightLight to
8665         mimic win32 look. Fixes #82656.
8666
8667 2007-09-01  Zoltan Varga  <vargaz@gmail.com>
8668
8669         * FileDialogCustomPlace.cs FileDialogCustomPlacesCollection.cs: 
8670         Stubs for new net 3.5 classes.
8671
8672 2007-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8673
8674         * ListViewItem.cs: In ListViewItemCollection operations calculate
8675         Layout for owner as well as invalidate it. Fixes part of #82642.
8676
8677 2007-08-31  Jonathan Pobst  <monkey@jpobst.com>
8678
8679         * ToolStripItem.cs: Take Parent/Owner's Enabled state in to account
8680         when returning Enabled.  [Fixes bug #82651]
8681
8682 2007-08-30  Everaldo Canuto  <everaldo@simios.org>
8683
8684         * ToolBar.cs: Fix button size for non flat toolbars. Fixes #82368.
8685
8686 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8687
8688         * ListView.cs: Put item padding info in a single place
8689         (Theme.ListViewItemPaddingWidth) to have working AutoResize on
8690         columns again.
8691         * ThemeWin32Classic.cs:
8692         * Theme.cs: Likewise.
8693
8694 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8695
8696         * ListView.cs: When a ListViewSubItem instance is invalidated,
8697         invoke Invalidate on parent ListViewItem, not parent ListView.
8698         Fixes #81570.
8699
8700 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
8701
8702         * ListView.cs, ListViewItem.cs: corcompare stuffs.
8703
8704 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
8705
8706         * BindingMemberInfo.cs: Implement == and != operators.
8707
8708 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
8709
8710         * HtmlElementEventArgs.cs: Implement properties.
8711
8712 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
8713
8714         * HtmlElementErrorEventArgs.cs, HtmlElementErrorEventHandler.cs: Added.
8715
8716 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
8717
8718         * TabControl.cs: I was looking into the MonoTODO on TabPageCollection.
8719         Add (string,string,string) to implement the imagekey.  It turns out, we
8720         use the requested imagekey whereas .Net does not.  So I broke ours to match
8721         theirs.  :(
8722
8723 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
8724
8725         * Form.cs, UserControl.cs: Override ValidateChildren, AutoValidate.
8726
8727 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
8728
8729         * ContainerControl.cs: Implement ValidateChildren and new Validate overload.
8730
8731 2007-08-29  Gert Driesen  <drieseng@users.sourceforge.net>
8732
8733         * FolderBrowserDialog.cs: Set Tag of newly created node, and keep it
8734         up-to-date. Fixes bug #82618.
8735
8736 2007-08-29  Everaldo Canuto  <everaldo@simios.org>
8737
8738         * TextBoxBase.cs: Call CalculateDocument after changes Lines property to
8739         reflect document changes. Fixes #82367.
8740
8741 2007-08-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8742
8743         * ListView.cs: Add/fix some override differences between 1.1 and 2.0,
8744         as well as add new ones. This should make work the BackgroundImage
8745         property for ListView again.
8746
8747 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
8748
8749         * DataGrid.cs, DataGridViewButtonColumn.cs, DataGridViewCheckBoxColumn.cs,
8750         DataGridViewComboBoxColumn.cs, DataGridViewImageColumn.cs, DataGridViewLinkColumn.cs,
8751         DataGridViewTextBoxColumn.cs, ToolTip.cs: corcompare stuffs.
8752
8753 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
8754
8755         * Control.cs, XPlatUI.cs, XPlatUIDriver.cs, XPlatUIWin32.cs: Implement
8756         IsKeyLocked.
8757
8758 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
8759
8760         * Cursor.cs: Add HotSpot, hook into XPlatUI.GetCursorInfo.
8761         * XPlatUIWin32.cs: Implement hotspot lookup in GetCursorInfo.
8762
8763 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
8764
8765         * RadioButton.cs: Use 2.0 rendering.  Use base implementation of TextAlign.
8766         * Theme.cs, ThemeWin32Classic.cs: Implement 2.0 rendering for RadioButton.
8767
8768 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
8769
8770         * CursorConverter.cs: Implement conversion to InstanceDescriptor.
8771
8772 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
8773
8774         * GridEntry.cs: Implement GetService.
8775
8776 2007-08-27  Jonathan Pobst  <monkey@jpobst.com>
8777
8778         * LabelEditTextBox.cs, TreeView.cs: After hiding the textbox used
8779         for label editting, make sure we focus back on the TreeView.
8780         [Fixes bug #82590]
8781
8782 2007-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8783
8784         * ListView.cs: Add some 2.0 overrides.
8785
8786 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
8787
8788         * Form.cs: Uses opacity var instead of Opacity property in CreateHandle
8789         because getter dont returns right value before handle creation. Thanks 
8790         to George. Fixes #82569.  
8791
8792 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
8793
8794         * Theme.cs: Revert last patch, it causes error under win32. 
8795
8796 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
8797
8798         * Theme.cs: Uses Environment.SpecialFolder.DesktopDirectory instead of 
8799         Environment.SpecialFolder.Desktop in Places method, Desktop returns the 
8800         logical Desktop rather than the physical file system location. Fixes #82603. 
8801
8802 2007-08-26  Everaldo Canuto  <ecanuto@novell.com>
8803
8804         * MessageBox.cs: Add clipboard copy (ctrl+c) to messagebox. Thanks Andy Hume
8805         for the patch. Fixes #82568.
8806
8807 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8808
8809         * ListView.cs: Add a pair of missing 2.0 ListViewItemCollection.Insert
8810         methods.
8811
8812 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8813
8814         * ListViewInsertionMark.cs: New stubbed class.
8815
8816 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
8817
8818         * FolderBrowserDialog.cs: When adding folder, immediately create the
8819         directory with temporary name and rename the directory when editing
8820         finishes. This matches MS. Ensure the node for the new folder is 
8821         selected and LabelEdit is disabled, when editing is either finished
8822         or cancelled.
8823
8824 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
8825
8826         * TreeView.cs: When editing label of node, ensure node is visible.
8827
8828 2007-08-25  Ivan N. Zlatev  <contact@i-nz.net>
8829
8830         * PropertyGridView.cs: Set the value only if it has changed.
8831
8832 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8833
8834         * ListView.cs: Some more code refactoring to add support sorting
8835         with groups (now for Details view). Remove unused code also.
8836
8837 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
8838
8839         * NodeLabelEditEventArgs.cs: EndEdit immediately when CancelEdit is called.
8840         Not a big fan of reacting immediately to a field in an EventArg, but that's
8841         the way it's done.  (This is part of the previous commit that got left out.)
8842
8843 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
8844
8845         * FolderBrowserDialog.cs: Removed need for separate description field.
8846         Replaced "" with string.Empty. Fixed tabindex. Ensure OK button
8847         has focus when dialog box is displayed again, regardless of what
8848         button was pressed the previous time. Set RootFolder and SelectedPath
8849         each time dialog box is displayed. This ensures the treeview is
8850         refreshed, and fixes bug #82579. Do no hide selected node in TreeView
8851         when it does not have focus. Added support for more special folders.
8852
8853 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
8854
8855         * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in EndEdit
8856         before calling AfterLabelEdit.  If the user calls BeginEdit in that event,
8857         it resets the edit_args.
8858         * TreeNode.cs: Call CancelEdit if the user passes cancel = true to EndEdit.
8859         [Fixes bug #82577]
8860
8861 2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
8862
8863         * FolderBrowserDialog.cs: Modifies form caption and text of new folder
8864         button to match MS. Provide more meaningful exception message for
8865         invalid RootFolder value. Use zero-length string when SelectedPath
8866         is set to null. Allow non-rooted paths in SelectedPath, but ignore
8867         them in FolderBrowserTreeView. Allow folders to be created in
8868         RootFolder. Fixes bug #82576.
8869
8870 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8871
8872         * ListView.cs: Correctly compute the layout_ht (height) when using groups,
8873         since we need to take into account the group headers and the margin
8874         between them.
8875         * ListViewGroup.cs: Add a rows field to store the number of rows per
8876         group.
8877
8878 2007-08-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8879
8880         * DateTimePicker.cs: The MS' MTB has a really stupid year formatting.
8881           Anyways, let's just follow the lead.
8882
8883 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
8884
8885         * CheckBox.cs: Set the AutoSizeMode to GrowAndShrink.
8886         * Form.cs, GroupBox.cs: Don't skip Right or Bottom anchored 
8887         controls in GetPreferredSizeCore.
8888         * ThemeWin32Classic.cs: Tweak text drawing of CheckBoxes.
8889         [Fixes bug #82488]
8890
8891 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
8892
8893         * PrintDialog.cs: Need to instantiate the form variable here too.
8894
8895 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8896
8897         * ListView.cs: Do some reorganization to support sorting in groups,
8898         by doing the layout sequentially in ListView.Items. Also add support
8899         for the Default Group, which should be available for items with no
8900         group assigned.
8901         * ListViewGroup.cs: Add support for DefaultGroup. Include new members
8902         for storing layout info also.
8903         * ListViewGroupCollection.cs: Add a DefaultGroup as part of the
8904         collection, as well as providing internal members to do a traversal
8905         including the default group (needed when doing layout/drawing).
8906         * ThemeWin32Classic.cs: When drawing group headers use internal
8907         ListViewGroupCollection members to take into account the default
8908         group.
8909
8910 2007-08-23  George Giolfan  <georgegiolfan@yahoo.com>
8911
8912         * FlowLayoutPanel.cs: Add GetPreferredSizeCore.  [Fixes bug #82537]
8913
8914 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
8915
8916         * TreeView.cs: IsInputKey: don't ask for any keys if the handle hasn't
8917         been created.  If handle is created, we want arror keys.  If we are editing
8918         a node, we want things like enter, esc, home, end, page up, page down.
8919         Allows Esc to work for FolderBrowserDialog.
8920
8921 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
8922
8923         * ColorDialog.cs, FontDialog.cs: Set the form's CancelButton so that
8924         they close when ESC is pressed.  Thanks Andy!
8925
8926 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
8927
8928         * CommonDialog.cs: Do not instantiate form, leave that for derived classes.
8929         This way we can tell if this is a CommonDialog provided with mono, or one
8930         that is being implemented outside by a developer.  If it is an external one,
8931         the developer is responsible for showing their own form.  We were showing
8932         our blank form after the developer showed his.
8933         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs, FontDialog.cs,
8934         PageSetupDialog.cs: Instantiate form variable in our constructor.
8935         [Fixes bug #82531]
8936
8937 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
8938
8939         * ListBox.cs, ListView.cs, TreeView.cs: Override IsInputCharInternal
8940         and always return true.  [Fixes bug #81616]
8941
8942 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
8943
8944         * TextBoxBase.cs: Allow 2.0 AutoSize to change the height of the
8945         TextBox.  [Fixes bug #82549]
8946
8947 2007-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
8948
8949         * FileDialog.cs: When Save/Open is clicked and no filename is selected
8950         or entered then do not close the dialog. Fixes bug #82539. Removed
8951         CWLs.
8952
8953 2007-08-22  Everaldo Canuto  <ecanuto@novell.com>
8954
8955         * FileDialog.cs: Create UpdateRecentFiles and move the recent files refresh
8956         code to this method. It is calling every time filter changes. This method
8957         will help to fix the bug #80887.
8958
8959 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
8960
8961         * CheckBox.cs: Implement AutoSize calculation.
8962
8963 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
8964
8965         * CheckBox.cs: Use new 2.0 rendering for 2.0.
8966         * Theme.cs: Method declarations for 2.0 rendering path.
8967         * ThemeWin32Classic.cs: 2.0 rendering implementation for CheckBox.
8968
8969 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8970
8971         * ListViewGroupCollection.cs: Fix a typo of the previous patch.
8972
8973 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8974
8975         * ListViewGroupCollection.cs: Implement AddRange the right way, to
8976         only call Redraw on the parent one time.
8977
8978 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8979
8980         * DataGridViewRowHeaderCell.cs, DataGridViewColumnHeaderCell.cs: Implemented
8981           GetClipboardContent.
8982         * DataGridViewCell.cs: Implemented GetClipboardContent,
8983           GetEditedFormattedValue, GetFormattedValue.
8984         * DataGridView.cs: Implemented GetClipboardContent, TopLeftHeaderCell.
8985
8986 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
8987
8988         * TableLayoutStyleCollection.cs: corcompare fix.
8989
8990 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8991
8992         * DataObject.cs: Implemented retrieval of convertible / not convertible
8993           objects.
8994
8995 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
8996
8997         * ToolStripItem.cs: When changing the item's text, invalidate before we resize
8998         ourselves.  This ensures the entire old bounds are repainted, in case our new
8999         size is smaller.  [Fixes bug #82518]
9000
9001 2007-08-20  Everaldo Canuto  <ecanuto@novell.com>
9002
9003         * XplatUIX11.cs: Apply patch from #81588, it makes use of PointerMotionHintMask
9004         flag to make fast handle of mouse events, without this the mouse move is
9005         handled in some manner, whether it is a mouse move or not. Fixes #81588.
9006
9007 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9008
9009         * ListView.cs: When doing layout calculations don't use a ref
9010         param to keep the current item; instead use its Index value (this 
9011         is specially important when doing the layout with Groups
9012         and Items being sparse). Also don't take into account items added to
9013         the Group but not yet added to the main ListView.Items collection.
9014
9015 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9016
9017         * ListViewGroupCollection.cs: Forgot to mimic an issue
9018         in the indexer (don't assign the ListView owner for new values).
9019
9020 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9021
9022         * ListViewGroupCollection.cs: Make the string indexer use
9023         the int based indexer to re-use code, instead of duplicate the code.
9024         Also Redraw as needed and take into account null values.
9025
9026 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
9027
9028         * StatusStrip.cs: Make sure the item's parent gets set in SetDisplayedItems.
9029         [Fixes bug #82481]
9030
9031 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
9032
9033         * ToolStrip.cs: Add some logic to un-focus controls in ToolStripControlHosts
9034         when other buttons are clicked or navigated to.
9035
9036 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9037
9038         * XplatUIX11.cs: Treat toolwindows as if they had no window manager, since
9039           it's XplatUIX11 that attaches them.
9040
9041 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9042
9043         * DataGridView.cs: If a column has been added, recreate the editing row.
9044           Fixes #82226.
9045
9046 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9047
9048         * TextControl.cs: Use Math.Max instead of Math.Min when deciding the length
9049           of the tag to draw. Makes disappearing text show up again.
9050
9051 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9052
9053         * StatusBar.cs: Take into account any icons when a panel has AutoSize =
9054           Contents. Fixes #82487.
9055
9056 2007-08-19  Andreia Gaita  <avidigal@novell.com>
9057
9058         * Added HtmlElement.cs, HtmlElementCollection.cs, 
9059           HtmlElementEventArgs.cs, HtmlElementEventHandler.cs
9060           
9061 2007-08-19  Andreia Gaita  <avidigal@novell.com>
9062
9063         * BindingSource.cs: Implement this, dispose and getenumerator.
9064         * DataGridViewRowCollection.cs: Move the InvalidOperationException
9065         out of AddInternal, throw it only on public Add calls. The 
9066         UsingWebBrowser sample was blowing up with this when setting the
9067         DataSource after adding DataBindings, so it's likely that .net
9068         only throws this exception when Add is called directly. 
9069         
9070         * ToolStripControlHost.cs: Return the hosted control's text
9071         property, and not the ToolStripItem one (it would always return
9072         the initial value).
9073         
9074         * HtmlDocument.cs: Implement GetElementById and All
9075         * WebBrowser.cs: Remove exception on set_DocumentStream.        
9076
9077 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
9078
9079         * Form.cs: Fix the max and min value for opacity (0~1).
9080
9081 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
9082
9083         [Fixes #80118]
9084         * DataGridTableStyle.cs: Default header font is now null, on getter it 
9085         returns datagrid font when is null. On setter permits null.
9086
9087         * DataGrid.cs:
9088         - When ResetHeaderFont set header font to null.
9089         - On EndInit set grid_style.DataGrid.
9090
9091 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
9092
9093         * TabControl.cs: Fix regression in default padding x.
9094
9095 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
9096
9097         * TabControl.cs: Fix tab page text area removing padding. Fixes #82471.
9098
9099 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
9100
9101         * TabControl.cs: Fix first tab drawing, when selected it must have x = 0
9102         not 2. Fixes #82229.
9103
9104 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
9105
9106         * TabControl.cs: Fix tab size when image height is less than text height.
9107         Partially fixes #81837.
9108
9109 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
9110
9111         * Form.cs: Add WS_EX_CONTROLPARENT to forms to make it selectable using 
9112         "alt + tab". It works only for Win32, for X11 theres no way to remove window
9113         from taskbar and keep it on "alt_tab". Fixes #81722.
9114
9115 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
9116
9117         * XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
9118         and DrawReversibleLine, also apply same behavior to FillReversibleRectangle. 
9119         Fixes #80877 and #79418.
9120
9121 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
9122
9123         * MenuAPI.cs: Fix popup menu position when the size is larger than distance 
9124         between position and one of the screen borders. Fixes #82349.
9125
9126 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
9127
9128         * MessageBox.cs: When there is no form that invoked the MessageBox, shows
9129         the MessageBox in the taskbar. Fixes #82457.
9130
9131 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
9132
9133         * MessageBox.cs: Fix form size when icon is set and text height is bigger
9134         than icon. Fixes #82468.
9135
9136 2007-08-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9137
9138         * ThemeWin32Classic.cs: A FixedToolWindow has border size 3.
9139         * InternalWindowManager.cs: Change HandleCalcSize to return a boolean value
9140           if handled or not. Implement WM_NCCALCSIZE for WParam == 0 as well.
9141           Refactored HandleNCCalcSize somewhat to avoid code duplication.
9142         * Form.cs: Add is_clientsize_set, set in set_ClientSize, used by
9143           FormBorderStyle to decide if we're calculating a new size from the
9144           client size or not. CreateParams: Don't fake tool windows, only the X11
9145           backend manages toolwindows manually.
9146
9147 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
9148
9149         * Form.cs: Only reset is_visible if !IsDisposed to prevent an
9150         ObjectDisposedException.
9151
9152 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
9153
9154         * Form.cs: Reset is_visible back to true after OnLoad.  Setting this
9155         in OnLoad should not have any effect.  [Fixes bug #82470]
9156
9157 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
9158
9159         * ToolTip.cs: Add a hack to ToolTipWindow so it will still size and
9160         paint for controls that create their own ToolTipWindow instead of
9161         going through ToolTip.
9162
9163 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
9164
9165         * ToolTip.cs: Make Hide internal instead of public to match MS API.
9166
9167 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9168
9169         * ListViewGroupCollection.cs: Use generic List instead of an
9170         ArrayList, since this collection is 2.0 only.
9171
9172 2007-08-17  Jeffrey Stedfast  <fejj@novell.com>
9173
9174         * ToolTip.cs (Hide): Made public to make the build work (should
9175         this not be public?).
9176
9177 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
9178
9179         * ToolBar.cs, ToolStrip.cs, TreeView.cs: Use a ToolTip instead of a
9180         ToolTipWindow.
9181         * ToolTip.cs: Add an internal Visible property to facilitate transition.
9182
9183 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
9184
9185         * DrawToolTipEventArgs.cs, DrawToolTipEventHandler.cs, PopupEventArgs.cs,
9186         PopupEventHandler.cs: Make these internal for 1.1.
9187         * ThemeClearlooks.cs, ThemeWin32Classic.cs: Use TextRenderer, and modify to not
9188         use ToolTipWindow internals.
9189         * ToolTip.cs: Add 2.0 modal Show methods.  Had to move a lot of stuff around to
9190         support this.  A lot of stuff in the ToolTipWindow got moved to the ToolTip.
9191
9192 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9193
9194         * X11Dnd.cs: Add a null check.
9195
9196 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9197
9198         * X11Dnd.cs: MwfWindow: Try to load the control directly from the handle if
9199           nothing else succeeds. Fixes #82453.
9200
9201 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9202
9203         * XplatUIWin32.cs: PaintEventStart: validate the entire source client
9204           rectangle if we're painting to another window than the one the paint
9205           message was generated on. Simplify the code somewhat, which makes
9206           PaintEventEnd also simpler.
9207
9208 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9209
9210         * Control.cs: When changing parent of a form, let the form decide whether
9211           XplatUI.SetParent should be called or not.
9212         * Form.cs: ChangingParent: only call XplatUI.SetParent if we're not
9213           recreating the handle. If the new parent's handle isn't created, don't
9214           recreate our handle, just destroy it. CreateParams: Check if the
9215           parent's handle is created before fetching it.
9216
9217 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9218
9219         * Control.cs, Form.cs, InternalWindowManager.cs, MainMenu.cs, MdiClient.cs:
9220           Update calls to PaintEventStart/End to take a Message argument.
9221         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Update PaintEventStart/End to
9222           take a Message argument.
9223         * XplatUIWin32.cs, XplatUIX11.cs: Update PaintEventStart/End to take a
9224           Message argument, and handle the case where we don't paint to the window
9225           for which the paint message was generated.
9226
9227 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9228
9229         * XplatUIWin32.cs: Don't call Win32GetLastError directly, use
9230           Marshal.GetLastWin32Error. Plug nasty memory leak in
9231           PaintEventStart/End, we were creating a DC we weren't releasing.
9232
9233 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9234
9235         * ListView.cs: Add Groups support in Details view. Also have a small
9236         method to do the layout of the group header. Don't use a separate
9237         method to do the groups calculation in Icons view, since our methods
9238         are now a little simpler.
9239         * ListViewGroup.cs: Use the more accurate `HeaderBounds' name than
9240         `Bounds'.
9241         * ThemeWin32Classic.cs: Likewise.
9242
9243 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
9244
9245         * Application.cs: Add FilterMessage method and rework our message loop
9246         logic to use it.
9247
9248 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
9249
9250         * Application.cs: Add some methods and stub a few methods that are
9251         pretty much never used.
9252
9253 2007-08-15  Jonathan Pobst  <monkey@jpobst.com>
9254
9255         * TreeNode.cs: Add some serialization methods.
9256
9257 2007-08-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9258
9259         * ListView.cs: In ListViewItemCollection have a 
9260         'is_main_collection' field to not modify ListViewItem.ListView
9261         when using it as ListViewGroup.Items (and not ListView.Items)
9262         and also don't modify selection state (.Net behaviour). 
9263         Instead, set group for items contained in a ListViewGroup.Items collection.
9264         * ListViewItem.cs: Simplify some code in Group setter.
9265         * ListViewGroup.cs: use the new .ctor to pass the current instance
9266         to the ItemsCollection.
9267         * ListViewGroup.cs: Set the ListView property for ListViewGroup
9268         instances when adding/removing. Also make Remove use RemoveAt, which
9269         should perform better.
9270
9271 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
9272
9273         * Message.cs, TabControl.cs, TextBox.cs, TextBoxBase.cs: Hide some 2.0 API
9274         that crept into the 1.1 profile.
9275
9276 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
9277
9278         * ToolBarButton.cs: Implement ImageKey.
9279
9280 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
9281
9282         * ToolBar.cs: Implement ScaleControl/ScaleCore.
9283
9284 2007-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9285
9286         * PictureBox.cs: OnAnimateImage/UpdateAnimateImage: Check if handle is still
9287           created, it might have gotten destroyed since we last checked. Fixes
9288           #82405.
9289
9290 2007-08-11  Jonathan Pobst  <monkey@jpobst.com>
9291
9292         * ToolTip.cs: Remove mouse in control check from mouseleave handler so
9293         tooltip will hide when mouse is moved off the control.
9294         [Fixes bug #82407]
9295
9296 2007-08-11 Andreia Gaita <avidigal@novell.com>
9297
9298         * WebBrowserBase.cs, WebBrowser.cs: add implementation
9299         using Mono.Mozilla for loading and navigating webcontrol
9300         with xulrunner.
9301         The initial implementation was done on 
9302         /trunk/mozembed/tests/browser , and copied here.
9303
9304 2007-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
9305
9306         * ThemeWin32Classic.cs: On 2.0 profile, use ForeColor and BackColor of
9307         ToolTipWindow for drawing the tooltip. Fixes bug #82408.
9308
9309 2007-08-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9310
9311         * DataGridView.cs: Add support for an editing row. Fixes #82226.
9312           RowTemplateFull: throw an exception if a column doesn't have a template.
9313         * DataGridViewRowCollection.cs: AddInternal: if there are any editing rows,
9314           add the row just before it.
9315         * DataGridViewTextBoxCell.cs: Don't paint cells which are in edit mode as
9316           selected.
9317         * DataGridViewSelectedRowCollection.cs: Don't return the editing row. Add a
9318           DataGridView field to be able to reach the grid's editing row.
9319
9320 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
9321
9322         * ToolTip.cs: If the control's handle hasn't been created when it has a
9323         tooltip set on it, don't check to see if we need to show the tooltip.  This
9324         check was causing the control's handle to be created.
9325         [Fixes bug #82399]
9326
9327 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
9328
9329         * TextBoxBase.cs: Fix SelectionLength when no text selected to match MS:
9330                                         1.1             2.0
9331         Handle Not Created      -1              0
9332         Handle Created          0               0
9333         [Fixes bug #82371]
9334
9335 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
9336
9337         * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior.
9338         [Fixes bug #82348]
9339
9340 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
9341
9342         * DrawToolTipEventArgs.cs: Don't dispose a brush we got from the respool.
9343         * ToolTip.cs: Implement some properties and owner draw.
9344
9345 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9346
9347         * DataGridView.cs: OnPaint: don't set scrollbar visibility to false then
9348           show them again, since setting visibility causes a paint, causing an
9349           endless loop (instead use a temporary and set it all when it's known if
9350           they should be shown or not). Fixes #79265.
9351
9352 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9353
9354         * DataGridView.cs: Only do a full column/row selection if a header was
9355           clicked and we're in Column/RowHeader selection mode. If shift and ctrl
9356           isn't pressed, deselect everything before selecting something.
9357
9358 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9359
9360         * DataGridView.cs: Fix SelectedRows and SelectedColumns to match MS
9361           behaviour according to bug #81075 - they are returned in the order they
9362           are selected. Fix HitTest to check if the point is within any of the
9363           headers. Allow for row/column selection when in ColumnHeader or
9364           RowHeader selection mode. Add SetSelected[Column|Row]CoreInternal for
9365           the row and column to call when their selected state changes, and
9366           updated selected_[rows|columns] whenever SetSelected* is called.
9367         * DataGridViewBand.cs: Initialize isRow correctly. Call
9368           SetSelected[Row|Column]CoreInternal when the selected state changes, and
9369           add a SelectedInternal to avoid StackOverflows.
9370         * DataGridViewColumn.cs, DataGridViewRow.cs: If DGV is ReadOnly, we're also
9371           ReadOnly no matter what.
9372         * DataGridViewSelectedColumnCollection.cs,
9373           DataGridViewSelectedRowCollection.cs: Add an InternalAddRange that adds
9374           the items in reverse order (just as MS does...)
9375
9376 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
9377
9378         * Application.cs: Only release menustrips if Alt (MenuKey) is pressed by
9379         itself, not part of a mnemonic.  [Fixes bug #82378]
9380
9381 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9382
9383         * DataGridView.cs: BeginEdit: don't allow editing of readonly cells.
9384         * DataGridViewCell.cs: Implement ReadOnly better: the cell is ReadOnly if
9385           the DGV, the column, the row, or the cell itself is readonly.
9386
9387 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
9388
9389         * ThemeNice.cs: Use XplatUI.RunningOnUnix instead of checking
9390         OSVersion.Platform.
9391         * FileDialog.cs: Same.
9392         * TextRendered.cs: Same.
9393         * FolderBrowserDialog.cs: Same.
9394         * TextBoxBase.cs: Same.
9395         * Application.cs: Same.
9396         * Cursors.cs: Same.
9397         * ThemeClearLooks.cs: Same.
9398
9399 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
9400
9401         * XplatUI.cs: Added RunningOnUnix property to be used by controls
9402         instead of duplicating these checks everywhere.
9403         * FileDialog.cs: Use case-insensitive comparison for populating the
9404         DirComboBox when not running on unix. Fixes bug #82385.
9405         * OpenFileDialog.cs: to match MS, change label of DirComboBox to 
9406         "Look in".
9407
9408 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9409
9410         * DataGridView.cs: SelectedRows: we need to check if selectionMode is
9411           FullRowSelect (not FullColumnSelect). Fixes #81075. Implemented
9412           BeginEdit, EndEdit, SetSelected<Cell|Row|Column>Core. Implemented row,
9413           cell and column selection with ctrl and shift pressed. Call the correct
9414           BeginEdit/EndEdit whenever we start/end editing. Move painting code to
9415           the corresponding virtual method (PaintBackground to paint background,
9416           etc).
9417         * DataGridViewCell.cs: Implement Selected correctly, we're selected if
9418           either the column, row or the cell itself is selected.
9419         * DataGridViewRowCollection.cs: Use DGV.OnRowsAddedInternal instead of
9420           OnRowsAdded.
9421         * DataGridViewRow.cs: Moved some of the painting code from DataGridView
9422           here. When the row is selected, don't select all cells. Each cell now
9423           queries the row to see if the row is selected.
9424
9425 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9426
9427         * DataGridViewColumn.cs: Throw if the SortMode conflicts with DataGridView's
9428           SelectionMode.
9429
9430 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9431
9432         * ListView.cs: In ListViewItemsCollection check that owner is
9433         not null before trying to access it (this happens quite often
9434         using Groups). Also don't duplicate calls by calling CollectionChanged
9435         method.
9436
9437 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
9438
9439         * ToolStrip.cs: Record if we were activated by mouse or keyboard.  Redraw
9440         when we are dismissed to clear keyboard mnemonics.
9441         * MenuStrip.cs, ToolStripDropDown.cs, ToolStripItem.cs, 
9442         ToolStripMenuItem.cs: Record if we were activated by mouse or keyboard.
9443         * ToolStripItemTextRenderEventArgs.cs: Draw mnemonic underlines if menu
9444         was activated by keyboard or the OS tells us to always draw them.
9445         * ToolStripManager.cs: Setup storage for activated by mouse or keyboard.
9446         [Fixes bugs #82376, #82377]
9447
9448 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
9449
9450         * Control.cs: If no one accepts a mnemonic, let the MenuStrip have a 
9451         shot at having it because Alt was pressed.
9452         * MenuStrip.cs: When handling Alt, don't select a SystemMenuItem, select
9453         the first real menu item.
9454         * ToolStrip.cs: Don't crash when looking for a ToolStripItem to handle
9455         a mnemonic if Text is null.
9456         [Fixes bug #82374]
9457
9458 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9459
9460         * ListView.cs: In ListViewItemCollection.AddItem, don't do a linear
9461         search do check whether the item is already contained in the
9462         collection or not; instead check if the owner of the item is the same
9463         as ours. Also, remove a redundant check in the same method. 
9464
9465 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
9466
9467         * Control.cs: Allow the clip region to be set back to null.
9468         * XplatUIWin32.cs: If we are sent a null clip region, use IntPtr.Zero.
9469         [Fixes button still showing up in bug #82370 when Show Through is turned off]
9470
9471 2007-08-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9472
9473         * GridEntry.cs: Add a null check.
9474         * PropertyGrid.cs: When checking for existing grid entries, ignore category
9475           entries. Fixes #82297.
9476
9477 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
9478
9479         * OwnerDrawPropertyBag.cs: Make the serialization constructor protected
9480         for 2.0.
9481
9482 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
9483
9484         * ListBox.cs: Implement ScaleControl.
9485
9486 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9487
9488         * Form.cs: Add a few ActiveMenu null checks. ActiveMenu might be null if we
9489           have a menu strip.
9490         * MdiWindowManager.cs: Don't create a maximized menu if the child or it's
9491           parent has a menu strip. Fixes #81689.
9492
9493 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9494
9495         * ToolTip.cs: We don't get mouse events on all platforms in the exact same
9496           moments, so apply some fuzzy logic to determine if the mouse is still
9497           inside a control or not. Fixes #82288 (for the third time).
9498
9499 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9500
9501         * Control.cs: CreateControl: create implicit children as well. Fixes #82344.
9502           Don't create the child if it has been disposed already (may happen if
9503           the user closes the form the Load event).
9504
9505 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9506
9507         * ToolTip.cs: If ReshowDelay is 0, show the tooltip immediately. Fixes
9508           #82288.
9509
9510 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9511
9512         * Control.cs: Add a null check in OnParentBindingContextChanged. The parent
9513           might call us after we've been destroyed, in which case our own private
9514           parent field is null. Fixes #82326.
9515
9516 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
9517
9518         * ToolStripDropDown.cs: Fix a failing test on X11 by adding a null
9519         check for setting the dropdown's owner.
9520
9521 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
9522
9523         * MdiClient.cs: Fix some failing tests on X11 by adding a null check
9524         before removing system menu items.
9525
9526 2007-08-02  Jonathan Pobst  <monkey@jpobst.com>
9527
9528         * MdiClient.cs, MdiWindowManager.cs: Support 2.0 Mdi MenuStrip
9529         folding.
9530         * MdiControlStrip.cs: Added.  These are the menu items used in mdi
9531         folding.
9532         * ToolStrip.cs: Add a null check to mnemonics.
9533         * ToolStripDropDownMenu.cs: When using a SystemMenuItem, there is
9534         no ConnectedArea.
9535         [Fixes most of bug #81689]
9536
9537 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9538
9539         * PropertyGrid.cs: Add a null-check. Fixes #82289/SVGPad.
9540
9541 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9542
9543         Use InitialDelay if ReshowDelay is zero. Fixes #82288.
9544
9545 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9546
9547         * DataGridViewCell.cs: EditType: returns
9548           DataGridViewTextBoxEditingControl always.
9549
9550 2007-08-01  Jonathan Pobst  <monkey@jpobst.com>
9551
9552         * TextRenderer.cs: Remove the LineLimit string format flag from the
9553         DrawString fallback method so that things like buttons that aren't
9554         tall enough to draw a full line will still draw part of the text.
9555         [Fixes part of bug #82272]
9556
9557 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9558
9559         * DataGridView.cs: Implemented AutoResizeColumn(s).
9560         * DataGridViewCellStyle.cs: Added SetAlignment, fills in a StringFormat
9561           according to the Alignment.
9562         * DataGridViewColumnHeaderCell.cs, DataGridViewTextBoxCell.cs:
9563           Implement alignment and padding when painting.
9564         * DataGridViewRow.cs: SetValues: Don't create a cell if it already
9565           exists.
9566         * DataGridViewCell.cs: Implement BorderWidths in the most primitive
9567           way.
9568         * DataGridViewColumnCollection.cs: Raise OnColumnAdded on the DGV when
9569           a column is added.
9570
9571 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
9572
9573         * TextBoxBase.cs: Use Control.ExplicitBounds instead of explicit_bounds,
9574         which is internal.
9575
9576 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
9577
9578         * ToolStrip.cs: Stub out drag and drop methods, fix some corcompare stuff,
9579         hide GetPreferredSize from public API.
9580         * ToolStripDropDown.cs: Override AllowItemReorder, fix AccessibleObject.
9581         * ToolStripItem.cs: Stub out drag and drop methods and events.
9582         * ToolStripManager.cs: Stub out Save/LoadSettings.
9583         * ToolStripOverflow.cs: Use renamed ToolStrip.GetPreferredSize.
9584         * ToolStripPanel.cs: Fix corcompare error.
9585         * ToolStripPanelRow.cs: Use renamed ToolStrip.GetPreferredSize.
9586         * ToolStripSplitButton.cs: Fix AccessibleObject stuff.
9587         * ToolStripSplitStackLayout.cs: Use renamed ToolStrip.GetPreferredSize.
9588
9589 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
9590
9591         * TextBoxBase.cs: In our new GetPreferredSizeCore, return the explicit
9592         bounds height instead of PreferredHeight.  Puts things back the way 
9593         they were for height while still fixing the width.  Fixes broken unit
9594         tests.
9595
9596 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9597
9598         * Binding.cs: Implement 2.0 constructors and add a null check.
9599
9600 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9601
9602         * DataGridViewRowCollection.cs: Allow a null DGV in the constructor,
9603           and fix row index (off by one).
9604
9605 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9606
9607         * PropertyGridView.cs: Remove debug output.
9608
9609 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9610
9611         * Control.cs: We need to reset the is_created flags when the handle is
9612           destroyed. Fixes #82187.
9613         * XplatUIWin32.cs: In GetWindowRect don't offset screen coordinates to
9614           client coordinates if the window doesn't have a parent.
9615           Win32GetParent returns the parent or the owner, and for top-level
9616           windows with no parent (but with an owner) we were calculating the
9617           location from the location of the owner.
9618         * Form.cs: Remove incorrect fix for #82187. Don't raise OnLoad if the
9619           form has been disposed.
9620         * MdiClient.cs: Add a null-check.
9621
9622 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
9623
9624         * TextBoxBase.cs: TextBoxBase reports itself at AutoSize, but doesn't
9625         actually do auto-sizing.  Override the internal GetPreferredSizeCore 
9626         so we can provide an implementation that returns the current width
9627         and preferred height.  Allows anchor = right to work with TextBox 2.0.
9628         [Fixes bug #82233]
9629
9630 2007-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9631
9632         * ListView.cs: Add support for navigating items in Groups mode, by
9633         creating a big matrix containing all rows and cols of all groups. When
9634         are in other mode than Details, pressing Up should have a similar
9635         behaviour as that one of Down (moving to the next available column if
9636         current one doesn't have an item in the requested row). Also, don't
9637         proceed to use groups if ShowGroups is false.
9638         * ListViewGroup.cs: Add an internal int field to store the starting
9639         row of the group (used by the big matrix used for navigating the
9640         ListView).
9641         * ThemeWin32Classic.cs: Don't draw headers if ListView.ShowGroups is
9642         false.
9643
9644 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
9645
9646         * ToolStripDropDown.cs: When we do Show, start with the 
9647         DefaultDropDownDirection, but if our popup menu is going to off-screen,
9648         modify the direction to keep it on screen.  [Fixes bug #82210]
9649
9650 2007-07-29  Gert Driesen  <drieseng@users.sourceforge.net>
9651
9652         * FileDialog.cs: Accept any FilterIndex value, and store it
9653         unmodified. When FilterIndex is less than 1, or greater than number
9654         of filters, then default to first filter. Only add filter extension to
9655         file if user did not specifiy an extension. When type of dialog is
9656         OpenFileDialog and DefaultExt is set, then only use filter extension
9657         if: CheckFileExists is true and no file wih the default extension
9658         exists, or CheckFileExists is false, and user specified file does not
9659         exist. When CheckFileExists is true, then add first extension of 
9660         selected filter that matches existing file. Perform checks for
9661         existing file, overwrite and create after extension has been added to
9662         file name. When CheckFileExists is true and type is SaveFileDialog,
9663         then only consider first filter extension if DefaultExt is set.
9664         When CheckFileExists is true, then ignore DefaultExt if file with that
9665         extension does not exist. Also perform check for existing file when
9666         type is SaveFileDialog. Changed some field to constants.
9667
9668 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9669
9670         * ListView.cs: Take into account the region used by header
9671         control when doing the vertical scroll (this way we invalidate
9672         the precise area, and don't get any dirty one).
9673
9674 2007-07-27  Everaldo Canuto  <ecanuto@novell.com>
9675
9676         * FileDialog.cs: Check for valid filterIndex on button open/save. 
9677         Fixes #82184.
9678
9679 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9680
9681         * ListView.cs: Update some layout calculations in details view
9682         and clean the code in a pair of assignations.
9683
9684 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
9685
9686         * ComboBox.cs, ContainerControl.cs, DataGrid.cs, FontDialog.cs, Label.cs,
9687         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewItem.cs, MessageBox.cs,
9688         MonthCalender.cs, StatusBar.cs, ThemeClearlooks.cs, ThemeWin32Class.cs,
9689         ToolBar.cs, TreeView.cs: First pass at using thread-safe string measuring.
9690
9691 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
9692
9693         * TextRenderer.cs: Use [ThreadStatic] instead of locks to improve
9694         performance of thread-safe Graphic methods.  (Thanks rolf!)
9695
9696 2007-07-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9697
9698         * ListView.cs: When doing the layout calculations, don't calculate
9699         scroll bars before handle is created. This is unnecessary and also
9700         calculating them before handle creation item causes a number of random
9701         bugs (which begin to appear after Chris' big patch for handle creation
9702         fixes). 
9703
9704 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
9705
9706         * TextRenderer.cs: Create thread-safe versions of Graphics.MeasureString
9707         for things that don't have a Graphics object.  Currently, things just use
9708         the static Hwnd.bmp_g which is not thread safe.
9709
9710 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9711
9712         * Form.cs: ShowDialog: don't destroy handles if the dialog is a common
9713           dialog. Fixes #82187.
9714
9715 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9716
9717         * DataGridViewElement.cs: Initialize state.
9718         * DataGridView.cs: Forward a few Mouse events to cells. Add
9719           GetRowInternal and GetCellInternal that doesn't unshare rows.
9720           Implement GetCellDisplayRectangle. HitTest: if the row is shared,
9721           don't use the index, but look it up. Add
9722           DataGridViewControlCollection.RemoveInternal to remove controls
9723           that Remove won't remove (scrollbars, edit control).
9724         * DataGridViewColumn.cs: Initialize State correctly.
9725         * DataGridViewColumnHeaderCell.cs, DataGridViewComboBoxCell.cs,
9726           DataGridViewHeaderCell.cs, DataGridViewRowHeaderCell.cs: Started
9727           implementing this.
9728         * DataGridViewRowCollection.cs: Implemented shared rows.
9729         * DataGridViewRow.cs: Throw exceptions as MS do.
9730         * DataGridViewCell.cs: A few properties are implemented by a
9731           Get<Property> method, so move implementation there and remove the
9732           NIEX in the method. Add a bunch of OnXInternal that DataGridView
9733           calls when necessary.
9734         * DataGridViewComboBoxEditingControl.cs: Remove a few NIEX'es that just
9735           complicates matters.
9736         * DataGridViewCellCollection.cs: Add a GetCellInternal that doesn't
9737           unshare any rows.
9738
9739 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
9740
9741         * UpDownBase.cs: We cannot override SetBoundsCore for 2.0, which was relayout-ing
9742         the children controls.  Instead, we will just set up the proper docking for the
9743         children controls so we don't have to worry about it.  [Fixes bug #82188]
9744
9745 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
9746
9747         * TreeView.cs, NodeLabelEditEventArgs.cs, LabelEditTextBox.cs: Support edit
9748         canceling and correct Before/AfterLabelEdit properties as layed out in bug
9749         81847.  [Fixes bug #81847]
9750
9751 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
9752
9753         * Label.cs: If AutoSize = true and a width or height is set, ignore it and
9754         redo the autosize.  VS2005 defaults to setting the AutoSize, and then setting
9755         an explicit size based on the design-time size of the text.  Since our fonts
9756         may not match this explicit size, we tend to cut off the ends of people's labels.
9757
9758 2007-07-24  Jonathan Pobst  <monkey@jpobst.com>
9759
9760         * Menu.cs: Add some missing methods to MenuItemCollection.
9761
9762 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9763
9764         * DataGridView.cs: Added RowTemplateFull, creates a row from the templates in the columns.
9765         * DataGridViewBand.cs: DefaultHeaderCellType: initialize correctly. Resizable: if not set, check DGV.
9766         * DataGridViewColumn.cs: InheritedAutoSizeMode: if not set, check DGV. Resizable: delegate to base class. ToolTipText: Never return null. Initialize a few other properties correctly.
9767         * DataGridViewColumnCollection.cs: Add: Default column is a TextBoxColumn.
9768         * DataGridViewComboBoxCell.cs: Started implementing this, lots left still.
9769         * DataGridViewElement.cs: State defaults to Visible.
9770         * DataGridViewRowCollection.cs: Add: creates the new row based on a template.
9771         * DataGridViewTextBoxColumn.cs: SortMode: delegate to base class, but initialize to Automatic. ToString: implement correctly.
9772
9773 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9774
9775         * Control.cs: Minor 1.1 corcompare fix.
9776
9777 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
9778
9779         * LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
9780         TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
9781
9782 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9783
9784         * DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,
9785           DataGridViewImageColumn.cs, DataGridViewSelectedCellCollection.cs,
9786           DataGridViewComboBoxCell.cs, DataGridViewLinkCell.cs,
9787           DataGridViewSelectedColumnCollection.cs,
9788           DataGridViewSelectedRowCollection.cs: Corcompare work.
9789
9790 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
9791
9792         * PrintDialog.cs: Stub UseEXDialog.  I chose to stub this because
9793         it is autoset by VS2005 designer and the effect is barely noticeable.
9794
9795 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
9796
9797         * TreeView.cs: Implement HitTest.
9798
9799 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9800
9801         * DataGridViewTextBoxCell.cs: Use DGV.EditControlInternal instead of
9802           manually adding and removing the control from the Controls
9803           collecftion.
9804         * DataGridView.cs: Implement DataGridViewControlCollection. Add an
9805           EditingControlInternal property that tracks the editing control.
9806           Always keeping the scrollbars in the Controls collection, as MS
9807           testing confirms is the right behaviour.
9808
9809 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9810
9811         * ScrollableControl.cs: Fix implementation of AutoScrollPosition
9812           according to MSDN and new test.
9813
9814 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
9815
9816         * TreeNode.cs: Implement ToolTipText.
9817         * TreeView.cs: Implement tooltips, NodeMouse* events.
9818
9819 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
9820
9821         * TreeView.cs: Implement OnNodeMouseClick and OnNodeMouseDoubleClick.
9822
9823 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
9824
9825         * TreeNode.cs: Implement ContextMenu, ContextMenuStrip, and Level.
9826         * TreeView.cs: Use the node's contextmenu[strip] if applicable.
9827
9828 2007-07-20  Ivan N. Zlatev  <contact@i-nz.net>
9829
9830         * Control.cs, Form.cs, ContainerControl.cs,
9831         ScrollableControl.cs, ButtonBase.cs:  Added ShouldSerialize
9832         for misc properties.
9833
9834 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
9835
9836         * TreeNode.cs: Implement StateImageIndex and StateImageKey.
9837         * TreeView.cs: Implement StateImageList.
9838
9839 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9840
9841         * Form.cs: Don't check if the current form is the active form before
9842           activating it. Fixes #81904.
9843
9844 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9845
9846         * Form.cs: Don't check if the current form is the active form before
9847           activating it. Fixes #81904.
9848
9849 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9850
9851         * TreeView.cs: Apply patch from Tyron (tmm@aon.at). Fixes #81847.
9852
9853 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9854
9855         * Form.cs: Don't try to position the form after loading if the form was
9856           disposed. Fixes #81969.
9857
9858 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9859
9860         * PropertyGrid.cs, PropertyGridView.cs: Implemented 2.0 methods and
9861           properties. Had to change ToolBar into ToolStrip, which required a
9862           few #ifs.
9863
9864 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9865
9866         * PropertyGrid.cs: PropertyToolBar: Redraw the entire toolbar when it's
9867           resized, fixes part of #79829 (vertical lines in toolbar).
9868           PropertyGrid: Refactored Populate* to something that's easier to
9869           follow at least for me, as well as splitting it up into several new
9870           methods, required to update only subitems when something has
9871           changed by a popup editor or listbox. Don't use events to check
9872           when any values are changed, since the events are unreliable (we're
9873           changing the objects the events are registered with, and if the
9874           event handling requires the objects to be immutable (objects stored
9875           in hashtables for instance), the events will never be raised).
9876         * PropertyGridView.cs: Call PropertyGrid.PropertyValueChangedInternal
9877           everytime we change a value, since events are unreliable.
9878           DropDownButtonClicked: For the same reason don't compare objects to
9879           check if it has changed or not, it would require all objects to
9880           derive Equals. Fix dialog location on windows, MS is doing weird
9881           things when creating parented forms.
9882         * GridEntry.cs: Add a SelectedObject setter.
9883
9884 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
9885
9886         * TreeNode.cs: Add some corcompare attributes.
9887         * TreeNodeCollection.cs: Implement 2.0 stuffs.
9888         * TreeView.cs: Implement some 2.0 stuffs.
9889
9890 2007-07-18  Andreia Gaita  <avidigal@novell.com>
9891
9892         * WebBrowser.cs, WebBrowserBase.cs: add some more MonoTODOs now
9893         for moma.
9894
9895 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
9896
9897         * ListBox.cs: Implement custom tab offsets.
9898
9899 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
9900
9901         * ToolStripContentPanel.cs: Support System renderer.
9902         * ToolStripControlHost.cs: Set RightToLeft to default to No.
9903
9904 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
9905
9906         * ScrollableControl.cs: Don't mess up the user's explicit bounds.
9907
9908 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
9909
9910         * CheckBox.cs: Chain TextAlign to base implementation instead of
9911         maintaining another one.
9912
9913 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
9914
9915         * ButtonBase.cs: Fix an incorrect string constant.
9916
9917 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
9918
9919         * TextRenderer.cs: Use the static Graphics context in Hwnd instead
9920         of creating one for measuring strings.
9921
9922 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
9923
9924         * ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownMenu.cs: 
9925         Implement MaxItemSize.
9926
9927 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
9928
9929         * Control.cs: Remove per-control 1x1 Bitmap and Graphics context used
9930         for DeviceContext.  Instead, use the static one available in Hwnd.
9931         Informal tests show this saves about 500k on formtest.exe.
9932
9933 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
9934
9935         * ContainerControl.cs: Implement 2.0 AutoScaling.
9936
9937 2007-07-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9938
9939         * ComboBox.cs: Work around bug #82120 (bug in mcs).
9940
9941 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
9942
9943         * ThemeWin32Classic.cs: Allow a Flat button to be Focused and Entered.
9944         Darken the focus color.
9945
9946 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
9947
9948         * ListBox.cs: When measuring items, if it's a CheckedListBox, add room
9949         for the checkbox.
9950         * ThemeWin32Classic.cs: Make the checkbox bigger in a CheckedListBox and use
9951         X, Y instead of a rect for drawing text.
9952         - For ControlPaint.DrawCheckBox, center the check a little better when the
9953         checkbox is odd width.  When drawing a flat checkbox, use a white background
9954         when state != inactive.
9955         [Fixes bugs #82097, 82100]
9956
9957 2007-07-16  Gert Driesen  <drieseng@users.sourceforge.net>
9958
9959         * ListControl.cs: When changing CurrencyManager, disconnect event
9960         handlers from previous one. Fixes bug #81771. Code formatting.
9961
9962 2007-07-15  Andreia Gaita <avidigal@novell.com>
9963
9964         * PrintPreviewControl.cs: Remove extraneous Invalidate calls. Separate
9965         full preview invalidation from layout invalidation, and only invalidate
9966         the layout when setting zoom or other properties. Invalidation should
9967         always be done even when resetting properties with the same values as
9968         what is there. Fixes #81744 and #79830.
9969
9970 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9971
9972         * ListView.cs: Implement initial support for Groups. Split some of the
9973         LayoutIcons code to render a partial list of the items (needed by
9974         items contained in ListViewGroup instances). Let the
9975         ListViewItemsCollection.ListView property be modifiable (needed when
9976         using Groups, too).
9977         * ListViewGroup.cs: Use a Bounds property rather than a Location
9978         one. Also invalidate the bounds when they get changed.
9979         * ThemeWin32Classic.cs: When drawing items, also draw the group header
9980         if ListView.Groups.Count is bigger than 0. Add a DrawListViewGroupHeader
9981         method as well.
9982
9983 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9984
9985         * ListView.cs: When space gets pressed and CheckBoxes is true, 
9986         don't invoke the Begin and EndUpdate methods. We are generating 
9987         a redraw of the entire control without need to do so.
9988
9989 2007-07-13  William Holmes <billholmes54@gmail.com> 
9990
9991         * Control.cs: Changing logic in FindFlatForward and 
9992           FindFlatBackward to handle multiple Controls with 
9993           the same TabIndex.  
9994           This fixes bug 81687.
9995
9996 2007-07-13  Jonathan Pobst  <monkey@jpobst.com>
9997
9998         * OSFeature.cs: Enable IsPresent.
9999
10000 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10001
10002         * Control.cs: Don't do anything in WmShowWindow if the control has been
10003           disposed. We can get WM_SHOWWINDOW after a control is disposed: a
10004           control is created, put on a form, the control is disposed (the
10005           form is never shown), and then we get a MapNotify, triggering a
10006           WM_SHOWWINDOW.
10007         * Form.cs: Exclude the current form when sending Deactivate to all
10008           MdiChildren.
10009         * NativeWindow.cs: Set WindowCreating to null as soon as possible,
10010           there was a race condition because assigning the handle raises
10011           events, we can get more messages, therefore trying to assign the
10012           handle again, which would fail if any of those event handlers
10013           closed/disposed the control.
10014
10015 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10016
10017         * Form.cs: Make the fix for #80775 windows-only (fixes #81957).
10018
10019 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
10020
10021         * SystemInformation.cs, Theme.cs, XplatUI.cs, XplatUIDriver.cs,
10022         XplatUIWin32.cs: Implement SystemInformation 2.0 properties.
10023
10024 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10025
10026         * DateTimePicker.cs: If there's no part format specifier, return an
10027           empty string.
10028
10029 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
10030
10031         * FlatButtonAppearance.cs: Throw NotSupportedException for a
10032         Transparent BorderColor.
10033
10034 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10035
10036         * DataGridView.cs, TextControl.cs, ProgressBar.cs, PrintDialog.cs,
10037           MessageBox.cs, ButtonBase.cs, PageSetupDialog.cs, NumericUpDown.cs,
10038           X11Dnd.cs, Binding.cs, DataGrid.cs, AxHost.cs,
10039           LinkLabelLinkClickedEventArgs.cs, TextRenderer.cs, Label.cs,
10040           LinkLabel.cs, TreeNode.cs, BindingSource.cs, TabPage.cs,
10041           TextBoxBase.cs, BindingNavigator.cs, Application.cs,
10042           ToolStripPanel.cs, TabControl.cs, ThemeClearlooks.cs, TreeView.cs:
10043           Remove warnings.
10044         * X11Structs.cs: Remove warnings, add ToString implementations.
10045
10046 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10047
10048         * XplatUIX11.cs: Translate min/max size according to the actual min/max
10049           size, and not the current size. Fixes #81798.
10050
10051 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10052
10053         * XplatUIX11.cs: Fix #80822 again (DefWndProc can be reached before
10054           XplatUI.CreateWindow returns, in which case the hwnd isn't assigned
10055           to the control yet).
10056
10057 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10058
10059         * PropertyGridTextBox.cs: Add a method that sends any forwarded
10060           mousedowns to the contained textbox.
10061         * X11Structs.cs: More ToString implementation.
10062         * PropertyGridView.cs: Forward any mousedowns to the textbox, fixes
10063           #81791.
10064
10065 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10066
10067         * PropertyGridView.cs: Add a null-check, fixes a few tests.
10068
10069 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
10070
10071         * TableLayoutPanelCellPosition.cs: TypeConverter.
10072
10073 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10074
10075         [ Fixes #79761]
10076         
10077         * PropertyGridTextBox.cs: Propagate any color changes to all contained
10078           controls.
10079         * PropertyGridView.cs: A few color fixes.
10080
10081 2007-07-10  Jackson Harper  <jackson@ximian.com>
10082
10083         * TextControl.cs: Remove some old unused text formatting stuff.
10084
10085 2007-07-10  Jackson Harper  <jackson@ximian.com>
10086
10087         * TreeView.cs: Update full row select invalidation to match the
10088         newer DrawSelection... method.
10089         - Make sure to invalidate the entire width when selecting a new
10090         node, if we have full row selection enabled.
10091
10092 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10093
10094         * PropertyGridView.cs: Fix for #81800, makes text show up on initial
10095           display of properties again.
10096
10097 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
10098
10099         * ListBox.cs: Add IntegerCollection and Add, Clear, Remove
10100         to existing collections.
10101
10102 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10103
10104         * AccessibleObject.cs, RadioButton.cs: Fix some base classes
10105         that changed between 1.1 and 2.0.
10106
10107 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10108
10109         * PowerStatus.cs: Added.  This is just a data class, it is filled
10110         in by SystemInformation.
10111
10112 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10113
10114         * Message.cs: Add op_Equality and op_Inequality.
10115
10116 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10117
10118         * MenuStrip.cs: Finish corcompare work.
10119
10120 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10121
10122         * LinkArea.cs: Add op_Equality and op_Inequality.
10123
10124 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10125
10126         * Application.cs: Add MessageLoopCallback delegate.
10127
10128 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10129
10130         * ListBox.cs: First set of 2.0 stuffs.
10131
10132 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
10133
10134         * Control.cs: Make an internal Height property we can override
10135         without messing up the public API.
10136         * ListBox.cs: Override HeightInternal to always return the size
10137         the user set.  [Fixes bug #80466]
10138
10139 2007-07-08  Jonathan Pobst  <monkey@jpobst.com>
10140
10141         * TableLayoutPanel.cs: Add a null check so we don't NRE trying to
10142         paint cell borders if we haven't calculated where they go yet.
10143         [Fixes bugs #82040 and #82041]
10144
10145 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10146
10147         * ListView.cs: In Details view, set the location of item_control
10148         in the (0,0) position (and the header_control is thus on the
10149         item_control). This way the Bounds of the Items are relative to the
10150         ListView control (before this, they had a Bounds value without the
10151         header_control offset, which wasn't matching .Net). Fixes #82004.
10152
10153 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10154
10155         * ListControl.cs: When DataSource is set to null, pass an empty
10156         array of object to SetItemsCore. This is done to clean the items
10157         in the ListContol children. Fixes #81788.
10158
10159 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
10160
10161         * ListControl.cs: Add 2.0 stuffs.
10162
10163 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
10164
10165         * Label.cs: Finish up 2.0 stuffs.  Replace calls to Refresh with Invalidate,
10166         Refresh is overkill for just about every repaint request.
10167
10168 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
10169
10170         * ToolStripItem.cs: TextDirection getter handles looking up Inherit for us,
10171         so remove my custom Get method and fix the property getter.
10172
10173 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
10174
10175         * Label.cs: DefaultMargin for 2.0.
10176
10177 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
10178
10179         * ComboBox.cs: Override IsInputCharInternal and return true.  Fixes 
10180         reported issue where other controls with mnemonics would steal strokes
10181         from a selected ComboBox.
10182
10183 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
10184
10185         * ScrollOrientation.cs: Make internal for 1.1.
10186         * ScrollEventArgs.cs: Add 2.0 stuffs.
10187
10188 2007-07-05  Jonathan Pobst  <monkey@jpobst.com>
10189
10190         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
10191         ToolStripItem.cs, ToolStripItem.cs, ToolStripItemTextRenderEventArgs.cs,
10192         ToolStripRenderer.cs, ToolStripSeparator.cs: Implement TextDirection.
10193
10194 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10195
10196         * ListViewItem.cs: Implement the small 2.0 GetSubItemAt method.
10197
10198 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10199
10200         * ListView.cs: Implement the so-incredibly broken 2.0 
10201         VirtualItemsSelectionRangeChanged event.
10202
10203 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10204
10205         * ListView.cs: When enter is pressed and selection is non empty,
10206         an OnItemActivate event must be fired.
10207
10208 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10209
10210         * ListView.cs: Store the FocusedItem information as an
10211         int instead of a ListViewItem (needed by VirtualMode).
10212         Update the calls to SetFocusedItem to pass an index instead of
10213         an item.
10214         * ListViewItem.cs: Likewise. Also, in VirtualMode retrieve
10215         the Focused state from the owner ListView. 
10216
10217 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10218
10219         * ListView.cs: Set ListView.focused_item from ListViewItem.Focused
10220         property. Also, invalidate previous focused item in the mentioned
10221         property (match .Net).
10222
10223 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10224
10225         * ListView.cs: Implement 2.0 FocusedItem property setter.
10226
10227 2007-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10228
10229         * ListView.cs: Implement 2.0 TopItem property setter.
10230
10231 2007-07-03  Jonathan Pobst  <monkey@jpobst.com>
10232
10233         * StatusStrip.cs: The default renderer is System.
10234         * ToolStrip.cs, ToolStripManager: Now that we have System renderer, use it 
10235         if the user specifies it.
10236         * ToolStripDropDown.cs: Don't reset our Renderer on changing OwnerItem
10237         if we are ManagerRenderMode.
10238         * ToolStripMenuItem.cs: Calculate our text color better.
10239         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Move some stuff
10240         from Professional to the base class based off working with the System renderer.
10241         * ToolStripSystemRenderer.cs: Added.
10242
10243 2007-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10244
10245         * ListView.cs: I'm so lame - the real name is HitTest, not HitInfo.
10246
10247 2007-07-02  Jonathan Pobst  <monkey@jpobst.com>
10248
10249         * ToolTip.cs: Implement 2.0 Tag property.
10250
10251 2007-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10252
10253         * ListView.cs: Implement 2.0 HitTest methods.
10254
10255 2007-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10256
10257         * ListViewItem.cs: Add a 2.0 bool Hot property, to tell whether the
10258         item is under the pointer or not (sugar). Also remove the TODO
10259         regarding to the cursor changes in OneClick activation.
10260         * ThemeWin32Classic.cs: When HotTracking is true and we are drawing
10261         the subitems use the parent's HotFont if UseItemStyleForSubItems is
10262         true; otherwise don't show the underline style.
10263
10264 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10265
10266         * ListView.cs: In ItemControl.ItemsMouseMove, refactor
10267         the code to retrieve the item at position only one time. Also
10268         change cursor when Activation is ItemActivation.OneClick as well
10269         as invalidate the item if HotTracking is true (to show/hide the
10270         underline style). Add an internal HotItemIndex property to retrieve
10271         the current hot item's index.
10272         * ListViewItem.cs: Add an internal HotFont property to cache the
10273         font used when HotTracking is true and the pointer moves within the
10274         item's borders.
10275         * ThemeWin32Classic.cs: When drawing the item's text, use Font or
10276         HotFont depending on the hot state of the item.
10277
10278 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10279
10280         * ListView.cs: Implement 2.0 HotTracking property.
10281
10282 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
10283
10284         * ToolStripControlHost.cs: If our hosted control never got created,
10285         don't try to dispose it.  [Fixes bug #81909]
10286
10287 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
10288
10289         * TableLayoutPanel.cs: Implement ScaleCore, ScaleControl.
10290
10291 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
10292
10293         * TableLayoutPanel.cs: Implement CellBorderStyle.  [Fixes bug #81884]
10294
10295 2007-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10296
10297         * ThemeWin32Classic.cs: In OwnerDraw mode draw subitems only for 
10298         Details view.
10299         * DrawListViewColumnHeaderEventArgs.cs:
10300         * DrawListViewSubItemEventArgs.cs: Add padding to the bounds when drawing text
10301         using the DrawText () methods.
10302
10303 2007-06-19  Jonathan Pobst  <monkey@jpobst.com>
10304
10305         * ToolStripProfessionalRenderer.cs: Put back clearing a ToolStripDropDown's
10306         background which got erased in my changes yesterday.
10307
10308 2007-06-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10309
10310         * ListViewItem.cs: Actually set bounds for subitems in Details view
10311         (2.0 feature).
10312         * ThemeWin32Classic.cs: Refactor the drawing code for subitems, so we
10313         can invoke from the owner draw routines if we need it. Also, add
10314         support for Owner draw in Details view.
10315
10316 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
10317
10318         * ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripLabel.cs,
10319         ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs: Respect the
10320         ShowImageMargin setting, properly align text in a ToolStripLabel
10321         hosted on a ToolStripDropDown.
10322
10323 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
10324
10325         * ToolStrip.cs, ToolStripContentPanel.cs, ToolStripDropDownMenu.cs,
10326         ToolStripProfessionalRenderer.cs: Refactor and clean up some rendering code.
10327
10328 2007-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10329
10330         * DrawListViewSubItemEventArgs.cs: Actually implement its methods.
10331
10332 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
10333
10334         * ToolStripLabel.cs: If the label is on a dropdown, adjust the text
10335         location to match ToolStripMenuItems.
10336
10337 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10338
10339         * DrawListViewColumnHeaderEventArgs.cs:
10340         * ThemeWin32Classic.cs: Implement 2.0 OwnerDraw support for
10341         column headers in ListView. 
10342
10343 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
10344
10345         * UserControl.cs: Implement AutoSize.
10346
10347 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10348
10349         * DrawListViewItemEventArgs.cs:
10350         * ListView.cs:
10351         * ThemeWin32Classic.cs: Implement basic support for 2.0 OwnerDraw in
10352         ListView.
10353
10354 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
10355
10356         * ToolStripDropDownItemAccessibleObject.cs: Added.
10357         * ToolStripDropDownItem.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
10358         ToolStripOverflow.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
10359         ToolStripProgressBar.cs, ToolStripSeparator.cs, ToolStripSplitButton.cs,
10360         ToolStripTextBox.cs: corcompare work.
10361
10362 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
10363
10364         * OSFeature.cs, StatusStrip.cs, TabControl.cs, TableLayoutSettings.cs,
10365         TableLayoutStyle.cs, TableLayoutCollection.cs, ToolStripContentPanel.cs,
10366         ToolStripControlHost.cs, ToolStripDropDown.cs, ToolStripDropDownButton.cs:
10367                 corcompare.
10368
10369 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
10370
10371         * OSFeature.cs: Add IsPresent.
10372         * PrintPreviewControl.cs: Add RightToLeft.
10373         * SplitContainer.cs: Add AutoScrollOffset, ScaleControl.
10374         * SplitterPanel.cs: Add AutoSizeMode.
10375
10376 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
10377
10378         * LayoutEventArgs.cs: Add 2.0 AffectedComponent.
10379         * MdiClient.cs: Add 2.0 ScaleControl.
10380         * NativeWindow.cs: Implement 2.0 interface IWin32Window.
10381         * NumericUpDownAccelerationCollection.cs: Add [ListBinding].
10382
10383 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
10384
10385         * Form.cs: Implement some scaling methods, stub some RTL methods,
10386         corcompare work.
10387
10388 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
10389
10390         * Control.cs: corcompare work.
10391         * FlatButtonAppearance.cs, FolderBrowserDialog.cs: Add TypeConverters.
10392
10393 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
10394
10395         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Implement
10396         ControlPaint 2.0 stuffs.
10397
10398 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10399
10400         * ThreadExceptionDialog.cs: Add 2.0 stuffs.
10401
10402 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10403
10404         * UpDownBase.cs: Add 2.0 stuffs.
10405
10406 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10407
10408         * NumericUpDown.cs: Add 2.0 stuffs.
10409
10410 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10411
10412         * NotfiyIcon.cs: Add MouseDoubleClick event, hook up MouseClick event.
10413
10414 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10415
10416         * ErrorProvider.cs: Implement 2.0 stuffs.
10417
10418 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10419
10420         * DomainUpDown.cs: Implement 2.0 stuffs.
10421
10422 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10423
10424         * CheckedListBox.cs: Fix RefreshItems signature.
10425
10426 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
10427
10428         * PictureBox.cs: Implement 2.0 stuffs.
10429
10430 2007-06-12  Andreia Gaita  <avidigal@novell.com>
10431         
10432         * TabControl.cs: Check if there are tabpages before checking
10433         the selected index - fix #81802 (font changes raise a ResizeTabs
10434         call on controls.add, which blew up nicely with no tabpages)
10435
10436 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10437
10438         * ListView.cs:
10439         * ListViewItem.cs: Implement 2.0 ItemSelectionChanged event.
10440
10441 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10442
10443         * ListView.cs:
10444         * ListViewItem.cs: In VirtualMode the selection information
10445         resides in the ListView, rather than in the Items. Also, throw
10446         InvalidOperationExceptions when VirtualMode is being used and
10447         CheckedItemCollection is accessed.
10448
10449 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
10450
10451         * ComboBox.cs: Add ScaleControl.
10452
10453 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
10454
10455         * ButtonBase.cs: ButtonBaseAccessibleObject.State should not be visible to 1.1.
10456
10457 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
10458
10459         * GroupBox.cs: Add 2.0 stuffs.
10460
10461 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
10462
10463         * Panel.cs: Add autosize properties/event.
10464
10465 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
10466
10467         * Control.cs:
10468         - When we remove a control, remove it from the collection before performing the layout.
10469         - Setup an internal property for explicit_bounds.
10470         - Don't let the UpdateBounds in CreateHandle overwrite our explicit bounds.
10471         - Perform a layout when we set a new AutoSizeMode.
10472
10473 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
10474
10475         * ScrollableControl.cs: Add 2.0 stuffs.
10476
10477 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
10478
10479         * ScrollBar.cs: Add 2.0 stuffs.
10480
10481 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
10482
10483         * Splitter.cs: Add 2.0 stuffs.
10484
10485 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
10486
10487         * SplitContainer.cs: Apply patch from Neil Cawse <neilcawse@geotab.com>
10488         to have BindingContext simply use base implementation.
10489
10490 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
10491
10492         * ColumnHeader.cs: corcompare fix.
10493
10494 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
10495
10496         * Button.cs: corcompare fixes.
10497         * ButtonBase.cs: corcompare fixes, add ButtonBaseAccessibleObject.State.
10498
10499 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
10500
10501         * Button.cs: Override GetPreferredSizeCore.
10502         * ButtonBase.cs: PerformLayout after changing properties that can affect
10503         AutoSize.  Simplify some mouse/keyboard code.
10504         * Control.cs: PerformLayout after changing Padding if AutoSize = true.
10505         * MouseEventArgs.cs: Make Location internal for 1.1.
10506         * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool) internal for 1.1.
10507         * Theme.cs: Add CalculateButtonAutoSize.
10508         * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
10509
10510 2007-06-05  Miguel de Icaza  <miguel@novell.com>
10511
10512         * TreeNodeCollection.cs: Applied patch from Neil Cawse <neilcawse@geotab.com>
10513
10514 2007-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10515
10516         * ListViewItem.cs: We can't cache Bounds in VirtualMode 
10517         since we can get different item instances every time we retrieve it.
10518
10519 2007-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10520
10521         * ListView.cs: Work around for #81602, since an unkown an pretty
10522         infrequent condition appears only in some systems (old linux boxes, it
10523         seems).
10524
10525 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
10526
10527         * Button.cs: Completely reformat and a little refactor to bring
10528         this closer to Mono circa 2007.
10529
10530 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
10531
10532         * CheckBox.cs, Form.cs, RadioButton.cs: Change call to ButtonBase.Redraw
10533         to be ButtonBase.Invalidate.
10534
10535 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
10536
10537         * ButtonBase.cs: GetPreferredSize is 2.0 only.  Fixes build.
10538
10539 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
10540
10541         * ButtonBase.cs: Completely reformat and a little refactor to bring
10542         this closer to Mono circa 2007.
10543
10544 2007-06-01  Everaldo Canuto  <ecanuto@novell.com>
10545
10546         * Label.cs: Fixes preferred sizes for 2.0 profile, also adjust some
10547         values for autosize. Fixes #80137.
10548
10549 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
10550
10551         * Control.cs: Don't perform layout when AutoSize changes.
10552         * Form.cs: Perform layout in AutoSize override.  Don't set ClientSize
10553         directly when autosizing, use SetBounds with BoundsSpecified.None.
10554         Fixes unit tests my last commit broke.
10555
10556 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
10557
10558         * Control.cs: Perform layout when AutoSize changes.
10559         * Form.cs: Implement AutoSizing.
10560
10561 2007-06-01  Chris Toshok  <toshok@ximian.com>
10562
10563         * DataGrid.cs: remove the XXX'ed check at the top of
10564         ProcessGridKey.  fixes #80464.
10565
10566 2007-06-01  Chris Toshok  <toshok@ximian.com>
10567
10568         * DataGridTextBoxColumn.cs: TextBox.TextChanged event handler
10569         adding idempotent (add/remove in Edit()), and also make sure we
10570         don't add it until after we set the text, so it's not tripped in
10571         Edit().  Fixes unit test regression.
10572
10573 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
10574
10575         * Control.cs: In UpdateBounds, only recalculate anchor distances if the
10576         change is user explicit, not when the layout engine moves stuff.  Fixes
10577         anchoring to bottom and right.  [Fixes bug #81790]
10578
10579 2007-06-01  Andreia Gaita  <avidigal@novell.com>
10580
10581         * PrintDialog.cs: Add collation preview thumbnails. Fixes #80726.
10582
10583 2007-06-01  Andreia Gaita  <avidigal@novell.com>
10584
10585         * ContainerControl.cs: 
10586         Fire enter event for common ancestor if it is not a ContainerControl.
10587         Send focus to the active_control and not the 'value', the active 
10588         control might have been changed in one of the events fired.     
10589         Definitely fixes #80159.
10590
10591 2007-06-01  Andreia Gaita  <avidigal@novell.com>
10592
10593         * DataGrid.cs: Finish editing when focus leave the datagrid. Fixes #80159.
10594
10595 2007-06-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10596
10597         * PropertyGrid.cs: Anchor the help description to the bottom of the
10598           help panel and refactor SelectGridItem into a
10599           SelectGridItemInternal that can be set to null (and update it to
10600           clear the help texts when it is set to null). Set root item to null
10601           when there's no SelectedObject. Fixes #80438.
10602         * ScrollableControl.cs: In Recalculate we need to ResumeLayout(true)
10603           when we're recalculating after a resize (only).
10604
10605 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10606
10607         * ListView.cs: Implement 2.0 RedrawItems method.
10608
10609 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10610
10611         * ListControl.cs: Disconnect PositionChanged and ItemChanged
10612         handlers from previous data manager when DataSource is set to
10613         null. Fixes #81771.
10614
10615 2007-05-31  Jackson Harper  <jackson@ximian.com>
10616
10617         * TextBoxBase.cs: These seem to be the correct values.
10618
10619 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
10620
10621         * FileDialog.cs: When close dialog with ok set filterindex using combobox
10622         value. Fixes #81784.
10623
10624 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
10625
10626         * Control.cs: Implement 2.0 scaling methods.
10627
10628 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10629
10630         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
10631           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
10632           corcompare issues.
10633
10634 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10635
10636         * ProgressBar.cs: Implemented missing 2.0 members.
10637
10638 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10639
10640         * Control.cs: Corcompare issues.
10641         * MessageBox.cs: Implemented missing 2.0 functions.
10642
10643 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10644
10645         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
10646           Implemented more 2.0 members.
10647
10648 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10649
10650         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
10651           null (strange, but it seems to happen when running unit tests).
10652
10653 2007-05-30  Andreia Gaita  <avidigal@novell.com>
10654
10655         * ContainerControl.cs: Set active_control even earlier, before 
10656         firing any events, and undo it if validation returns false.
10657
10658 2007-05-30  Andreia Gaita  <avidigal@novell.com>
10659
10660         * ContainerControl.cs: Raise Validation and Enter/Leave events
10661         even if there is no Form and set active_control earlier, just
10662         before firing Enter events (toshok's patches). Fixes #80647.
10663
10664 2007-05-30  Jackson Harper  <jackson@ximian.com>
10665
10666         * TextControl.cs: Redid the pageup/pagedown a little to simplify
10667         things and fix bug #81311.
10668
10669 2007-05-30  Jackson Harper  <jackson@ximian.com>
10670
10671         * X11Dnd.cs: Now that we have our own event loop, we need to
10672         cancel when we get a mouseup but it won't be accepted.
10673
10674 2007-05-30  Chris Toshok  <toshok@ximian.com>
10675
10676         * DataGrid.cs (set_CurrentCell): guard against negative
10677         column/row.
10678
10679         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
10680         array index syntax instead of looping over the property names.
10681
10682         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
10683         and set IsInEditOrNavigateMode to false there.
10684
10685 2007-05-30  Jackson Harper  <jackson@ximian.com>
10686
10687         * TreeView.cs: Make sure we don't get a bad visible order when
10688         setting to the top node.  Fixes some misc crashing in
10689         ControlInspector.
10690
10691 2007-05-30  Andreia Gaita  <avidigal@novell.com>
10692
10693         * UserControl.cs: Add 2.0 AutoSizeMode
10694
10695 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
10696
10697         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
10698
10699 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
10700
10701         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
10702         lines. Fixes #80285. 
10703
10704 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
10705
10706         * DataGridColumnStyle.cs: Add char trimming column header text format. 
10707
10708 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
10709
10710         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
10711         Fixes #80147.
10712
10713 2007-05-29  Jackson Harper  <jackson@ximian.com>
10714
10715         * TreeNode.cs: Fix off by one on calculating whether or not a node
10716         is visible.
10717
10718 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
10719
10720         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
10721         * ScrollableControl.cs: Force an UpdateDistances when we move the
10722         scrollbars.
10723         [Fixes bug #80605]
10724
10725 2007-05-29  Andreia Gaita  <avidigal@novell.com>
10726
10727         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
10728         update the page setup screen.
10729
10730 2007-05-29  Andreia Gaita  <avidigal@novell.com>
10731
10732         * PageSetupDialog.cs: Fix landscape mode.
10733
10734 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10735
10736         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
10737         IconSizeHorizontalSpacing.
10738
10739 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10740
10741         * ListView.cs: The declaration of prev_tooltip_item should be inside
10742         a NET_2_0 conditional (avoid a warning).
10743
10744 2007-05-28  Andreia Gaita  <avidigal@novell.com>
10745
10746         * PageSetupDialog.cs: Implement PrintPreview control to display
10747         the preview thumbnail. Change unit conversion to use 
10748         PrinterUnitConvert methods.
10749         
10750         Note: there is a huge bug in ms.net where the default margins are 
10751         interpreted as centimeters (?), when in fact they are set in inches. When 
10752         loading the page setup dialog initially (ms.net), the default margins 
10753         are set to 1 inch, and the dialog shows them with value 10, when in fact 
10754         it should be 25 (properly converted). Our dialog doesn't have this bug.
10755         
10756         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
10757         RectangleF.
10758         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
10759
10760 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10761
10762         * ListView.cs:
10763         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
10764         items.
10765
10766 2007-05-28  Andreia Gaita  <avidigal@novell.com>
10767
10768         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
10769         an IntPtr on csc (it builds fine on mcs, could it be a compiler
10770         bug?), convert the ptr to Int32 first.
10771
10772 2007-05-28  Jackson Harper  <jackson@ximian.com>
10773
10774         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
10775         recieved, we will exit the dnd tracking loop.
10776
10777 2007-05-28  Jackson Harper  <jackson@ximian.com>
10778
10779         * X11Dnd.cs: Keep tracking until the xdnd finished event is
10780         recieved. TODO: I should probably stick a timer on the dropped
10781         event, and finish the drag if the XDND Finished event never shows
10782         (because some apps don't seem to send it).
10783
10784 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
10785
10786         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
10787         #81733.
10788
10789 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10790
10791         * MonthCalendar.cs: Only mark the keypresses we actually handle as
10792           handled.
10793
10794 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10795
10796         * MonthCalendar.cs: Set the size after initializing all the relevant
10797           variables. Fixes #81742.
10798
10799 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10800
10801         * KeyEventArgs.cs: Fix typo.
10802
10803 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
10804
10805         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
10806         to match MS. Fixed MinDate to only accept value less than or equal
10807         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
10808         Removed TODO's that are now verified by unit tests.
10809
10810 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
10811
10812         * TreeNodeCollection.cs: Minor corrections to exceptions to match
10813         MS.
10814
10815 2007-05-25  Jackson Harper  <jackson@ximian.com>
10816
10817         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
10818         it's own message loop.
10819         * XplatUIX11.cs: Remove some of the dnd hooks
10820
10821 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
10822
10823         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
10824         instead of MinimizedWindowSize.
10825
10826 2007-05-25  Jackson Harper  <jackson@ximian.com>
10827
10828         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
10829
10830 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10831
10832         * KeyEventArgs.cs: Added SuppressKeyPress.
10833         * Control.cs: Added support for SuppressKeyPress.
10834
10835 2007-05-24  Andreia Gaita  <avidigal@novell.com>
10836
10837         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
10838         problems with PieChart. suppress_validation should not be a counter,
10839         if there are several BeginInit calls, the first EndInit will 
10840         activate validation. Fix exceptions thrown by set_Value.
10841         * UpDownBase.cs: ValidateText only if it's the user editing it.
10842
10843 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10844
10845         * ListControl.cs: FilterItemOnProperty should return the filtered
10846         item proeprty even if DataSource is null. The same applies for
10847         GetItemText. Fixes #80427.
10848
10849 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
10850
10851         * Control.cs: If a control doesn't have a parent when it's Dock is
10852         set, but it has children, it needs to do a layout.  Fixes some nested
10853         controls issues.  [Fixes bug #81199]
10854
10855 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10856
10857         * ComboBox.cs: If there are few items in the drop down list, make it
10858           the exact size the items need, no bigger. Fixes #81612.
10859
10860 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
10861
10862         * Application.cs: When we have captured the keyboard for a menu,
10863         check for mouse down events in case we need to close the menu.
10864         * Control.cs, Form.cs: Remove mouse down checks for menus.
10865
10866 2007-05-24  Jackson Harper  <jackson@ximian.com>
10867
10868         * TextControl.cs: Handle tabs in non multiline mode a little
10869         differently.
10870
10871 2007-05-24  Jackson Harper  <jackson@ximian.com>
10872
10873         * TextControl.cs: We need to manually break apart tabbed text and
10874         move the tabs, since the system.drawing tabbing mechanism relies
10875         on tab stops.
10876         * TextBoxBase.cs: Move the caret properly when the user enters a
10877         tab.
10878
10879 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
10880
10881         * ContainerControl.cs: Don't check CanSelect before calling
10882         ProcessMnemonic.
10883         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
10884         release a KeyboardActive on click if it's not ours.
10885
10886 2007-05-23  Andreia Gaita  <avidigal@novell.com>
10887
10888         * ColumnHeader.cs: Add TypeConverter
10889
10890 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
10891
10892         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
10893
10894 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
10895
10896         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
10897
10898 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
10899
10900         * LinkLabel.cs: Implement public Padding property.
10901
10902 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
10903
10904         * LinkLabel.cs: Implement public FlatStyle.
10905
10906 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
10907
10908         * Control.cs: Apply patch from George to call parent.PerformLayout
10909         when Visible is changed.  [Fixes bugs #81118, 81718]
10910
10911 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
10912
10913         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
10914
10915 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
10916
10917         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
10918
10919 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
10920
10921         * ContextMenu.cs: Implement Collapse.
10922
10923 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
10924
10925         * ToolBarButton.cs: Implement Name.
10926
10927 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
10928
10929         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
10930         use current_item, it prevents some NRE. Fixes #81675.  
10931
10932 2007-05-22  Andreia Gaita  <avidigal@novell.com>
10933
10934         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
10935         without updating the text.
10936
10937 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
10938
10939         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
10940         without calling DeleteObject.  [Should fix bug #81709]
10941
10942 2007-05-22  Jackson Harper  <jackson@ximian.com>
10943
10944         * RichTextBox.cs: Set the line endings correctly, when flushing
10945         RTF text.
10946
10947 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
10948
10949         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
10950          {Width=0,Height=0}.
10951
10952 2007-05-22  Jackson Harper  <jackson@ximian.com>
10953
10954         * TreeView.cs: Setting top with a null node should set to the very
10955         top.
10956
10957 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10958
10959         * Form.cs: ShowDialog: destroy the handle when message loop is
10960           finished, matches MS behaviour. Refactor parts of WmClose into
10961           RaiseCloseEvents, that only raises events if they haven't already
10962           been raised. Fixes #81688 and #81521.
10963         * Application.cs: Don't call close on the form when exiting a modal
10964           loop, it will raise all the (Form)Closed/Closing events again if
10965           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
10966           which doesn'r raise any events it they have been raised before.
10967
10968 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
10969
10970         * Control.cs: Add OnPrint.
10971         * ToolStrip.cs: Add GetChildAtPoint.
10972         * ToolStripContainer.cs: Add OnRightToLeftChanged.
10973         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
10974
10975 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
10976
10977         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
10978
10979 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10980
10981         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
10982           isn't visible anymore. Fixes #81651.
10983
10984 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10985
10986         * Control.cs: WmShowWindow: Update children's z-order after setting
10987           their parent. SetParent may show the window, thereby corrupting
10988           z-order, since the window will be shown on top.
10989         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
10990           multiple (and redundant) WM_SHOWWINDOW messages.
10991         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
10992           event has already been raised.
10993         * Form.cs: Change is_changing_visible_state to a counter, since
10994           SetVisibleCore can be called recursively. CreateHandle: when
10995           creating mdi children, send (De)Activated events.
10996         * MdiClient.cs: Update use of is_changing_visible_state.
10997         * Application.cs: OnThreadException: Surround exception handling with
10998           try/finally to ensure we always reset the error-handling state
10999           before leaving.
11000
11001 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11002
11003         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
11004           (#81704).
11005
11006 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11007
11008         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
11009         SmallIcon views, now that we have a standarized horizontal spacing.
11010
11011         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
11012         4, just like the other views (Match .Net).
11013
11014 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
11015
11016         * Control.cs: Delay calculating anchor distances until we actually layout.
11017         Always query the WM for the actual size and location it put us at instead of
11018         only when we send negative values.
11019         [Fixes bugs #81694, 81695]
11020
11021 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11022
11023         * Application.cs: Avoid a possible stack overflow when trying to exit
11024           the application.
11025
11026 2007-05-19  Marek Safar  <marek.safar@gmail.com>
11027
11028         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
11029         enum value.
11030
11031 2007-05-19  Andreia Gaita  <avidigal@novell.com>
11032
11033         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
11034         * NumericUpDownAcceleration.cs, 
11035           NumericUpDownAccelerationCollection.cs: Added 2.0
11036           implementation.
11037
11038 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
11039
11040         * RichTextBox.cs: Recalculate the document after the ScrollBars
11041         property is changed. Fixes bug #81681.
11042
11043 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
11044
11045         * DataObject.cs: Implement 2.0 methods.
11046
11047 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11048
11049         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
11050         in the center of the checkbox, not in the left-top corner. 
11051         Fixes #80037.
11052
11053 2007-05-18  Jackson Harper  <jackson@ximian.com>
11054
11055         * RichTextBox.cs: Recalculate the document after the scrollbars
11056         property is changed.
11057         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
11058         81486.
11059
11060 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11061
11062         * CreateParams.cs: Make HasWindowManager marginally faster.
11063         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
11064           into Hwnd so that other drivers can use it as well.
11065         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
11066           the default location from Hwnd. Fixes MDI client windows always
11067           showing up at (0,0) in Windows (Win32 won't set the default
11068           location since the window styles aren't correct).
11069
11070 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
11071
11072         * TreeView.cs: Modified DoubleBuffered to just use the base
11073         implementation.
11074
11075 2007-05-18  Jackson Harper  <jackson@ximian.com>
11076
11077         * TreeView.cs: Set the top node to the last child node when
11078         expanding all
11079         - When we get focus, if there is no selected node, use the top
11080         node.
11081
11082 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
11083
11084         * KeysConverter.cs: Add CanConvertTo.
11085         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
11086         * LinkConverter.cs: Added.
11087
11088 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
11089
11090         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
11091         it prevents error when file dont have write access. Fixes #81669 and #81667.  
11092
11093 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
11094
11095         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
11096         button text. Fixes #79640.  
11097
11098 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
11099
11100         * Control.cs: According to MSDN controls created in the designer theres 
11101         keyboard accelerators visible by default. So included check for design
11102         in ShowKeyboardCuesInternal.  
11103
11104 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
11105
11106         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
11107         text. Fixes #81621.  
11108
11109 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
11110
11111         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
11112         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
11113
11114 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
11115
11116         * Control.cs: Finish implementation of UI State using WmChangeUIState
11117         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
11118         in some controls to check for show_keyboard_cues to draw accell keys "_".  
11119
11120 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11121
11122         * ListBox.cs: When calculating the horizontal scrollbar
11123         in single column mode, don't use values less than 0 for
11124         Maximum. Fixes #81474.
11125
11126 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11127
11128         * ListBox.cs: Throw the some missing exceptions in
11129         ListBox.ObjectCollection methods.
11130
11131 2007-05-17  Jackson Harper  <jackson@ximian.com>
11132
11133         * TextBoxBase.cs: Recalculate the document when the word wrap
11134         value has changed. This fixes 81488.
11135
11136 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
11137
11138         * Clipboard.cs: Implement missing GetText overload.
11139
11140 2007-05-17  Chris Toshok  <toshok@ximian.com>
11141
11142         * Control.cs (CheckDataBindings): remove the binding_context arg
11143         to binding.Check.
11144
11145         * CurrencyManager.cs (OnItemChanged): fix this now that
11146         BindingManagerBase is fixed. also remove the comment telling where
11147         the fix should go.  We set transfering_data to true/false around
11148         the call to PushData to keep UpdateIsBinding from being called.
11149         (ListChangedHandler): remove the extra OnMetaDataChanged call for
11150         PropertyDescriptorAdded in the 1.1 case.  The extra call is
11151         actually generated by System.Data generating 2 metadata changed
11152         events of its own per column add.  The fix should go there.  Add a
11153         comment to that affect in our test's Assert.Ignore.
11154
11155         * BindingManagerBase.cs: Rework PullData and PushData slightly.
11156         we keep a boolean flag (transfering_data) that keeps us from
11157         calling UpdateIsBinding multiple times if we re-enter either of
11158         them.
11159
11160         * ControlBindingsCollection.cs (AddCore): remove the
11161         binding_context arg to binding.Check.
11162
11163         * Binding.cs (IsBinding): don't check if we're binding here, just
11164         return our cached value.  we update it in UpdateIsBinding.
11165         (Check): don't take the binding_context arg, we'll just use our
11166         control's.  Also, for some reason MS doesn't use the data member
11167         field when getting the bindingmanager for this binding.  it just
11168         uses the datasource.  Make this method callable multiple times,
11169         and only do the is_null_desc stuff if manager.Position != -1 (so
11170         we don't get an exception accessing manager.Current).
11171         (UpdateIsBinding): move the code from IsBinding here.
11172         (PositionChangedHandler): call Check here to we can initialize
11173         things that require a non- -1 position.
11174
11175 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
11176
11177         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
11178         control.
11179
11180 2007-05-17  Andreia Gaita  <avidigal@novell.com>
11181
11182         * TabControl.cs: Add 2.0 methods and events, including
11183         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
11184         * TabPage.cs: Add 2.0 methods
11185
11186 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
11187
11188         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
11189         keyboard_cues is properly handled by message method.  
11190
11191 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
11192
11193         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
11194
11195 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
11196
11197         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
11198
11199 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
11200
11201         * Control.cs: 
11202         - WmUpdateUIState added to handle state changes, it make call to
11203         OnChangeUICues event.
11204         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
11205         SystemInformation.
11206
11207 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
11208
11209         * ImageKeyConverter.cs: Added.
11210         * TreeViewImageKeyConverter.cs: Added.
11211
11212 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11213         
11214         * ToolTips.cs: Update Text if SetToolTip is called for a control
11215         already showing the tooltip, as well as restarting its timer; show
11216         tooltip if we are inside the control bounds by the time of calling
11217         SetToolTip. Inside ShowTooltip remove the check to not show the 
11218         tooltip again for the active control (it is allowed by .Net to 
11219         show the tooltip on the same control multiple times).
11220
11221 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11222
11223         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
11224
11225 2007-05-16  Andreia Gaita <avidigal@novell.com> 
11226
11227         * ContainerControl.cs: only process tab key if there are no 
11228         modifier keys present, otherwise the control does the 
11229         tab processing, if it needs to. Fixes #81622
11230         * TabControl.cs: Fixes calculation for which tab to select on
11231         shift+ctrl+tab.
11232
11233 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11234
11235         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
11236
11237 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
11238
11239         * Control.cs: Make IsInputCharInternal to allow controls to
11240         override it and still match MS API.
11241         * TextBoxBase.cs: Override IsInputCharInternal and always
11242         return true.
11243         [Fixes bug #81616]
11244
11245 2007-05-15  Jackson Harper  <jackson@ximian.com>
11246
11247         * TextBox.cs: Disable some of the menu options when using a
11248         readonly textbox.
11249
11250 2007-05-15  Jackson Harper  <jackson@ximian.com>
11251
11252         * TextBox.cs:
11253         * TextBoxBase.cs:
11254         * RichTextBox.cs: Some new 2.0 methods
11255
11256 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
11257
11258         * FileDialog.cs: On 1.0 profile, do not support multidotted 
11259         extensions.
11260
11261 2007-05-14  Jackson Harper  <jackson@ximian.com>
11262
11263         * TextBoxBase.cs: Implement some of the new 2.0 methods.
11264         * RichTextBox.cs: We need to override these methods on 2.0.
11265         * MaskedTextBox.cs: These are implemented now
11266         * TextControl.cs: This was off by one.
11267
11268 2007-05-14  Jackson Harper  <jackson@ximian.com>
11269
11270         * TextControl.cs: Because the line endings are including in the
11271         text, we don't need to add them in anymore.
11272
11273 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
11274
11275         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
11276         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
11277
11278 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
11279
11280         * ToolBar.cs: Adjust size to default size when button theres no text and
11281         image, it fixes remaining issues from #81524.
11282
11283 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
11284
11285         * ToolBar.cs: 
11286         - When not flat call redraw to recalculate sizes on creare handle to match
11287         win32 behavior.
11288         - Revert 77220 because it causes some regressions in toobar
11289         button.
11290
11291 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11292
11293         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
11294           now actually enters a usable state.
11295
11296 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
11297
11298         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
11299         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
11300         3 buttons.
11301
11302 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
11303
11304         * ToolBar.cs: Save default_size on create handle to use later for buttons
11305         without text, needed to mimic win32 behavior.
11306
11307 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
11308
11309         * ToolBar.cs: Fix button layour to best fit width or height according to
11310         vertical or not. Fixes #81524.
11311
11312 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
11313
11314         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
11315         toolbar size info because different styles theres different sizes.
11316         Fixes #81522.
11317
11318 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11319
11320         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
11321         if we are using checkboxes, checked is true, and we have less
11322         than two images in StateImageList; for the 1.1 in the same scenario
11323         draw the first image if we have at least one image in StateImageList.
11324         Fixes part of #81191.
11325
11326 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
11327
11328         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
11329         the owner's Items collection on merge.
11330
11331 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
11332
11333         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
11334         * ToolStripItemCollection.cs: Lots of fixes to when events get called
11335         and parent/owner gets changed based on gert's unit tests.
11336
11337 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11338
11339         * MaskedTextBox.cs: Started implementing parts of it.
11340
11341 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11342
11343         * ListView.cs: When clicking the checkbox on the items
11344         take into account the double clicks even if we have only
11345         one image in StateImageList (only for 1.0/1.1). Also 
11346         generate an extra change of checked state when we receive
11347         the second click on checkbox (match .Net behaviour). 
11348         Fixes part of #81191.
11349
11350 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
11351
11352         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
11353
11354 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
11355
11356         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
11357         even if OnLoad is overriden and base.OnLoad is not called.
11358         [Fixes bug #81582]
11359
11360 2007-05-10  Andreia Gaita  <avidigal@novell.com>
11361
11362         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
11363         shame. (I blame my ever-persisting and annoying cold)
11364
11365 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
11366
11367         * ListView.cs: Don't eat navigation keys.  Let them flow through to
11368         KeyDown/KeyPress routines.  [Fixes bug #81569]
11369
11370 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
11371
11372         * ListView.cs: When handling keys for selecting the item based off
11373         keyboard input, do not consider keys pressed with Alt or Control.  Also,
11374         correctly handle keys when the Shift key is down. [Fixes bug #81578]
11375
11376 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
11377
11378         * Control.cs: When using UseWaitCursor, we have to store the requested
11379         Cursor to use when UseWaitCursor is turned off.
11380
11381 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
11382
11383         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
11384         to false.
11385         * Application.cs: Use PreProcessControlMessage instead of
11386         PreProcessMessage.
11387         * PreProcessControlMessage.cs: Make internal for 1.1.
11388
11389 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11390
11391         * Control.cs: Add InternalContains focus property, which hast the same
11392         functionality of ContainsFocus, but also including implicit controls.
11393         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
11394         since we need to know if the focus is contained in our implicit
11395         ItemControl when calculating Layout. Fixes part of #80888.
11396
11397 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
11398
11399         * ToolTip.cs: Remove center form string alignment as it must be align to
11400         left.
11401
11402 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
11403
11404         * ToolStripItemCollection.cs: Set the new item's parent and owner
11405         in Insert like we do in Add.  [Fixes bug #81568]
11406
11407 2007-05-08  Jackson Harper  <jackson@ximian.com>
11408
11409         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
11410         - Off by one error in SetTop
11411         - Disable DoubeBuffering
11412         
11413 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11414
11415         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
11416           control as much as necessary in order to make it entirely visible,
11417           instead of centering the control in the container (matches MS
11418           behaviour). CalculateCanvasSize: we need to take the current scroll
11419           position into account when calculating the maximum canvas,
11420           otherwise the following scenario will fail: resize so that the
11421           scrollbars appear, use the scrollbars to scroll, resize again
11422           smaller, and now the canvas size is too small. Recalculate: when
11423           showing scrollbars make sure they start off at 0, and try to scroll
11424           the active control into view. Fixes #79540. HandleScrollBar: don't
11425           scroll anywhere if the scrollbar isn't visible.
11426
11427 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11428
11429         * ListView.cs: When focus changed, call Layout/Invalidate
11430         in the focused item to update the selected state (should show
11431         entire label when ListView is focused, and a part of it if is not).
11432         * ListViewItem.cs: When doing layout for LargeIcon, take into account
11433         for displaying the entire label not only the Focused state of the
11434         item, but also the Focused state of the ListView (match .Net
11435         behaviour).
11436
11437 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
11438
11439         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
11440         Implement UseWaitCursor. 
11441
11442 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
11443         Applying contributed patch from Sergey Volk.
11444
11445         * Clipboard.cs: Implement SetDataObject retry logic and new overload
11446         of SetDataObject.
11447         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
11448
11449 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
11450
11451         * Control.cs: Implement DrawToBitmap.
11452
11453 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
11454         Applying contributed patch from Stefan Noack.
11455         
11456         * Control.cs: Add [Get|Set]AutoSizeMode.
11457
11458 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
11459
11460         * MdiClient.cs: Unmerge menus when the last child is closed.
11461
11462 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
11463
11464         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
11465         * ToolStripManager.cs: Call Merge on DropDowns.
11466         [Fixes bug #81477]
11467
11468 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11469
11470         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
11471           uints.
11472         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
11473           visibility. We can't create forms visible, since we have to set the
11474           owner before making the form visible (otherwise Win32 will do
11475           strange things with task bar icons). The problem is that we set the
11476           internal is_visible to true before creating the control, so
11477           is_changing_visible_state is the only way of determining if we're
11478           in the process of creating the form due to setting Visible=true -
11479           this works because SetVisibleCore explicitly makes the form
11480           visibile afterwards anyways. Fixes #80775.
11481
11482 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11483
11484         * ThemeWin32Classic.cs: When drawing ListViewItems,
11485         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
11486         or LargeIcon _and_ item is not focused (match .Net behaviour).
11487
11488 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
11489
11490         * Control.cs, Form.cs: Fix some obsolete method warnings.
11491
11492 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
11493
11494         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
11495         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
11496
11497 2007-05-04  Andreia Gaita  <avidigal@novell.com>
11498
11499         * ContainerControl.cs: Fix active_control attribution when going
11500         up the parent chain so that the first parent container gets the control
11501         and the rest of the parent containers get the child containers (skips
11502         non-containers). Fixes #80729
11503
11504 2007-05-04  Randolph Chung  <tausq@debian.org>
11505
11506         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
11507         [Fixes bug #81499]
11508
11509 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11510
11511         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
11512           takes a size parameter, since the CreateParam's size isn't true for
11513           minimized forms. Fixes #81518,
11514
11515 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11516
11517         * Form.cs: Add OnDeactivateInternal.
11518         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
11519
11520 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11521
11522         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
11523           accessing the parent. Fixes #81508.
11524
11525 2007-05-03  Chris Toshok  <toshok@ximian.com>
11526
11527         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
11528         2.0 block, pass listposition + 1 to ChangeRecordState when a row
11529         was added before the current listposition.  Fixes the
11530         TestInsertRowBeforeCurrent unit test.
11531
11532 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
11533
11534         * Application.cs: Add RaiseIdle.
11535         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11536         XplatUIX11.cs: Implement RaiseIdle.
11537
11538 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
11539         corcompare work: N - Z
11540         * NotifyIcon.cs
11541         * ProgressBar.cs
11542         * RadionButton.cs
11543         * ScrollableControl.cs
11544         * SplitContainer.cs
11545         * SplitterPanel.cs
11546         * StatusBar.cs
11547         * SystemInformation.cs
11548         * TabControl.cs
11549         * TableLayoutControlCollection.cs
11550         * TableLayoutPanel.cs
11551         * TabPage.cs
11552         * ToolBar.cs
11553         * ToolBarButton.cs
11554         * ToolStrip.cs
11555         * ToolStripComboBox.cs
11556         * ToolStripContainer.cs
11557         * ToolStripContentPanel.cs
11558         * ToolStripDropDown.cs
11559         * ToolStripDropDownItem.cs
11560         * ToolStripDropDownMenu.cs
11561         * ToolStripItem.cs
11562         * ToolStripItemCollection.cs
11563         * ToolStripMenuItem.cs
11564         * ToolStripPanel.cs
11565         * ToolStripSplitButton.cs
11566         * ToolTip.cs
11567         * TreeNode.cs
11568         * TreeNodeCollection.cs
11569         * TreeNodeMouseHoverEventArgs.cs
11570         * TreeView.cs
11571
11572 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
11573
11574         * ContextMenu.cs: Add public method Show with alignment property to 2.0
11575         stuff. Thanks aatdark for the patch. 
11576
11577 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
11578
11579         * GridItem.cs: Implement 2.0 Tag property.
11580
11581 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
11582
11583         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
11584         count instead of Nodes.Length.  [Fixes bug #81448]
11585
11586 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
11587
11588         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
11589         [Fixes bug #81506]
11590
11591 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
11592         corcompare work: A - M
11593         * BindingNavigator.cs
11594         * Button.cs
11595         * ButtonBase.cs
11596         * CheckBox.cs
11597         * Control.cs
11598         * FlowLayoutPanel.cs
11599         * Form.cs
11600         * Label.cs
11601         * LinkLabel.cs
11602         * ListView.cs
11603
11604 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
11605
11606         * Application.cs: Give toolstrips a chance to process mnemonics.
11607         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
11608         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
11609         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
11610
11611 2007-05-01  Jackson Harper  <jackson@ximian.com>
11612
11613         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
11614         wider area too.
11615         - Don't set the BoundsSpecified
11616
11617 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
11618
11619         * Application.cs: When using the toolstrip shortcut mechanism, allow the
11620         message to pass through to a regular control if it hosted by a toolstrip.
11621         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
11622         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
11623
11624 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
11625
11626         * TextRenderer.cs: Use the flags argument when using the MeasureString
11627         fallback algorithm.
11628
11629 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
11630
11631         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
11632         the MDI menu item.  [Fixes bug #81483]
11633
11634 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
11635
11636         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
11637         string. When setting Name to null, use zero-length string instead.
11638
11639 2007-04-29  Andreia Gaita  <avidigal@novell.com>
11640
11641         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
11642         DeselectTab). Implement missing 2.0 TabPageCollection methods
11643         (Add, ContainsKey, RemoveByKey, IndexOfKey)
11644
11645 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
11646
11647         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
11648
11649 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
11650
11651         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
11652         Fixes bug #81479. Include details of exception when LoadFile fails.
11653
11654 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
11655
11656         * DrawListViewSubItemEventArgs.cs: Added missing setter
11657
11658 2007-04-27  Andreia Gaita  <avidigal@novell.com>
11659
11660         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
11661         Hide methods (not complete). Implement missing 2.0 OnPopup event.
11662
11663 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11664
11665         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
11666         removed in ly last commit (it was breaking the Label edit feature).
11667
11668         * ThemeWin32Classic.cs: When drawing a ListViewItem use
11669         StringAlignment.Near for LineAlignment (match .Net).
11670
11671 2007-04-27  Andreia Gaita  <avidigal@novell.com>
11672
11673         * TabControl.cs: Change SetTab so it adds the tabpage to the list
11674         of controls if it isn't already there - was blowing up when doing
11675         tabcontrol.TabPages[i]=new TabPage(). 
11676         SetTab now does a replace by removing the page at the index. 
11677         Add a new InsertTab method that inserts a page in a given index 
11678         instead of replacing. 
11679         Implements TabPageCollection.Insert(int, TabPage).
11680
11681 2007-04-27  Chris Toshok  <toshok@ximian.com>
11682
11683         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
11684         internal handler that can be invoked from our subclasses.)  Also,
11685         add a comment to PushData about how we need to fix it.
11686
11687         * CurrencyManager.cs: tons of changes here.  trying to get things
11688         matching the behavior of .net wrt event orders (ItemChanged,
11689         CurrentChanged, PositionChanged.)  I've implemented a private .net
11690         symbol (ChangeRecordState) that appears in stack traces because
11691         it's actually easier to do this than to effective inline all its
11692         various behaviors at every call site.
11693
11694         * RelatedPropertyManager.cs: guard against an exception here by
11695         not using parent.Current if the position is set to -1 (if the
11696         parent datasource is cleared, for instance).
11697
11698         * Binding.cs: don't parse data in PushData (this might be wrong,
11699         but it jives with MS's behavior.)  Also, don't call PushData when
11700         we get a CurrentChanged event.
11701
11702 2007-04-27  Andreia Gaita  <avidigal@novell.com>
11703
11704         * WebBrowser.cs,
11705           WebBrowserBase.cs,
11706           WebBrowserSiteBase.cs,
11707           HtmlDocument.cs: Added stubbed out classes, no real implementations 
11708           yet.
11709
11710 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
11711
11712         * MainMenu.cs: In draw method without parameters call draw method with 
11713         PaintEvent, another one (just rect) adjust rectangle and we dont need it
11714         as Rect property is already adjusted. Fixes #80694.
11715
11716 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
11717
11718         * Application.cs: Need to handle keyboard menu deselection here.
11719         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
11720         navigation, allowing keyboard to work on X11.
11721         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
11722
11723 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
11724
11725         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
11726         menu bar. It fixes some drawing issues in menu bar.
11727
11728 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
11729
11730         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
11731         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
11732         when <alt> key is pressed.
11733
11734 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
11735
11736         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
11737         example just set visible to false and make this prevent from other problems.
11738         In SystrayAdd always remove pending expose. Fixes #81072.
11739
11740 2007-04-26  Marek Safar  <marek.safar@gmail.com>
11741
11742         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
11743         value is set.
11744
11745 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
11746
11747         * ListView.cs: Added three missing 2.0 events and corresponding
11748         EventHandlers. Added the OwnerDraw property.
11749         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
11750
11751 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
11752
11753         * DrawListViewItemEventArgs.cs
11754         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
11755
11756 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
11757
11758         * TextControl.cs: Fixed typo in constructor
11759
11760 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
11761
11762         * Application.cs: Create a shortcut path so that currently selected
11763         MenuStrips can intercept keyboard events without having focus.
11764         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
11765         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
11766         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
11767         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
11768         generate WM_SYSCOMMAND message in X11 for other platforms.
11769         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
11770         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
11771         * ToolStripSplitButton.cs: Add DefaultItem property.
11772         
11773 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
11774
11775         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
11776         fixes some menu draw problem on Windows with border diferent from default
11777         it also fixes #81403.
11778
11779 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11780
11781         * Form.cs: Refactor WndProc into separate methods, just like Control is
11782           doing it.
11783
11784 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11785
11786         * Control.cs: set_Text: move the call to the driver into a seperate
11787           virtual method so that Form can override it.
11788         * MaskedTextBox.cs: Corcompare fixes.
11789         * Form.cs: Override UpdateWindowText and only update the styles if the
11790           form has been shown (fixes #81405).
11791
11792 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
11793
11794         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
11795         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
11796         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
11797         the form lost focus or another control was clicked.
11798
11799 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
11800
11801         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
11802         fixed.
11803
11804 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11805
11806         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
11807           DrawListViewItemEventHandler.cs,
11808           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
11809           Added.
11810         * X11Structs.cs: More ToString implementation.
11811
11812 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
11813
11814         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
11815         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
11816
11817 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11818
11819         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
11820           handle.
11821         * FormCollection.cs: Don't add a form if it's already in the
11822           collection.
11823         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
11824           according to behaviour and MSDN. The ownerWin32 is the active
11825           window at the moment when we call ShowDialog, not the context's
11826           main form (the context's main form may open another form that opens
11827           a form with ShowDialog, the win32 owner is the second form). Add
11828           and remove forms to the Application.OpenForms in other places to
11829           better match MS behaviour. Add an IsActive property that raises
11830           On(de)Activated only if the active state has changed (we were
11831           raising OnDeactivated before OnActivated while creating forms).
11832         * Application.cs: Refactor Enabling/Disabling of windows for modal
11833           dialog loops out to separate methods, and restore the thread
11834           context when we quit the method. Fixes #81407.
11835
11836 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11837
11838         * ListView.cs: In ItemControl.HandleClicks, also fire 
11839         2.0 MouseClick or MouseDoubleClick events on the parent,
11840         not only the Click/DoubleClick events.
11841
11842 2007-04-24  Andreia Gaita  <avidigal@novell.com>
11843
11844         * TableLayoutSettings.cs: 
11845         - Added a GetControls method and a support structure to help the 
11846         TypeConverter to enumerate the controls for     serialization. 
11847         - Added a new serialization constructor. 
11848         - Added a isSerialized flag initialized to true on the 
11849         serialization constructor so that the TableLayoutPanel.LayoutSettings 
11850         setter does not throw the designed NotSupportedOperation exception
11851         when the object is built through deserialization.
11852         - Implemented GetObjectData
11853         
11854         * TableLayoutPanel.cs: Added check on LayoutSettings.
11855
11856 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11857
11858         * ListView.cs: Report Click and DoubleClick events to the parent
11859         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
11860         from breaking the click count state when using dialog forms (Control
11861         reports the clicks in a similar fashion). In the previous behaviour
11862         the last WM_LBUTTONUP message in a  double click was sent to the
11863         ListView's form, instead of the ListView, which was breaking the click
11864         count for it. Fixes #80387.
11865
11866 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
11867
11868         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
11869
11870 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
11871
11872         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
11873         us from created dropdowns for menu items that do not have subitems.
11874         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
11875         Check HasDropDownItems before calling DropDown so a dropdown will not be
11876         created if it isn't needed.
11877
11878 2007-04-24  Jackson Harper  <jackson@ximian.com>
11879
11880         * TreeView.cs: Set the first node to the selected node when we get
11881         focus if there is no selected node.
11882
11883 2007-04-24  Andreia Gaita  <avidigal@novell.com>
11884
11885         * MimeIcon.cs: remove using blocks so that image streams are
11886         not disposed of. Fixes #80151
11887
11888 2007-04-24  Jackson Harper  <jackson@ximian.com>
11889
11890         * TextBoxBase.cs: Fixup the height of textboxes when the control
11891         is created.
11892
11893 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
11894
11895         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
11896         for each ToolStripItem when the parent's RightToLeftChanged is called.
11897
11898 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11899
11900         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
11901           Fixes #80163.
11902         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
11903           property, so that the setter can be overriden too.
11904         * TextBox.cs: Change GetContextMenuInternal() to use
11905           ContextMenuInternal.
11906
11907 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11908
11909         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
11910           #81406.
11911
11912 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11913
11914         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
11915           #81406.
11916
11917 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11918
11919         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
11920           avoid duplicate work. Mostily skeleton code, it's not working at
11921           all yet.
11922
11923 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
11924
11925         * NotifyIcon.cs : stub for MouseClick event
11926         * Application.cs: stub for SetUnhandledExceptionMode
11927
11928 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
11929
11930         * BindingNavigator.cs : Initial (partial) implementation
11931
11932 2007-04-23  Jackson Harper  <jackson@ximian.com>
11933
11934         * TreeView.cs: Do not create the treeview's handle when setting
11935         the scroll position.
11936         - ExpandAll needs to compute the scrollbars so it knows which
11937         position to set the bar too.
11938         * TreeNode.cs: 
11939         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
11940
11941 2007-04-23  Jackson Harper  <jackson@ximian.com>
11942
11943         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
11944         key. Fixes #81408.
11945
11946 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
11947
11948         * ToolStripItem.cs: Make GetImageSize internal.
11949         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
11950         need to draw an item.  Fixes a reported issue where images on menus
11951         that were not 16x16 were drawing incorrectly.
11952
11953 2007-04-21  Miguel de Icaza  <miguel@novell.com>
11954
11955         * Padding.cs: Use the converter, fixes the resgen2 issue with
11956         XMLNotePad. 
11957
11958 2007-04-21  Jackson Harper  <jackson@ximian.com>
11959
11960         * TreeView.cs: Dont try to unhighlight the selected node if there
11961         isn't a selected node.
11962
11963 2007-04-21  Jackson Harper  <jackson@ximian.com>
11964
11965         * UpDownBase.cs:
11966         * TextBoxBase.cs:
11967         * ListView.cs:
11968         * ListBox.cs:
11969         * TreeView.cs: Use the InternalBorderStyle property to set the
11970         initial border style, this forces the client rectangle to be sized
11971         correctly.
11972
11973 2007-04-20  Jackson Harper  <jackson@ximian.com>
11974
11975         * TreeView.cs: Simplify scrolling to the last node after expanding
11976         all.
11977         - Fix some off by ones with setting the bottom.
11978
11979 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
11980
11981         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
11982         that.  We were incorrectly doing it the other way around.  Also,
11983         update ClientSize if we change the BorderStyle before the control
11984         is created.
11985
11986 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
11987
11988         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
11989         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
11990         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
11991         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
11992         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
11993         Caption to CaptionHeight.
11994         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
11995         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
11996         and FixedFrameBorderSize to return value from current XplatUI driver.
11997         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
11998         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
11999         and FixedFrameBorderSize using win32 API. Renamed Caption to
12000         CaptionHeight.
12001         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
12002         * SystemInformation.cs: Fixed typo in BorderSize.
12003
12004 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
12005
12006         * XplatUI.cs: Added MenuAccessKeysUnderlined.
12007         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
12008         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
12009         returning false.
12010         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
12011         value from XplatUI driver.
12012         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
12013         SystemParametersInfo.
12014         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
12015         override.
12016         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
12017         returning false.
12018
12019 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12020
12021         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
12022
12023 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12024
12025         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
12026
12027 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
12028
12029         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
12030         MenuStrips that contain ToolStripSeparators.
12031
12032 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12033
12034         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
12035           DefineStdCursorBitmap.
12036         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
12037           has been created off a standard cursor. This is used to get a
12038           bitmap of the standard cursor when Draw or DrawStretched is called
12039           in order to draw the cursor.
12040         * X11Structs.cs: Added XcursorImage and XcursorImages.
12041         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
12042           DefineStdCursorBitmap.
12043         * Cursors.cs: Update all relevant creations of Cursor to use the new
12044           internal constructor.
12045
12046 2007-04-19  Jackson Harper  <jackson@ximian.com>
12047
12048         * TextBox.cs: Move the has_been_focused into the base control, so
12049         some of the text adding methods can manipulate it (probably time
12050         for a better name for this flag too).
12051         - Call a new version of selectall that doesn't scroll
12052         * TextBoxBase.cs: When we append text, if the document is empty,
12053         don't scroll.  If the document has text already, we scroll to the
12054         end of the appended text.
12055         - When the text is changed, we reset the has_been_focused, so the
12056         next time the control gets focused, all the text is selected.
12057
12058 2007-04-19  Jackson Harper  <jackson@ximian.com>
12059
12060         * TextControl.cs: Move the margins to the document, add a method
12061         so the margin sizes can be updated.
12062         * TextBoxBase.cs: When the border style is changed, update the
12063         border sizes.
12064
12065 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
12066
12067         * Control.cs: Respect DefaultPadding.
12068         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
12069         padding into account.
12070         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
12071
12072 2007-04-19  Jackson Harper  <jackson@ximian.com>
12073
12074         * TextControl.cs: Oops, we need to use the ClientRect not the
12075         bounds here.
12076
12077 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12078
12079         * ListView.cs: In ItemControl.ItemsMouseDown, take into
12080         account the double clicks when CheckBoxes are used and
12081         the pointer is inside the checkbox. Fixes part of #81191.
12082
12083 2007-04-18  Jackson Harper  <jackson@ximian.com>
12084
12085         * TextControl.cs: Pressing the end key shouldn't move the caret
12086         past the line ending.
12087         * TextBoxBase.cs: We can still delete if we are in the line
12088         ending and the combine will just kill the existing line ending.
12089
12090 2007-04-18  Jackson Harper  <jackson@ximian.com>
12091
12092         * TextControl.cs: We can't move lines, then invalidate their
12093         bounds, we need to get the old bounds and combine that with the
12094         new bounds.
12095         * TextBoxBase.cs: Before combining two lines for a delete, we need
12096         to invalidate the area of the old line, since that will be moved
12097         in the combine operation.
12098
12099 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
12100
12101         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
12102         with transparent background. Fixes #80482.
12103
12104 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
12105
12106         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
12107         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
12108         [Fixes bug #81391]
12109
12110 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12111
12112         * CreateParams.cs: Add a couple of helper methods and do a less string
12113           concatenation in ToString.
12114         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
12115           overload that takes a Control parameter, since this method may be
12116           called before a control is assigned to the hwnd (from
12117           CreateWindow), and update CreateWindow to use the new overload. In
12118           GetMenuOrigin subtract the title bar from the y position if the
12119           form has a window manager (since we're painting it and not X).
12120         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
12121           CreateParams to calculate the origin (since border sizes may vary).
12122           In ScreenToMenu only subtract the title height if we actually have
12123           a title.
12124         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
12125           mdi children never have menus of themselves.
12126         * InternalWindowManager.cs: Implement menu handling like form does.
12127           Added GetMenuOrigin to calculate the menu origin, can't use the
12128           CreateParams from the form like normally since it's lying.
12129         * Hwnd.cs: Implement GetBorderSize better (in the sense more
12130           windows-like) and add Inflate and comparison operators to the
12131           Borders type. When calculating MenuOrigin and it's a form with a
12132           window manager, use the window manager to calculate it.
12133
12134 2007-04-17  Chris Toshok  <toshok@ximian.com>
12135
12136         * Control.cs (CreateControl): turns out in 2.0 we don't need this
12137         OnBindingContextChanged thing here.  It's only generated from
12138         ContainerControl.OnCreateControl.  Fixes a newly written unit test
12139         - BindingTest.BindingContextChangedTest4.
12140         
12141 2007-04-17  Jackson Harper  <jackson@ximian.com>
12142
12143         * ScrollBar.cs: When setting values, make sure the current
12144         position stays within the new values range.
12145
12146 2007-04-17  Chris Toshok  <toshok@ximian.com>
12147
12148         * Control.cs (CreateControl): talk about a bizarre corner case.
12149         Don't emit OnBindingContextChanged here if we're a parentless
12150         control (i.e. if we're a form.).  Fixes
12151         BindingTest.BindingContextChangedTest2.
12152
12153 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
12154
12155         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
12156         from win32. Fixes #81255.
12157
12158 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
12159
12160         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
12161         already present in CalculateButtonTextAndImageLayout.
12162
12163 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12164
12165         * XplatUIX11.cs: When setting min/max size for a window we need to
12166           translate the coordinates to x coordinates. Create an overload of
12167           SetWindowMinMax that takes a CreateParams handling this, and change
12168           SetWMStyles to call this function (can't use Control.FromHandle in
12169           the SetWindowMinMax to get the control/CreateParams from the handle
12170           because the handle might not have been assigned to the control
12171           yet). Fixes #81371.
12172
12173 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12174
12175         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
12176         if StateImageList is non-null and it has less than two items (match MS
12177         behaviour). Also, in HandleNavKeys handle the Space key, calling
12178         the new ToggleItemsCheckState method, which tries to change the
12179         checked state of the selected items. Fixes part of #81191.
12180
12181 2007-04-16  Jackson Harper  <jackson@ximian.com>
12182
12183         * RichTextBox.cs: namespace cleanup.
12184
12185 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
12186
12187         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
12188
12189 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
12190
12191         [Fixes #79447]
12192         * Control.cs: Call invalidate in set_Region.
12193
12194         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
12195         it dont works here.
12196
12197 2007-04-16  Jackson Harper  <jackson@ximian.com>
12198
12199         * TextBoxBase.cs: When enter is pressed, we need to update all
12200         lines below the current.
12201
12202 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
12203
12204         * MdiClient.cs: Implement implicit menu merging for MDI
12205         children.  When a child form is active, if it has a menustrip
12206         and the parent form has a MainMenuStrip, automatically merge
12207         the menus.
12208
12209 2007-04-15  Andreia Gaita  <avidigal@novell.com>
12210
12211         * TabControl.cs: Refactored sizing methods to not repeat
12212         code all over the place. Tab bounds are now calculated
12213         as if alignment is top and single line, and only when 
12214         setting the bounds are the positions adjusted according
12215         to alignment. Replaced hardcoded positions, spacings and
12216         paddings by getting the values the ThemeEngine. 
12217         Fixes #79619.
12218         
12219         * Theme.cs: Change TabControl properties and methods so
12220         that all start with TabControl*. Added more properties
12221         to help remove hardcoded values on tabcontrol.
12222         Add CPDrawBorder3D declaration so the Theming classes
12223         can access it.
12224         
12225         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
12226
12227         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
12228         on the Theming namespace, and call the appropriate methods here.
12229         Change CPDrawBorder3D to public.
12230
12231 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12232
12233         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
12234         the control after firing the OnMouseUp event, instead of sending
12235         the message before the mentioned event. This is so we can match the
12236         MS behaviour. Fixes part of #80385.
12237
12238 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
12239
12240         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
12241         RightToLeft property.
12242
12243 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
12244
12245         * ToolStrip.cs: Add properties and internal methods to support merging.
12246         * ToolStripItem.cs: Add MergeAction and MergeIndex.
12247         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
12248         not trigger reparenting or layouts.
12249         * ToolStripManager.cs: Add Merge and RevertMerge methods.
12250         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
12251         is hosting the overflow menu.
12252
12253 2007-04-13  Jackson Harper  <jackson@ximian.com>
12254
12255         * TextControl.cs: Set the line ending correctly for the first
12256         inserted line.
12257
12258 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12259
12260         * Theme.cs: Update GetMethod to get the new definition for 
12261         KnownColors.Update (and fix theme color updates).
12262
12263 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
12264
12265         * MessageBox.cs: Fix some test and button position.
12266
12267 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12268
12269         * Form.cs: Consider the implicit controls in
12270         GetRealChildAtPoint. We need it since this method
12271         is called on Form when handling the some messages in
12272         WndProc, and need to consider those implicit ones too.
12273         Fixes #80385.
12274
12275 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
12276
12277         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
12278         if there are no ShortcutKeys set.
12279         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
12280         set, use it when painting.
12281
12282 2007-04-12  Jackson Harper  <jackson@ximian.com>
12283
12284         * TextControl.cs: Fix some off-by-one issues in line duplication
12285         and insertion in the undo manager. Also, overwrite the first tag
12286         of a line on insert, if it is just a zero lengthed tag. This
12287         prevents us from getting an extra stranded tag at the beginning of
12288         the first line.
12289
12290 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
12291
12292         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
12293         to calculated proper size including when handle was not created yet.
12294
12295 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12296
12297         * MdiWindowManager.cs: When moving a form, allow the form to be moved
12298           when the mouse is outside of it's parent's client rectangle. Fixes
12299           #79982 (take 3, part 2).
12300
12301 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12302
12303         * X11Structs.cs: Add a few ToString() overrides.
12304         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
12305           the window location in a window-manager independent way. Reworked
12306           FrameExtents, it now actually works. Reworked AddConfigureNotify
12307           and ReparentNotify handling to use GetTopLevelWindowLocation
12308           instead of the earlier, more hacky solution. Reworked SetWMStyles,
12309           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
12310           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
12311           for all other windows (fixes #81281 part 1), a toolwindow is hidden
12312           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
12313           and generally refactored to do as few calculations as possible
12314           inside the lock.
12315
12316 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
12317
12318         * Theme.cs: Change "reflective-contract" between MWF and SD to 
12319         minimize # of calls, avoid Color serialization and avoid updating 
12320         every "known colors" each time a single one is updated.
12321
12322 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
12323
12324         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
12325         when not readonly and the text is explicitly set. Code style updates.
12326         * DataGridTableStyle.cs: Removed extra line.
12327         * DataGrid.cs: Code style updates. Removed extra whitespace.
12328         * DataGridColumnStyle.cs: Code style updates. Removed extra 
12329         whitespace.
12330
12331 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12332
12333         * XplatUIX11.cs: Added comment that "fixes" #80021.
12334
12335 2007-04-09  Jackson Harper  <jackson@ximian.com>
12336
12337         * TextControl.cs: We don't need this -1 on the line count anymore.
12338
12339 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
12340
12341         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
12342         entered value to underlying type, and convert it back to a string to
12343         apply formatting. Modified GetFormattedValue to use TypeConverter
12344         if available.
12345
12346 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
12347
12348         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
12349         Use SubItems property when we want to ensure there's at least one
12350         subitem. Modified SubItems property to ensure there's always at least
12351         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
12352         the NRE's reported by MS.
12353
12354 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
12355
12356         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
12357         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
12358         Spaces to tabs. Removed extra tabs.
12359
12360 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
12361
12362         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
12363         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
12364
12365 2007-04-06  Jackson Harper  <jackson@ximian.com>
12366
12367         * TextBoxBase.cs: When a delete removes a line, recalculate all
12368         lines below that line (they need to get offsets setup correctly)
12369         and invalidate.
12370
12371 2007-04-05  Jackson Harper  <jackson@ximian.com>
12372
12373         * TextControl.cs: We need to invalidate across the width of the
12374         document when we are invalidating multiple lines.
12375         * TextBoxBase.cs: Don't delete into the line ending.
12376
12377 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12378
12379         * ListView.cs: Restore the check for the MouseHover event
12380         in ListView. It looks like the ListView fires more than one MouseHover
12381         event when HoverSelection is true  _only_ in weird-corner scenarios, but
12382         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
12383         event.
12384
12385 2007-04-05  Mike Kestner  <mkestner@novell.com>
12386
12387         * ListView.cs : raise MouseDown before updating selection.
12388         [Fixes #80373 tab 1&3]
12389
12390 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
12391
12392         * ToolStripRenderer.cs: Add static method to mirror image.
12393         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
12394         and RightToLeftAutoMirrorImage.
12395         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
12396
12397 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
12398
12399         * ToolStripSplitStackLayout.cs: Support Alignment property.
12400         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
12401
12402 2007-04-05  Jackson Harper  <jackson@ximian.com>
12403
12404         * TextControl.cs: Move around the line endings when crossing line
12405         boundaries.
12406         - When combining lines, strip the ending text off the first line.
12407
12408 2007-04-05  Jackson Harper  <jackson@ximian.com>
12409
12410         * TextControl.cs:
12411         * TextBoxBase.cs: Try to never move the cursor into the line
12412         ending.
12413         
12414 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
12415
12416         * ToolStripItem.cs: Make sure we aren't firing mouse events when
12417         the item is disabled.  Also add a few missing methods.
12418
12419 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12420
12421         * ListView.cs: We don't need the MouseEnter/MouseLeave check
12422         to fire just one MouseHover event when HoverSelection is true, since
12423         .Net does fire more than one MouseHover event in that scenario. Also,
12424         fix the selection in HoverSelection, by invoking UpdateMultiSelect
12425         if MultiSelect is true, instead of only setting ListViewItem.Selected.
12426         Finally, we need to reset the Hover logic in MouseMove, even when we
12427         don't have a selected item.
12428
12429 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
12430
12431         * ToolStrip.cs: Add several missing methods, properties, and events.
12432
12433 2007-04-04  Chris Toshok  <toshok@ximian.com>
12434
12435         * DataGridTextBoxColumn.cs: set the bounds of the text box to
12436         (0,0,0,0) in Commit, as MS does.
12437
12438         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
12439         make sure we set CurrentRow on a row header click *before* calling
12440         Select.  This moves the current cell (and the textbox) to the new
12441         row.  The call to Select then hides the textbox, giving us the
12442         correct behavior.  Fixes #80362.
12443
12444         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
12445         (ListChangedHandler): reorder the position/current changed events,
12446         and call UpdateIsBinding in the ItemAdded case.
12447
12448         * GridColumnStylesCollection.cs: add some columns events, one of
12449         which raises the CollectionChanged event.
12450
12451 2007-04-04  Jackson Harper  <jackson@ximian.com>
12452
12453         * TextControl.cs: When we delete multiple selection lines
12454         invalidate the selection area, don't need to do that for single
12455         lines because the final update view will handle it.
12456
12457 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
12458
12459         * Control.cs: When we CreateControl, we need to also create all of the
12460         control's children.  The child's OnLoad must also fire before the parent's
12461         OnLoad.  Fixes the toolbox size in PDN.
12462
12463 2007-04-04  Jackson Harper  <jackson@ximian.com>
12464
12465         * TextBoxBase.cs: When the user presses enter, insert a line
12466         ending into the text. (Maybe this would be a good spot for
12467         Environment.NewLine).
12468         * TextControl.cs: Remove undo manager hack, line endings get
12469         inserted properly now.
12470         
12471 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
12472
12473         * MenuAPI.cs: 
12474         - Remove unneeded parameters in UpdateCursor.
12475         - Fix UpdateCursor to check if menu is active.
12476         - Call UpdateCursor when menu deactivate my click.
12477         [Fixes remaining issues from #80410]
12478
12479 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
12480
12481         * Control.cs: GetRealChildAtPoint method added, it make an
12482         recursive child control search for the point. 
12483
12484         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
12485         menu.
12486
12487         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
12488
12489 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
12490
12491         * Form.cs: Fix mouse position when send back mouse event after closes
12492         menu.
12493
12494 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
12495
12496         * Form.cs: Simplify the BUTTONDOWN for active tracker.
12497
12498 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
12499
12500         * Control.cs: Fix an issue where if a user resized a control inside
12501         a sizing method like OnResize, we would overwrite their explicit
12502         value.  Also, only call DefaultSize once in the constructor instead
12503         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
12504         nothing actually changed.
12505
12506 2007-04-03  Jackson Harper  <jackson@ximian.com>
12507
12508         * TextControl.cs: Don't attempt to copy text for lines with no
12509         text in them (technically this shouldn't happen, but we aren't
12510         always inserting line endings when we should be).
12511
12512 2007-04-03  Jackson Harper  <jackson@ximian.com>
12513
12514         * TextBoxBase.cs: Calculate the scrollbars before calculating the
12515         document, because this sets some of the document size properties
12516         that are needed.
12517
12518 2007-04-03  Jackson Harper  <jackson@ximian.com>
12519
12520         * TextBoxBase.cs: We need to calculate maximums even if this is
12521         not a multiline control, because the maxs are used for scrolling.
12522         - Display the caret after doing a page up/down, we need to
12523         manually display it because a proper CaretMoved event isn't
12524         triggered (this is because of the way the math is done to
12525         determine how far to scroll).
12526
12527 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
12528
12529         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
12530         (ToolBar was relying on SetBoundsCore to default the values sent 
12531         base off of BoundsSpecified.)
12532
12533 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12534
12535         * DateTimePicker.cs: Change Text so that when a null value or empty
12536           string is assigned to the test we always raise ValueChanged and
12537           TextChanged (earlier implementation would only raise ValueChanged
12538           if the current date value was different from DateTime.Now).
12539
12540 2007-04-03  Andreia Gaita <avidigal@novell.com> 
12541
12542         * ButtonBase: Call update after invalidation, fixes #80194
12543
12544 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12545
12546         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
12547           #79335.
12548
12549 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12550
12551         * XplatUIX11.cs: SetWMStyles: If the control is a form with
12552           FormBorderStyle = None, don't give the window any decorations.
12553           Fixes #81276.
12554
12555 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12556
12557         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
12558         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
12559           to check for is a mix of several styles (such as WS_CAPTION for
12560           instance).
12561         * Control.cs: Don't paint an area bigger than the client area when
12562           painting the background colour. Add an internal GetCreateParams.
12563           Update calls to XplatUI.CalculateWindowRect due to API change.
12564         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
12565           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
12566           the size if it hasn't been handled by any windows. When creating
12567           and moving windows, X wants the location of the entire window, but
12568           the size of the client window, so add
12569           TranslateClientRectangleToXClientRectangle,
12570           TranslateWindowSizeToXWindowSIze and
12571           TranslatedXWindowSizeToWindowSize to cope with this, and call them
12572           before every window creation and move. Update CalculateWIndowRect
12573           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
12574           In AddConfigureNotify don't do anything if the hwnd is a zombie
12575           (fixes the BadWindow we were getting while running the tests),
12576           always calculate the offsets when it's a parentless window, not
12577           only when reparented, and translate the window size, since we're
12578           getting the client size of the whole window, excluding entire
12579           window.
12580         * Theme.cs: Added BorderSizableSize.
12581         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
12582           anymore. Update calls to XplatUI.CalculateWindowRect due to API
12583           chang
12584         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
12585           change. Fake the window styles here instead of in XplatUIWin32 so
12586           that all back-ends get the same window styles (and it's Form that's
12587           deciding when to use wm, not the Win32 backend anyways)
12588         * Hwnd.cs: Completely reworked GetWindowRectangle and
12589           GetClientRectangle - they are now passed a CreateParams and they
12590           only use Style and ExStyle to determine the rectangles (they should
12591           now work just like Win32AdjustWindowRectEx - though quite a few
12592           special cases are probably missing). They should also be 100%
12593           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
12594           == rect), and all numbers (borders, menu sizes) are taken from the
12595           current theme. Added a GetBorders helper function that will return
12596           the borders for any given CreateParams (including captions and
12597           menus), and GetBorderSize that returns the given border size only.
12598         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
12599           Hwnd.GetClientRectangle.
12600
12601 2007-04-02  Chris Toshok  <toshok@ximian.com>
12602
12603         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
12604         logic between the values we present to the user and the values
12605         which are stored in the column's property.  Also, don't call
12606         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
12607
12608 2007-04-02  Jackson Harper  <jackson@ximian.com>
12609
12610         * TextBoxBase.cs: Scroll faster!
12611
12612 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
12613
12614         * StatusStrip.cs: Layout fixes for PDN.
12615         * ToolStrip.cs: Set item's available to true, and placement to main when
12616         added.
12617         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
12618         changing in setter before doing any work, add InternalVisible.
12619         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
12620         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
12621         infinite loop.
12622
12623 2007-04-02  Jackson Harper  <jackson@ximian.com>
12624
12625         * TextBox.cs: LBUTTON does not make the textbox select all of it's
12626         text on focus.
12627
12628 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12629
12630         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
12631           Makes ToolStripComboBoxes show up again.
12632
12633 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12634
12635         * ListView.cs: Add a hover_pending field in ListView
12636         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
12637         cycle (we are resetting the MouseHover logic in XplatUI
12638         to handle HoverSelection). Fixes #80429.
12639
12640 2007-04-02  Jackson Harper  <jackson@ximian.com>
12641
12642         * TextControl.cs: Make sure the attributes get set on the last
12643         tag.
12644         - Still have to do the end tag if we have stepped all the ways to
12645         the end.
12646
12647 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12648
12649         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
12650         on an internal libgdiplus call when the information is already 
12651         available via the public API.
12652
12653 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12654
12655         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
12656           control is removed from a control collecftion.
12657         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
12658           Fixes FormPropertyTest (failed on rare occasions).
12659         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
12660           of Win32SetParent (when changing from no parent to a parent it
12661           might add the new parent's location in screen coordinates to this
12662           window's location).
12663         * Form.cs: Rework ChangingParent once again, now the handle is
12664           recreated whenever a FormWindowManager is added or removed (that is
12665           whenever a normal form is parented or abandoned). Also change
12666           CreateParams so that all non-toplevel windows always get the
12667           specified sice (StartupPosition is never considered for
12668           non-TopLevel forms).
12669         * ContainerControl.cs: Add ChildControlRemoved, the container control
12670           needs to be notified when a control is removed from it's
12671           collection, in the case the removed control is the active control.
12672
12673 2007-04-02  Jackson Harper  <jackson@ximian.com>
12674
12675         * RichTextBox.cs: Use the new methods for setting the font and
12676         color, these methods set the specified attribute without
12677         overriding the other attributes.
12678
12679 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
12680
12681         * ToolStripPanel.cs: Fixes for better layouts in PDN.
12682
12683 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
12684
12685         * TextBox.cs: Added internal ChangeBackColor method to special-case
12686         Color.Empty. Added check for invalid ScrollBars value.
12687         * TextBoxBase.cs: Added internal ChangeBackColor method.
12688         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
12689         internal ChangeBackColor method to special-case Color.Empty. Added
12690         check for invalid ScrollBars value.
12691
12692 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
12693
12694         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
12695
12696 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
12697
12698         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
12699         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
12700         [Based on submitted patch from Olivier Duff.]
12701
12702 2007-03-30  Jackson Harper  <jackson@ximian.com>
12703
12704         * TextBox.cs: Only select all on initial focus if the user has not
12705         specified a selection area.
12706
12707 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
12708
12709         * UserControl.cs: Override CreateParams.
12710
12711 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12712
12713         [ Fixes #80995 ]
12714
12715         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
12716         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
12717           check for is a mix of several styles (such as WS_CAPTION for instance).
12718         * Control.cs: Don't paint an area bigger than the client area when painting
12719           the background colour. Add an internal GetCreateParams. Update calls to
12720           XplatUI.CalculateWindowRect due to API change.
12721         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
12722           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
12723           hasn't been handled by any windows. When creating and moving windows, X
12724           wants the location of the entire window, but the size of the client
12725           window, so add TranslateClientRectangleToXClientRectangle,
12726           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
12727           to cope with this, and call them before every window creation and move.
12728           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
12729           removing DeriveStyles). In AddConfigureNotify don't do anything if the
12730           hwnd is a zombie (fixes the BadWindow we were getting while running the
12731           tests), always calculate the offsets when it's a parentless window, not
12732           only when reparented, and translate the window size, since we're getting
12733           the client size of the whole window, excluding entire window.
12734         * Theme.cs: Added BorderSizableSize.
12735         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
12736           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
12737         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
12738           Fake the window styles here instead of in XplatUIWin32 so that all
12739           back-ends get the same window styles (and it's Form that's deciding when
12740           to use wm, not the Win32 backend anyways)
12741         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
12742           they are now passed a CreateParams and they only use Style and ExStyle
12743           to determine the rectangles (they should now work just like
12744           Win32AdjustWindowRectEx - though quite a few special cases are probably
12745           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
12746           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
12747           sizes) are taken from the current theme. Added a GetBorders helper
12748           function that will return the borders for any given CreateParams
12749           (including captions and menus), and GetBorderSize that returns the given
12750           border size only.
12751         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
12752           Hwnd.GetClientRectangle.
12753
12754 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12755
12756         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
12757           layout of the mdi children is handled by CreateParams. Fixes
12758           #79964,
12759
12760 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
12761
12762         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
12763         processed.
12764
12765         * Form.cs: When active tracker mouse down is not processed, send event 
12766         back to control inside mouse position. [Fixes #81227]
12767
12768 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
12769
12770         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
12771         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
12772         stealing focus from the active form on Windows.  (Control will be made
12773         visible in ShowWindow.)
12774
12775 2007-03-29  Mike Kestner  <mkestner@novell.com>
12776
12777         * ImageList.cs : add internal Changed event.
12778         * ListView.cs : hook up to StateImageList.Changed to perform
12779         invalidations when the the state icon list changes. [Fixes #81191]
12780
12781 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
12782
12783         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
12784         to prevent tooltips from stealing focus from the active form on Windows.
12785
12786 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
12787
12788         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
12789
12790         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
12791
12792 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
12793
12794         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
12795         balloons.
12796
12797 2007-03-29  Jackson Harper  <jackson@ximian.com>
12798
12799         * TextControl.cs: When deleting text from non multiline textboxes,
12800         we need to update the entire document, because line offsets will
12801         be shifting.
12802
12803 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
12804
12805         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
12806         added to theme, now we can create themes that uses diferent notify engines
12807         like notification-daemon from galago project or growl for Mac OS.
12808
12809 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
12810
12811         * NotifyIcon.cs: Prevent Balloon to show in task bar.
12812
12813 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
12814
12815         * XplatUIX11.cs: Prevent system to open more than one balloon.
12816
12817         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
12818         some compiler warning messages.
12819
12820 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
12821
12822         [Fixes #79149]
12823
12824         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
12825
12826         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
12827         implemented, this methods is used by NotifyIcon.BalloonWindow class.
12828
12829         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
12830         systems.
12831
12832 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12833
12834         * ListViewItem.cs: Forgot to make Invalidate internal.
12835
12836 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12837
12838         * ListView.cs: Add a InvalidateSelection method to
12839         invalidate methods which are currently selected, and call
12840         it when setting FullRowSelect and HideSelection, instead of
12841         calling Redraw.
12842
12843 2007-03-28  Chris Toshok  <toshok@ximian.com>
12844
12845         * XplatUIX11.cs (UnmapWindow): reindent this block.
12846
12847         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
12848         the selection_start if we're moving the selection (that is, not
12849         extending it). Fixes bug #80461.
12850
12851 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
12852
12853         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
12854         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
12855         create private ControlCollection.
12856
12857 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
12858
12859         * Control.cs: We need to call OnVisibleChanged for our implicit
12860         children as well as our normal children.  Fixes scrollbars in
12861         comboboxes not showing up.
12862
12863 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
12864
12865         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
12866         the check for IsHandleCreated first.  The check in CreateHandle is not
12867         good enough because CreateHandle can be overriden, and the override 
12868         should not be called if the handle is already created.
12869
12870 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
12871
12872         * ToolStrip.cs: Remove MonoTODO for tooltips.
12873         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
12874         * ToolStripContainer.cs: Add custom ControlCollection class.
12875         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
12876         * ToolStripDropDown.cs: Add some missing properties/methods.
12877         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
12878         * ToolStripItem.cs: Remove MonoTODO for tooltips.
12879         * ToolStripManager.cs: Add IsShortcutDefined.
12880         * ToolStripOverflow.cs: Override LayoutEngine.
12881         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
12882         * ToolStripSeparator.cs: Add ImageKey.
12883
12884 2007-03-28  Jackson Harper  <jackson@ximian.com>
12885
12886         * TextControl.cs: If a char delete removes a line ending, we need
12887         to update the ending style.
12888         - Make sure the line ending calcs get called.
12889
12890 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12891
12892         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
12893           it was making the new code not work. Fixed a typo in the new code
12894           as well. Fixes #79826.
12895
12896 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
12897
12898         * XplatUIWin32.cs:
12899         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
12900         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
12901         - SystrayBalloon method implemented.
12902         [Add support for notifyicon balloon on win32, #79149]
12903
12904 2007-03-27  Mike Kestner  <mkestner@novell.com>
12905
12906         * ThemeWin32Classic.cs : update StateImageList selection to mirror
12907         the ms behavior when only one image is added to the list.
12908         [Fixes #81191]
12909
12910 2007-03-27  Jackson Harper  <jackson@ximian.com>
12911
12912         * TextControl.cs: Improvements to non multiline line ending
12913         drawing/measuing.
12914
12915 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
12916
12917         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
12918
12919 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
12920
12921         * NotifyIcon.cs: 
12922         - Balloon message handling added.
12923         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
12924
12925         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
12926         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
12927         to SystrayBalloon to me like other Systray method, also a
12928         handle parameter added.
12929
12930 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12931
12932         * ListView.cs: Show scrollbars even when items.Count == 0
12933         but the columns Width is bigger than the ListView.Width.
12934         Also, when columns.Count == 0 set layout_wd and layout_ht
12935         to the ClientRectangle values, so we don't show any scrollbar
12936         in that case.
12937
12938 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
12939
12940         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
12941
12942 2007-03-27  Jackson Harper  <jackson@ximian.com>
12943
12944         * RichTextBox.cs: The RTF library decodes the text properly for us
12945         now.
12946
12947 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12948
12949         * ListView.cs: Display HeaderControl even when columns.Count == 0.
12950         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
12951         ListView header (HeaderControl), instead of Control.BackColor.
12952
12953 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
12954
12955         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
12956         Fixes tab control issues where controls would not show up because they
12957         never received their OnVisibleChanged call.
12958
12959 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
12960
12961         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
12962         BalloonTipShown).
12963
12964 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
12965
12966         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
12967         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
12968         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
12969         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
12970         the handle.  Fix WindowState by using the internal variable until we are 
12971         sure that we've been shown.
12972         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
12973         max or min.
12974         [Fixes bug #81198]
12975
12976 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12977
12978         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
12979           (at least borders). Fixes #79386 on Linux (with a small difference
12980           in behaviour: when trying to resize a caption-less window metacity
12981           shows the sysmenu. Resizing is still possible though).
12982         * XplatUIWin32.cs: When setting window styles send request an extra
12983           WM_NCCALCSIZE when it's a form without title (due to no text and no
12984           caption), since Win32 seems to calculate it wrong the first time we
12985           get the message, though the second time things work as they should.
12986         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
12987           newly reparented window might show up unparented. Update
12988           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
12989           there's no title text. Fixes #79386.
12990
12991 2007-03-27  Mike Kestner  <mkestner@novell.com>
12992
12993         * ListBox.cs : don't perform invalidations if the handle hasn't been
12994         created.  [Fixes #80753]
12995
12996 2007-03-27  Mike Kestner  <mkestner@novell.com>
12997
12998         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
12999         [Fixes #80428]
13000
13001 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
13002
13003         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
13004         needed to implement Balloon.
13005
13006 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13007
13008         * ListViewItem.cs: In the constructors that take
13009         an array of strings, don't use ListViewSubItemCollection.AddRange
13010         method to add items, since we need to have a different behaviour (in
13011         the constructors we add an item for each null string, opposed to
13012         the behaviour of AddRange, which adds nothing).
13013
13014 2007-03-26  Andreia Gaita  <avidigal@novell.com>
13015
13016         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
13017
13018 2007-03-26  Jackson Harper  <jackson@ximian.com>
13019
13020         * TextControl.cs: Draw and measure line endings when in non
13021         multiline mode.
13022         - When searching the text, count the end of the last line as a
13023         word boundary.
13024
13025 2007-03-26  Jackson Harper  <jackson@ximian.com>
13026
13027         * RichTextBox.cs: The selection_start and selection_end don't
13028         really track the correct tags for the selection. So we'll manually
13029         compute the correct tag here.
13030
13031 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13032
13033         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
13034           and Continuous styles. Fixes #79469.
13035
13036 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
13037
13038         * ToolStrip.cs: Implement Tooltips.
13039         * ToolStripItem.cs: Create internal method for determining tooltip.
13040
13041 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
13042
13043         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
13044
13045 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
13046
13047         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
13048         it prevents a problem thak keeps icon visible after application 
13049         closes on win32.
13050
13051 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
13052
13053         * NotifyIcon.cs: Balloon properties and methods created.
13054
13055         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
13056         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
13057
13058 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
13059
13060         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
13061
13062 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
13063
13064         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
13065         parameter indicates which aspects were explicit/user-set.
13066         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
13067
13068 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
13069
13070         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
13071         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
13072         SmallChange, and Value (2.0).
13073         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
13074
13075 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13076
13077         * ListView.cs: Always set item_control.Width in LayoutDetails
13078         if View is Details. Setting it later in CalculateScrollBars
13079         in a not-so-corner scenario (the sum of columns width is
13080         not bigger than the ListView width when handle is created, and then
13081         that sum gets bigger by increasing the width of the columns)
13082         causes a very weird recursion path (which shouldn't be happening,
13083         since header_control sets it in CalculateScrollBars too). This bug
13084         appeared after Chris' fixes for handle created issues, so probably
13085         it's related to some handle-creation time.
13086
13087 2007-03-23  Chris Toshok  <toshok@ximian.com>
13088
13089         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
13090         case where there's an add row, just so we don't end up in a case
13091         where it's not displayed (this happens when the row is partially
13092         obscured).  Fixes bug #79574.
13093
13094 2007-03-23  Jackson Harper  <jackson@ximian.com>
13095
13096         * TextControl.cs:
13097         * TextBoxBase.cs:
13098         * RichTextBox.cs: Preserve line endings in the lines text buffer,
13099         also added an enum that represents the line ending type. 
13100
13101 2007-03-23  Andreia Gaita  <avidigal@novell.com>
13102
13103         * NumericUpDown.cs: Fix logic so Text and Value properties are not
13104         messed with in every method call, but only from DownButton, 
13105         UpButton, UpdateEditText() and ValidateText. Fixes #80346
13106
13107 2007-03-23  Chris Toshok  <toshok@ximian.com>
13108
13109         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
13110         format objects if the format spec is "".  Fixes bug #80889.
13111
13112 2007-03-22  Miguel de Icaza  <miguel@novell.com>
13113
13114         * ToolStripPanel.cs (Join): added stubs to build PDN3
13115
13116         * Control.cs (AutoScrollOffset): Add.
13117
13118         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
13119         property, its only implemented for Win32, on X11 it defaults to
13120         some hardcoded value.
13121
13122         * ToolStripItem.cs (AllowDrop): Add property
13123
13124 2007-03-22  Mike Kestner  <mkestner@novell.com>
13125
13126         * ListView.cs : in FullRowSelect Details mode, only enable box
13127         selection if the user clicks over the "item" column outside of the
13128         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
13129
13130 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13131
13132         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
13133           handle is not created yet.
13134         * Form.cs: Select: Don't call CreateHandle if the handle is already
13135           created, avoids a stack overflow on Windows when we are recreating
13136           controls.
13137         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
13138           they are made visible, and override AfterTopMostControl to keep
13139           them on top when other controls are brought to front.
13140           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
13141           or force_*scroll_visible is true (old implementation always shows
13142           scrollbars when needed, no matter what auto_scroll was set to).
13143         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
13144           IsHandleCreated check.
13145
13146 2007-03-22  Andreia Gaita  <avidigal@novell.com>
13147
13148         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
13149         row or col separator.
13150         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
13151
13152 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
13153
13154         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
13155
13156 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
13157
13158         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
13159         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
13160         every time. Fixes #80410.
13161
13162 2007-03-22  Chris Toshok  <toshok@ximian.com>
13163
13164         * BindingSource.cs (AddNew): partially implement.
13165
13166         remove a couple of NotImplementedException's
13167         to get bug #81148 closed.
13168
13169 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
13170
13171         [Fixes #80380]
13172         
13173         * Control.cs:
13174         - UpdateCursor method added to update the screen cursor.
13175         - GetAvailableCursor method added to return cursor for enabled tree,
13176         it searches for cursor on control and it's parent's for enabled control.
13177         - Call UpdateCursor method on setter of Cursor property.
13178         - On setter of Enabled call UpdateCursor when it is false, we need to
13179         change cursor to normal (or to this parent cursor) because cursor 
13180         setting theres no effect to disabled controls.
13181         - Some minor source changes to follow the coding style guidelines.
13182
13183         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
13184         controls.
13185
13186 2007-03-22  Chris Toshok  <toshok@ximian.com>
13187
13188         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
13189         generates.
13190
13191 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13192
13193         * XplatUIX11.cs: Implement default locations for forms.
13194         * Form.cs: Completely rework startup location for forms. Fixes #79964.
13195         * Hwnd.cs: Add previous_child_startup_location (to track the current
13196           startup location for any child forms of the current form) and
13197           previous_main_startup_location (to track the startup location for
13198           the current toplevel form).
13199
13200 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
13201
13202         * Control.cs: Don't trigger a layout if an implicit control is added
13203         that isn't visible.  Also, don't notify the owner when an implicit control
13204         is added.  (Owners shouldn't even know about their implicit controls.)
13205
13206 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
13207
13208         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
13209         to save some re-layouts.
13210
13211 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
13212
13213         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
13214         [Fixes #81203]
13215
13216 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
13217
13218         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
13219         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
13220
13221 2007-03-21  Mike Kestner  <mkestner@novell.com>
13222
13223         * ListView.cs : disable selection update for non-left button clicks
13224         with mods and over selected items.  [Fixes #80524]
13225
13226 2007-03-20  Jackson Harper  <jackson@ximian.com>
13227
13228         * TextControl.cs:
13229         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
13230         \r\r\n, \n.
13231
13232 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13233
13234         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
13235           very probably a more complicated calculation there. Update the
13236           textbox' ForeColor and BackColor when the ComboBox' colors are
13237           changed. Change the border change in LayoutComboBox to only affect
13238           the textbox, not all the calculations there. Seems to fix most of
13239           #79436.
13240
13241 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13242
13243         * ComboBox.cs: Handle Home and End keys as well as all combinations of
13244           modifiers + navigation keys as input keys, enables advanced text
13245           selection in the combobox (like Shift+Left Arrow for instance).
13246           ComboTextBox now overrides Focused and returns whatever
13247           ComboBox.Focused returns, since it really should be focused
13248           whenever the ComboBox is. Fixes #80795. Also make the border around
13249           the text box one pixel bigger, as mentioned in #79436.
13250
13251 2007-03-20  Jackson Harper  <jackson@ximian.com>
13252
13253         * TreeView.cs: Don't offset the images, this was causing some
13254         artifacts when expanding/collapsing with images that were the
13255         exact height of the treenode.
13256
13257 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13258
13259         * TrackBar.cs: Query the theme for the correct value when the mouse
13260           moves and the thumb is pressed. 
13261         * Theme.cs: Added TrackBarValueFromMousePosition
13262         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
13263           implementation was updating the trackbar value when drawing, now
13264           the drawing methods only draw. Fixes #80900. Refactored the
13265           calculations out to TrackBarValueFromMousePosition and
13266           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
13267           according to the mouse position whenever it wants to. Changed the
13268           light coloured pen when drawing the thumb from ControlLight to
13269           ControlLightLight, because the ControlLight is the same colour as
13270           the background so the 3D effect is lost. 
13271
13272 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
13273
13274         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
13275         defined. Fixes #80784.
13276
13277 2007-03-20  Marek Habersack  <mhabersack@novell.com>
13278
13279         * ContextMenuStrip.cs: align with the change introduced in
13280         revision 74664.
13281
13282 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
13283
13284         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
13285         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
13286         in SetTopmost.
13287
13288 2007-03-19  Chris Toshok  <toshok@ximian.com>
13289
13290         * Control.cs (WmPaint): don't make use of the Handle property
13291         after an event is emitted, as the user could have closed the
13292         form/destroyed the control.  Store the Handle in a local variable
13293         and make use of that.  Fixes bug #80768.
13294
13295 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
13296
13297         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
13298         behavior in X11 environments.
13299
13300 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
13301
13302         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
13303         because on setter of topmost we dont call SetTopmost when handle is not
13304         created.
13305
13306 2007-03-20  Jackson Harper  <jackson@ximian.com>
13307
13308         * TextControl.cs: Need to use SelectionLength () not
13309         selection_length, since that var is reset to -1.
13310         - Draw the caret when we don't have focus.
13311         * TextBox.cs: The selectall actually doesn't occur until the first
13312         focus.
13313         * TextBoxBase.cs: Need to update the caret position after a
13314         selectall.
13315         
13316 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13317
13318         * ListView.cs: Enable scrolling when using Tile view.
13319
13320 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
13321
13322         [Fixes #80902]
13323
13324         * XplatUIDriver.cs: Abstract SetOwner method created.
13325
13326         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
13327         must be implemented and was masked as todo.
13328
13329         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
13330         GWL_HWNDPARENT.
13331
13332         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
13333         cheking for null owner to remove transient. The SetTopmost will be change
13334         on a decond step.
13335
13336         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
13337         SetTopmost. Now owned forms will work properly in win32 and X11.
13338
13339 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13340
13341         * MdiWindowManager.cs: Update function name.
13342         * Form.cs: After closing a form MdiParent is always null.
13343         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
13344           better what it should do: necessary book-keeping when the form is
13345           closed, it should not close the form itself.
13346
13347 2007-03-19  Andreia Gaita  <avidigal@novell.com>
13348
13349         * ListViewItem.cs: Fix back and fore color. The subitems only
13350         use their own colors if they are set, otherwise use the listview's
13351         colors. Don't set default colors on constructor for subitem.
13352         Fixes #79315.
13353
13354 2007-03-19  Mike Kestner  <mkestner@novell.com>
13355
13356         * ListView.cs : make box selection for Details views with 
13357         FullRowSelect conform to MS behavior when clicking in the "item" 
13358         column and clicking outside the defined columns.
13359         [Fixes case 5-6 of #80374]
13360
13361 2007-03-19  Chris Toshok  <toshok@ximian.com>
13362
13363         * ScrollableControl.cs: create the controls from within the ctor,
13364         but don't actually add them until our handle is created.  this
13365         fixes a NRE possibility jpobst found (if you override OnLayout in
13366         a subclass, it's called before your ctor).  Also, add a
13367         IsHandleCreated guard to UpdateSizeGripVisibility as well.
13368
13369 2007-03-19  Jackson Harper  <jackson@ximian.com>
13370
13371         * TextBox.cs: Reduce the amount of invalidation we do.
13372         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
13373         some of them are true by default on MS.
13374         - Add some functions to reduce the amount of invalidates we do.
13375         * TextControl.cs: Less invalidation.
13376
13377 2007-03-19  Chris Toshok  <toshok@ximian.com>
13378
13379         [ Fixes #81773, and *seems* to fix #81553 as well ]
13380
13381         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
13382         AccumulateDestroyedHandles.  We need to do it *after* we send
13383         WM_DESTROY, as the user's code can access Control.Handle in
13384         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
13385         move the WM_DESTROY/zombie handling to before the call to
13386         XDestroyWindow.  For some reason without this ordering
13387         FormTest.RecreateHandle hangs.  This ordering is semantically
13388         equivalent, however, as XDestroyWindow is async anyway.
13389
13390 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
13391
13392         * RichTextBox.cs: Reset backcolor_set after setting default.
13393
13394 2007-03-19  Chris Toshok  <toshok@ximian.com>
13395
13396         * ScrollableControl.cs: the scroll position should not effect the
13397         canvas size.  commit patch from georgegiolfan@yahoo.com, which
13398         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
13399         
13400 2007-03-19  Chris Toshok  <toshok@ximian.com>
13401
13402         * ScrollableControl.cs: clean this up a bit.  create the
13403         scrollbars in the ctor and just show/hide them as needed.  Also,
13404         make hscroll_visible/vscroll_visible internal to Recalculate, and
13405         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
13406         everywhere else.  This seems to fix the scrollbars appearing
13407         beneath the content for me (i have *no* idea why that is,
13408         however.)
13409
13410 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
13411
13412         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
13413         some redundacy for stuff in Anchor and Dock that base will take care of.
13414         [Fixes #80762]
13415
13416 2007-03-19  Mike Kestner  <mkestner@novell.com>
13417
13418         * ListView.cs : make box selection for Details views without 
13419         FullRowSelect dependent on the text bounds, not item bounds.
13420         * ListViewItem.cs : add an internal property to obtain the TextBounds
13421         in Details view.  [Fixes case 1-4 of #80374]
13422
13423 2007-03-19  Andreia Gaita  <avidigal@novell.com>
13424
13425         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
13426         we're < 2.0. #78448 && #80316
13427
13428 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
13429
13430         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
13431         have the same style available as the previously selected one.  Also,
13432         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
13433
13434 2007-03-19  Jackson Harper  <jackson@ximian.com>
13435
13436         * TextControl.cs: Add an alignment property that all new lines
13437         will be given.
13438         - Make sure to use the align shift when calculating the line's X
13439         position.
13440         * TextBox.cs: Set the alignment on the document as well as on all
13441         the document lines.
13442
13443 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13444
13445         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
13446           throw if setting the parent of an mdichild that already has an
13447           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
13448           AssemblyProductAttribute in the assembly, use the type's namespace (as
13449           MS seems to do). CreateControl: don't create the handle if the control
13450           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
13451           create handle if the control is not a form. Change FocusInternal to
13452           virtual so that it can be overriden by Form.
13453         * TextBox.cs: Update call to FocusInternal.
13454         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
13455           form is not a toplevel form when it's a mdi child, so update is_toplevel
13456           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
13457           hasn't been created. Show (IWin32Window): Don't allow this overload for
13458           toplevel windows. CenterToParent/CenterToScreen/Select: create the
13459           handle as MS does. SetVisibleCore: if called on a MdiChild and the
13460           parent isn't visible yet, save the visibility and restore it when the
13461           parent is made visible.
13462         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
13463           methods, since the visibility of the scrollbars can be changed from
13464           several places, not only from AutoScroll.
13465           [Fixes #81179]
13466
13467 2007-03-19  Jackson Harper  <jackson@ximian.com>
13468
13469         * RichTextBox.cs: Enable shortcuts by default.
13470         * TextBoxBase.cs: Add conditional shortcuts.  
13471
13472 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
13473
13474         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
13475
13476 2007-03-19  Chris Toshok  <toshok@ximian.com>
13477
13478         [ Fixes bug #80604]
13479         
13480         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
13481         swallow the message we're waiting on, instead of delivering it, as
13482         this is only used for the WM_SHOWWINDOW raised from
13483         MapWindow/UnmapWindow, and the message needs to be generated
13484         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
13485         before doing the Map/Unmap.  Also make sure that the Hwnd is still
13486         alive after the message has been handled.
13487
13488         *before* the window is shown.
13489
13490         * Control.cs (CreateControl): guard a few more things inside the
13491         if (!is_created) block, as we might end up being called again -
13492         yay .net.
13493         (WmShowWindow): call CreateControl if we're showing the control.
13494
13495 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13496
13497         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
13498           controls without a handle if they have any parent with a handle. In
13499           Dispose add a check whether the handle is created or not before
13500           calling BeginInvoke, this removes the need of the extra disposing
13501           parameter (which was bogus anyway since it didn't prevent the
13502           invoke from happening, it only skipped the check for an existing
13503           handle, meaning that the invoke would call on an inexistent
13504           handle).
13505
13506 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
13507
13508         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
13509         appears in taskbar.
13510
13511 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
13512
13513         * MessageBox.cs:
13514         - Fixed a problem that dont show help button for messages with 3 buttons.
13515         - Refactory button size and position calculations, now dont use fixed 
13516         values, also fixed button sizes (#80043) and form's border space.
13517         - AddButton method created, now all other AddButton methods call this one.
13518         - Some other source code cosmetic changes.
13519
13520 2007-03-18  Jackson Harper  <jackson@ximian.com>
13521
13522         * RichTextBox.cs: Don't do this all fonts must match check if
13523         there is only one char selected.
13524
13525 2007-03-18  Jackson Harper  <jackson@ximian.com>
13526
13527         * TreeView.cs: ScrollWindow works properly now, so we don't need
13528         to screw around with the scroll area.  This fixes some artifacts
13529         when expanding and collapsing.
13530
13531 2007-03-18  Jackson Harper  <jackson@ximian.com>
13532
13533         * TextBoxBase.cs: Allow updating the selection position when the
13534         cursor is outside the textarea, but we have a capture.
13535         * TextControl.cs: A special case for when the cursor is outside
13536         the bounds of the TB.
13537         
13538 2007-03-18  Jackson Harper  <jackson@ximian.com>
13539
13540         * TextBoxBase.cs: Remove image pasting code for now.  There is no
13541         way to get an image on the clipboard right now anyways.
13542         * TextControl.cs:
13543         * RichTextBox.cs: Use the new RTF Picture class for pictures.
13544
13545 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
13546
13547         * MessageBox.cs:
13548         - Set window properties in constructor intead of on CreateParams.
13549         - Remove topmost from Window ExStyle.
13550         - Set ShowInTaskbar to false.
13551         - Set form border to FixedDialog.
13552         - Some cosmetic changes and remove unneeded comments.
13553         - It fixes itens 2,3 and 4 of bug #80043.
13554
13555 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
13556
13557         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
13558         none was explicitly set. Fixes part of bug #79949.
13559
13560 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
13561
13562         * ToolStripComboBox.cs: Add AutoComplete*.
13563
13564 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
13565
13566         * ToolStripComboBox.cs: Add FlatStyle.
13567
13568 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
13569
13570         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
13571         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
13572
13573 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13574
13575         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
13576           CheckBox.cs, RadioButton.cs, BindingSource.cs,
13577           DataGridColumnStyle.cs: Remove warnings.
13578
13579 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13580
13581         * Menu.cs: MergeMenu: Check menu argument for null before looping over
13582           it.
13583         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
13584           visibility of mdi child forms. FormSizeChangedHandler: update the
13585           maximized size if size has changed while maximized.
13586         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
13587           creating the handle.
13588         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
13589           avoid creating the handle if not created.
13590         * XplatUI.cs: Update debug output.
13591         * XplatUIStructs.cs: Added ToString's for a couple of structs.
13592
13593 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
13594
13595         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
13596         ProcessCmdKey().
13597         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
13598         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
13599         Implement keyboard shortcuts.
13600
13601 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
13602
13603         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
13604         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
13605         ColorDialog and all derived classes.
13606
13607 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
13608
13609         [ Fixes bug #79828 ]
13610
13611         * ToolBar.cs:
13612         - Rename ToolBarButtonInfor to ToolBarItem.
13613         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
13614         - Maintain an array of ToolBarItem, used instead of ToolBarButton
13615         collection to be able add same button more than one time on a toolbar.
13616         - Refactory all properties and methods to use ToolBarItem. 
13617
13618         * ToolBarButton.cs: 
13619         - Remove all propeties and methods that is now in ToolBarItem.
13620         - Rectangle propery now gets the rectangle from first ToolBarItem to
13621         mimic win32 behavior.
13622         - Size calculation and layout methods also removed.
13623
13624         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
13625         ToolBarItem instead of ToolBarButton to right drawing buttons when
13626         same button/separator was added more than one time to ToolBar.
13627
13628         * ThemeNice.cs: Same as above. 
13629
13630 2007-03-15  Andreia Gaita  <avidigal@novell.com>
13631
13632         * XplatUIX11.cs: Fire extra MouseMove events right after
13633         MouseDown and MouseUp, emulating win32's <censored> behaviour
13634         for apps that rely on it.
13635
13636 2007-03-15  Jackson Harper  <jackson@ximian.com>
13637
13638         * TextControl.cs:
13639         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
13640         it is drawn on the controls client window and there is no NC
13641         area.
13642         - Set the background color to gray on 2.0 when we are readonly.
13643
13644 2007-03-15  Chris Toshok  <toshok@ximian.com>
13645
13646         [ Fixes bug #81144 ]
13647         
13648         * XplatUIX11.cs: implement VirtualScreen independently of
13649         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
13650         property.
13651
13652 2007-03-15  Chris Toshok  <toshok@ximian.com>
13653
13654         * Hwnd.cs: add an internal field for the cached_window_state.
13655
13656         * XplatUIX11.cs: cache the window state, invalidating the cache
13657         (and thus re-querying the X server) only when we see an update to
13658         the _NET_WM_STATE property.
13659
13660 2007-03-15  Chris Toshok  <toshok@ximian.com>
13661
13662         * BindingSource.cs: get a lot of the unit tests working.
13663
13664 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
13665
13666         * Control.cs: Modify UpdateStyles to store distances when bounds >=
13667         0 instead of just bounds > 0.  [Fixes bug #80912]
13668
13669 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
13670
13671         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
13672         and methods.
13673
13674 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
13675         
13676         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
13677         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
13678         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
13679         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
13680
13681 2007-03-15  Chris Toshok  <toshok@ximian.com>
13682
13683         [ Fixes #81101 ]
13684         
13685         * Control.cs: add Ivan's fix for 81101, with a slight modification
13686         - you can set control.Target to null.
13687
13688 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
13689
13690         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
13691         HideDropDown, use Hide instead to prevent an NRE.
13692         [Fixes bug #81147]
13693
13694 2007-03-14  Jackson Harper  <jackson@ximian.com>
13695
13696         * TextBoxBase.cs: Mess with the creation stuff a little. We need
13697         to calculate the document before the handle is created, in some
13698         cases. (Actually just one case).
13699
13700 2007-03-14  Jackson Harper  <jackson@ximian.com>
13701
13702         * TextBoxBase.cs: Need to display the caret after letting the base
13703         wndproc handle the focus methods, because the caret display
13704         methods check the focus state.
13705         - Try to display the caret after updating it's position with SelectWord.
13706         - Don't need to do an immediate update on this recalc, since there
13707         will be an invalidate anyways.
13708
13709 2007-03-14  Jackson Harper  <jackson@ximian.com>
13710
13711         * TreeView.cs: Some workarounds so that we can match event order a
13712         little better.
13713
13714 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
13715
13716         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
13717         #80803. Avoid NullReferenceException when Control does not have
13718         parent. Fixed different blinkstyle issues. Only subscribe to Tick
13719         event a single time. Only draw error icon when control is created and
13720         visible. Fixes failing unit tests.
13721
13722 2007-03-14  Andreia Gaita  <avidigal@novell.com>
13723
13724         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
13725         Selecting events. Fire Leave and Enter events when changing tabs.
13726
13727 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
13728
13729         * TreeView.cs: Add TreeViewNodeSorter.
13730         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
13731
13732 2007-03-14  Chris Toshok  <toshok@ximian.com>
13733
13734         * Form.cs: go ahead and remove the RecreateHandles that jpobst
13735         removed earlier and I had him add back it.  It turns out metacity
13736         *does* in fact handle the MOTIF_WM_HINTS property changing, it
13737         just doesn't redraw the window titlebar until you resize the
13738         window.  This also means we aren't recreating the entire window
13739         hierarchy on X when you change this property.  And it looks better
13740         on windows, too.
13741
13742 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13743
13744         * ListViewItem.cs:
13745         * ListView.cs: Collecting selection information
13746         is now done in SelectedIndexCollection rather than in
13747         SelectedListViewItemCollection. This is done so we can
13748         have the selection information code in one single place
13749         (virtual mode selection information entirely depends on
13750         SelectedIndexCollection).
13751
13752 2007-03-13  Miguel de Icaza  <miguel@novell.com>
13753
13754         * ErrorProvider.cs: Add stubs for ISupportInitialize
13755
13756 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13757
13758         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
13759         in the right order with the right values, from the Checked property, 
13760         just as MS does (instead of triggering them from ListView).
13761
13762         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
13763
13764 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13765
13766         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
13767         the correct handler in OnItemCheck method (ItemCheckEventHandler 
13768         instead of EventHandler). This used to throw an InvalidCastException.
13769
13770 2007-03-13  Jackson Harper  <jackson@ximian.com>
13771
13772         * TextBoxBase.cs: Calculate the document before the handle is
13773         created, so there isn't an extra invalidate called.
13774
13775 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
13776
13777         * Form.cs: Don't set owner in ShowDialog until we are sure
13778         that we aren't going to throw an exception.  [Fixes bug #80773]
13779
13780 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
13781
13782         * TreeView.cs: Make it compile.
13783
13784 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
13785
13786         * Control.cs: Another place we don't call SizeFromClientSize.
13787         * Form.cs: Another place we don't call SizeFromClientSize.
13788         [Fixes bug #81125]
13789
13790 2007-03-12  Jackson Harper  <jackson@ximian.com>
13791
13792         * TreeView.cs: Basically emulating some strangness here with
13793         exanding nodes and setting node positions when windows aren't
13794         created.
13795         - Also attempting to walk the node tree less than previously, and
13796         just use visible order calculations for determining offsets.
13797         - oops made scrolling backwards.
13798         * TreeNode.cs: We need to start nodes with a zero visible order,
13799         because the order calcs are based on the first nodes order.
13800
13801 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
13802
13803         * Form.cs: Don't exit the program if RecreateHandle is called on
13804         the main form.
13805
13806 2007-03-12  Chris Toshok  <toshok@ximian.com>
13807
13808         * XEventQueue.cs: remove the use of PostQuitState.
13809
13810         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
13811         WM_QUIT message in GetMessage, return false (and if we're in the
13812         nested WaitForHwndMessage, repost the WM_QUIT message).
13813
13814 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
13815
13816         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
13817         or the MaximizeBox properties.  [Part of bug #80640]
13818
13819 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
13820
13821         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
13822         no links.
13823
13824 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
13825
13826         * ToolStripItem.cs: Fix some tests I broke by checking Visible
13827         instead of visible.
13828
13829 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
13830
13831         * FileDialog.cs: Use text of File name combobox to determine what
13832         files the user selected. Added tokenizer to parse the file names.
13833         Fixes bug #81123.
13834
13835 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
13836
13837         * Control.cs: We can't call SizeFromClientSize in the constructor,
13838         but we still need to do the same work, so make an internal version.
13839         [Fixes bug #80621]
13840
13841 2007-03-12  Jackson Harper  <jackson@ximian.com>
13842
13843         * TreeView.cs:
13844         * TreeNode.cs:
13845         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
13846         IsExpanded.
13847
13848 2007-03-12  Jackson Harper  <jackson@ximian.com>
13849
13850         * TextBoxBase.cs: Now that the handles are being created a little
13851         later, we need to make sure that the document is recalculated when
13852         the handle is created.
13853
13854 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
13855
13856         * Theme.cs: GetLinkFont abstract method added.
13857         
13858         * LinkLabel.cs: 
13859         - Remove CalcTrimRectangle, no longer needed.
13860         - Factor also remove, position issues must be fixed in libgdiplus.
13861         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
13862         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
13863         care about font used to draw links.
13864         - Set TabStop to true when control is "Selectable", control is selectable
13865         when have one or more links. Fixes #80501 (test case is also added).
13866         - Set the LinkArea values after links change, LinkArea values must be
13867         based in first link position and size, a test case was created.
13868         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
13869         the attribute must be true LinkArea.Length > 0. The same was applied to
13870         TabStop.
13871         
13872         * ThemeWin32Classic.cs: 
13873         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
13874         in draw method.
13875         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
13876         color change.
13877         - Draw focus rectangle for every parts focused, including parts that 
13878         is on another line, its because regions returns various rectangles
13879         and not only one. Needed to mimic W32 look.
13880         - Uses Graphics.Clip to delimite region painted, it mean that now 
13881         complete text is passed to DrawString, with this we solve layout
13882         issues without create another text renderer.
13883         - Uses Region.Intersect to fix some flickers problems, now only needed
13884         parts will redrawed.
13885         - This changes fixes #79614 and some other unreported issues, on Linux 
13886         some layout problems still remain, the problem is under 
13887         MeasureCharacterRanges but it is an libgdiplus bug.
13888
13889 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
13890
13891         * TextBox.cs: Set for foreground color.
13892         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
13893         this is already done in Control.
13894
13895 2007-03-10  Jackson Harper  <jackson@ximian.com>
13896
13897         * TextBox.cs: Set the background color, but reset the
13898         backcolor_set flag which is just for the user setting the
13899         background color.
13900
13901 2007-03-09  Chris Toshok  <toshok@ximian.com>
13902
13903         * Control.cs: really remove the call to XplatUI.SetVisible from
13904         CreateHandle(), like I said I did when I merged the branch.
13905
13906         * BindingSource.cs: implement some more of this stuff.
13907
13908 2007-03-09  Jackson Harper  <jackson@ximian.com>
13909
13910         * TextBox.cs: Don't explicitly set our background colors.
13911         * TextControl.cs:
13912         * TextBoxBase.cs: Draw readonly text.
13913         - Need to invalidate when backcolor or readonly are changed.
13914         
13915 2007-03-09  Jackson Harper  <jackson@ximian.com>
13916
13917         * TextBoxBase.cs: Don't set the forecolor until the handle is
13918         created.
13919         - Do not raise OnPaint, and removed some old debug code.
13920
13921 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
13922
13923         * ScrollableControl.cs: Fix mouse wheel scrolling.
13924
13925 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
13926
13927         * Control.cs: Wire up MouseDoubleClick event.
13928
13929 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
13930
13931         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
13932         top or bottom.
13933         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
13934         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
13935         item is added.  This logic was moved to ToolStrip.OnItemAdded.
13936         [Fixes bug #81090]
13937
13938 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13939
13940         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
13941
13942 2007-03-08  Jackson Harper  <jackson@ximian.com>
13943
13944         * TreeView.cs: Show the correct image for selected node (this used
13945         to work, not sure how the code got deleted). Also implemented 2.0 feature
13946         SelectedImageKey.
13947
13948 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13949
13950         * ListView.cs:
13951         * ListViewItem.cs: Cache index in items when retrieving them
13952         in VirtualMode.
13953
13954 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
13955
13956         * ToolStripItem.cs: Don't return the explicit_size if we are using 
13957         AutoSize.  Fixes invalidation issue when user has explicitly set a
13958         size and has AutoSize = true.
13959
13960 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
13961
13962         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
13963
13964 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
13965
13966         * DataGridView.cs: Remove event handler from DataView when a
13967         DataTable is used as DataSource.
13968
13969 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
13970
13971         * Control.cs: Create internal setter for client_size to allow it to be
13972         set without triggering resizing code.
13973         * Form.cs: Calculate client_size in constructor, only change client_size
13974         in FormBorderStyle property if Handle has been created.
13975         [Fixes #80574, #80791]
13976
13977 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
13978
13979         * SystemInformation.cs: Add TerminalServerSession.
13980
13981 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
13982
13983         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
13984         TreeView code.
13985
13986 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
13987
13988         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
13989         Handle before we were supposed to.  Now checks ActivateOnShow property
13990         in Control.
13991         * Control.cs: Add internal ActivateOnShow property.
13992         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
13993         for ActivateOnShow.
13994         * Hwnd.cs Remove no longer needed no_activate field.
13995
13996 2007-03-07  Jackson Harper  <jackson@ximian.com>
13997
13998         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
13999         2.0 properties
14000         * DrawTreeNodeEventHandler.cs: Add
14001         * DrawTreeNodeEventArgs.cs: Correct default value.
14002         
14003 2007-03-07  Chris Toshok  <toshok@ximian.com>
14004
14005         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
14006         to be called before NativeWindow.WndProc.  Put the HwndCreating
14007         magic there to hook up our Hwnd's to handles.
14008
14009 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
14010
14011         * DataGridView.cs: Comment out debug code.
14012
14013 2007-03-07  Chris Toshok  <toshok@ximian.com>
14014
14015         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
14016         to make the rest of the world happy]
14017
14018         * Control.cs (CreateHandle): there's no need to call
14019         XplatUI.SetVisible here, it's effectively done by
14020         XplatUI.CreateWindow on X now, and always was on windows.
14021
14022         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
14023         shortcircuit out of the loop if we have a message loop running on
14024         this thread.
14025
14026         [Changelog from merge]
14027
14028         2007-03-05  Chris Toshok  <toshok@ximian.com>
14029
14030                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
14031                 causes handle creation.
14032
14033         2007-02-28  Chris Toshok  <toshok@ximian.com>
14034
14035                 * ApplicationContext.cs: Add a flag to make sure we only raise the
14036                 ThreadExit event once (ExitThreadCore can be indirectly called
14037                 from a few places.)  I don't like the additional flag, but it
14038                 makes the event ordering/count correct.
14039
14040                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
14041                 without locking the collection.  An enumerator doesn't give us any
14042                 protection from modification anyway.  Lock the thread hash and
14043                 replace the complicated enumerator loop with a foreach.
14044                 (Application.CloseForms): make internal so it can be called from
14045                 ApplicationContext.  This should probably be moved to MWFThread.
14046                 (Application.ExitThread): don't call MWFThread.Current.Exit()
14047                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
14048                 when the runloop exits (in response to WM_QUIT.)
14049                 (Application.RunLoop): add a comment (and check) for
14050                 context.MainForm being null after setting context.MainForm.Visible
14051                 = true.  This is because you're perfectly free to dispose of a
14052                 form in VisibilityChanged.  Chalk this up to another case where we
14053                 need to synchronously generate WM_ACTIVATE from Control.Show.
14054                 Also, add handling for WM_QUIT here so we'll exit the loop.
14055                 
14056                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
14057                 fact that we don't wait if we're only unmapping the whole_window
14058                 makes me a bit nervous, but it doesn't seem to cause any problems
14059                 yet.
14060
14061                 also, add a comment about the stupid, broken and wrong resetting
14062                 of PostQuitState to false in GetMessage().
14063
14064                 In PostQuitMessage, we need to add a WM_QUIT message to the
14065                 thread's queue.  We use the FosterParent to get the right
14066                 handle/hwnd/queue.
14067
14068                 Lastly, in SetVisible, we need to unmap both windows, since the
14069                 waiting only happens when we're unmapping the client window.  So
14070                 now, the *only* time we unmap just the whole_window is in the hack
14071                 for resizing a control to 0,0.
14072                 
14073         2007-02-21  Chris Toshok  <toshok@ximian.com>
14074
14075                 * Application.cs (CloseForms): rewrite this so that we don't
14076                 modify the list while we're traversing it.
14077
14078         2007-02-20  Chris Toshok  <toshok@ximian.com>
14079
14080                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
14081                 of OnHandleCreated.
14082                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
14083                 handle is created.  otherwise we'll create it here.
14084                 (VerticalScrollEvent): same here.
14085
14086                 * Application.cs (CloseForms): call Form.Dispose, don't post
14087                 WM_CLOSE_INTERNAL.
14088
14089                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
14090                 here. Application should Dispose() of the Form's.
14091
14092                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
14093                 WM_DESTROY as well.
14094                 (MapWindow,UnmapWindow): only actually do the waiting for
14095                 SHOWWINDOW if the control we're dealing with is a Form.
14096                 (CreateWindow): if the control isn't a form, SendMessage
14097                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
14098
14099                 * Control.cs (SetVisibleCore): always use is_visible here, not
14100                 value.  If we use value, we can end up re-setting something
14101                 visible if, for instance, you do Control.Hide() in a delegate
14102                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
14103
14104         2007-02-20  Chris Toshok  <toshok@ximian.com>
14105
14106                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
14107                 the message we need.  PeekMessage returning false should not be a
14108                 condition under which we exit the loop.
14109
14110         2007-02-15  Chris Toshok  <toshok@ximian.com>
14111
14112                 * Control.cs (Refresh): only refresh if we've got a handle and are
14113                 visible.
14114                 (CreateAccessibilityInstance): CreateControl() here.
14115                 (UpdateChildrenZOrder): complicate the code loop even more by
14116                 taking into account controls that haven't had their handle
14117                 created, and those that aren't visible.  But on the flip side,
14118                 simplify the code by splitting it into two loops.  one which
14119                 builds up the list of child controls we're interested in, and the
14120                 other that sets the z order of those children.
14121
14122         2007-02-14  Chris Toshok  <toshok@ximian.com>
14123
14124                 * Control.cs: Control.AccessibilityObject causes the control to be
14125                 created, not just the handle.
14126
14127         2007-02-14  Chris Toshok  <toshok@ximian.com>
14128
14129                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
14130                 problem on X where a window might have its handle created (and be
14131                 visible) while the window is unmapped.  calling XConfigureWindow
14132                 on an unmapped window is bad, and generates X errors.
14133
14134         2007-02-13  Chris Toshok  <toshok@ximian.com>
14135
14136                 * Control.cs (CreateHandle): don't loop over our children setting
14137                 their parent here.  do it when in WndProc when we're shown.
14138                 (UpdateChildrenZOrder): make this internal so we can call it from
14139                 ScrollableControl.
14140                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
14141                 creating its handle.  Also, remove the calls to PerformLayout from
14142                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
14143                 OnVisibleChanged only seems to be called directly here for the
14144                 toplevel control.  It's propagated down the window hierarchy by
14145                 calls to child.OnParentVisibleChanged.
14146                 (OnVisibleChanged): don't do layout here - it's done (oddly
14147                 enough, according to a glance at stack traces on ms.net..) in
14148                 ScrollableControl.
14149                 
14150                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
14151                 z order of our children before calling PerformLayout.
14152
14153         2007-02-12  Chris Toshok  <toshok@ximian.com>
14154
14155                 [big change, fixes #80020]
14156                 
14157                 * AccessibleObject.cs: we need to make owner internal again to fix
14158                 some of ControlAccessibleObject.
14159
14160                 * Control.cs: lots of changes here.  add support for WM_CREATE,
14161                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
14162                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
14163                 we create child controls.  leave the MonoTODO's for the
14164                 accessibility calls, but fix the exceptions so the tests pass.
14165
14166                 Add the InvalidOperationExceptions to Invoke methods, and remove a
14167                 couple of InvokeInternal methods we aren't using.
14168                 
14169                 Also, add a couple of CreateHandle calls in places where we know
14170                 the handles are being created but our code doesn't reference
14171                 .Handle.
14172
14173                 Make SetVisibleCore call OnVisibleChange if the handle isn't
14174                 created.  If the handle is created, we rely on XplatUI.SetVisible
14175                 generating the event synchronously.
14176                 
14177                 Lastly, make sure we don't use this.Handle inside CreateHandle,
14178                 because we can call back into client (and that code can dispose of
14179                 the control).
14180
14181                 * XplatUIStructs.cs: misc/cleanup.
14182
14183                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
14184                 although we don't populate the wParam properly.
14185                 (CreateWindow): generate WM_CREATE.
14186                 (MapWindow,UnmapWindow): make these calls synchronous, at great
14187                 performance expense (particularly in the unmap case), to match
14188                 win32 behavior.
14189
14190                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
14191                 to call it.
14192                 (set_MdiParent): don't recreate the handle unless it's been
14193                 created already.
14194                 
14195                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
14196                 it's created.
14197
14198                 * NativeWindow.cs: this is probably the weirdest part of the
14199                 patch.  We need a way to link up the window being created to the
14200                 WM_CREATE message.  Since we can only be creating one window at a
14201                 time on a given thread, we keep track of a per-thread reference so
14202                 we can dispatch it properly.  We also need to keep track of the
14203                 Hwnd currently being created so that the win32 backend doesn't
14204                 have problems.
14205                 
14206                 * XplatUIWin32.cs: a similar change to the one we made in
14207                 NativeWindow.cs.
14208
14209 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
14210
14211         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
14212         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
14213         to draw the menu shortcut string.
14214
14215 2007-03-07  Jackson Harper  <jackson@ximian.com>
14216
14217         * TreeNode.cs: Add the 2.0 collapse method.
14218
14219 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
14220
14221         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
14222
14223 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
14224
14225         * DataGridView.cs: Change DataSource will clear column and row
14226         lists. Call Invalidate() to reflect DataSource change.
14227
14228 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
14229
14230         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
14231         and a new row is added to it.
14232
14233 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
14234
14235         * DataGridView.cs: Add columns when DataSource is en empty list but
14236         is a System.Data.DataView (from a System.Data.DataTable).
14237
14238 2007-03-06  Andreia Gaita  <avidigal@novell.com>
14239
14240         * Label.cs: Implement AutoEllipsis (2.0)
14241
14242 2007-03-06  Jackson Harper  <jackson@ximian.com>
14243
14244         * TreeView.cs: Implement 2.0 TopNode setter property.
14245         - Use a local var instead of the skipped_nodes field for computing
14246         how many nodes to skip.  Otherwise we won't scroll because the
14247         valuechanged handler checks if skipped_nodes is equal to the new
14248         value.
14249         - Implement 2.0 Sort method.
14250         - Add useless 2.0 DoubleBuffer property
14251         - Implement 2.0 LineColors property.  Lets you change the color of
14252         the lines in the tree. Terribly useful for creating non cohesive
14253         desktops.
14254         - Implement 2.0 image key feature.
14255
14256 2007-03-06  Jackson Harper  <jackson@ximian.com>
14257
14258         * TreeView.cs: We can't get the bounds of the nodes before raising
14259         the AfterSelect event, because that event could change the node's
14260         bounds (scrolling, font change, etc).
14261
14262 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14263
14264         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
14265         * Form.cs: Don't recreate handle when creating FormWindowManager, just
14266           update window styles. In CreateParams us VisibleInternal instead of
14267           VIsible to get the actual visible flag set for this form.
14268         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
14269           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
14270           handle the case when the form is already maximized, in which case
14271           it should be restored. Fixes #81043.
14272
14273 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14274
14275         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
14276
14277 2007-03-05  Jackson Harper  <jackson@ximian.com>
14278
14279         * TreeViewHitTestInfo.cs: implement.
14280
14281 2007-03-05  Jackson Harper  <jackson@ximian.com>
14282
14283         * InternalWindowManager.cs: class status fix.
14284
14285 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14286
14287         * InternalWindowManager.cs: All windows that have a parent
14288         are confined to their parent when they're being moved.
14289         Fixes #80822.
14290
14291 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
14292
14293         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
14294         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
14295
14296 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14297
14298         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
14299           buttons invisible before deciding which ones should be visible
14300           (fixes minimize/maximize buttons showing up in toolwindows). Remove
14301           an unused variable.
14302         * InternalWindowManager.cs: Remove warning.
14303
14304 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14305
14306         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
14307         to throw an InvalidOperationException is virtual mode is being used.
14308
14309 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
14310
14311         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
14312         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
14313         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
14314         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
14315         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
14316         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
14317
14318 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14319
14320         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
14321           driver.KeyboardDelay from XplatUI.KeyboardDelay 
14322         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
14323           (patch by Sergey Volk)
14324
14325 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14326
14327         * ToolWindowManager.cs: Added, contains logic for
14328           tool windows.
14329         * CreateParams.cs: Add a few helper methods and an
14330           internal variable to know which control the CreateParams belongs
14331           to.
14332         * Control.cs: Call Form.ChangingParent when the
14333           parent is about to be changed.
14334         * XplatUIX11.cs: DeriveStyles (): Set
14335           caption_height for all windows that have captions and are children.
14336           Update to use ToolWindowManager instead of InternalWindowManager
14337           for ToolWindows.
14338         * XplatUIWin32.cs: Set fake window styles for all
14339           windows that have window managers.
14340         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
14341           now duplicated for mdi windows when they are
14342           maximized, first for the buttons the window itself has, then for
14343           the buttons that appear in the menu bar. Makes things a little
14344           easier). Updated UpdateWindowDecorations, SetWindowState and the
14345           mouse eventhandlers accordingly.
14346         * Form.cs: Add ChangingParent (), contains the
14347           logic of what should happen when the parent changes. In MdiParent
14348           don't set things that ChangingParent () is doing. When handling
14349           WM_CLOSE, we can close the form if there are any other modal forms
14350           and the current form is a descendent of the modal form.
14351         * InternalWindowManager.cs: A lot of refactoring,
14352           the title buttons are now extracted to a separate container class
14353           that takes care of all button code (clicks, tooltips, etc). Moved
14354           Iconic|Maximized|Normal Bounds properties to this class from
14355           MdiWindowManager, so that the window state logic can succeed for
14356           other than mdi wm's. Implemented general window state change logic.
14357           Moved CreateButtons to ThemeWin32Classic, since the theme might
14358           override which buttons are available when as well as the exact
14359           location.
14360         * FormWindowManager.cs: Added, contains logic for
14361           normal forms.
14362         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
14363           which buttons go where (and if they are at all visible). 
14364           Removed special handling of maximized windows, since they aren't special. 
14365           In DrawManagedWindowDecorations don't try to draw the text if it is
14366           empty.
14367         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
14368           use whatever the wm gives us.
14369
14370 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
14371
14372         * ButtonBase.cs: Add 2.0 properties.
14373         * Button.cs: Override Draw for 2.0.
14374         * Control.cs: Add Entered and Selected properties.
14375         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
14376         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
14377         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
14378         buttons.
14379         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
14380
14381 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
14382
14383         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
14384
14385 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
14386
14387         * XplatUIWin32.cs: Register a new class with Windows each time we get
14388         a new ClassStyle.  [Fixes bugs #79432, #80817]
14389         * Controls.cs: Set the correct ClassStyle in CreateParams.
14390         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
14391
14392 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
14393
14394         * ListView.cs: Add fireEvent argument to ReorderColumn since the
14395         ColumnReordered event must not be signaled when modifying DisplayIndex
14396         of a ColumnHeader. Added internal ReorderColumns method which takes
14397         care of drawing, and updating the internal DisplayIndex of the
14398         ColumnHeader. Added AddColumn method which is invoked from
14399         ColumnHeaderCollection when adding or inserting columns, and which
14400         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
14401         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
14402         Recalculated dispay indices after removing a ColumnHeader.
14403         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
14404         match MS. Allows last display index to be returned after ListView
14405         is disposed. Update actual location of ColumnHeader when DisplayIndex
14406         is modified.
14407
14408 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
14409
14410         * LinkLabel.cs: Improve CalcTrimRectangle.
14411         
14412         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
14413
14414 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
14415
14416         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
14417         get rectangle as a result value.
14418
14419 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
14420
14421         * LinkLabel.cs: Theres some diferences between rectangle return from 
14422         MeasureCharacterRanges and the area used for DrawString to fix this 
14423         CalcMeasurementFactor method was created, it calcules the diferences
14424         to be use later to adjust rectangle in draw operations. Fixes #80473.
14425         
14426         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
14427         to adjust draw rectangle.
14428
14429 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
14430
14431         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
14432         text and some other changes to reduce and optimize source code.
14433
14434 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
14435
14436         * RadioButton.cs: Implement 2.0 event.
14437         * RelatedImageListAttribute.cs: Implement new class.
14438
14439 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
14440
14441         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
14442
14443 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
14444
14445         * CheckBox.cs: Implement 2.0 functionality.
14446
14447 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14448
14449         * ListView.cs: Refactor Add and AddRange methods of
14450         ListViewItemCollection, to not update the ListView
14451         everytime an item is added in AddRange. Also move the update
14452         code to a new CollectionChanged method, and call it
14453         from other methods that need it as well (this should also fix some
14454         bugs when Sorting is used).
14455
14456 2007-02-27  Jackson Harper  <jackson@ximian.com>
14457
14458         * TextControl.cs: Try to never let the caret stay in a non-text
14459         tag.
14460         * TextBoxBase.cs: Update the caret.
14461
14462 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
14463
14464         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
14465         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
14466         delete POINT structure, duplicate of one in XplatUIStructs.
14467         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
14468
14469 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
14470
14471         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
14472         edit box since otherwise the Label would immediately be set (even if
14473         the user did not modify the label). In OnKeyDown set Handled to true
14474         if Return or Escape was pressed. In ColumnHeaderCollection unlink
14475         columns that are to be removed. In ListViewItemCollection unlink items
14476         that are to be removed.
14477
14478 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
14479
14480         * TextRenderer.cs: If we set a GDI clip region, we need to clear
14481         it when we are done.  [Fixes bug #80949]
14482
14483 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
14484
14485         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
14486
14487 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14488
14489         * ListView.cs: I forgot to commit the changes for ListView 
14490         in my previous patch.
14491
14492 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
14493
14494         * Clipboard.cs: Partially implement an overload of SetDataObject.
14495         * Form.cs: Implement ShowWithoutActivation.
14496         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
14497
14498 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14499
14500         This is a first set of changes to make the Virtual mode works,
14501         by avoiding the retrieval of ListViewItem instances until
14502         draw time.
14503
14504         * ListView.cs: Store item position in the ListView instead of the
14505         ListViewItem, this way we don't request the Bounds property of
14506         ListViewItem inside the ListView calculations, as well as cache the item
14507         size in item_size field. Store indexes instead of ListViewItem
14508         instances in the matrix used by icon view. Add a ItemMatrixLocation
14509         struct to hold the row and col info of the matrix info.
14510
14511         * ListViewItem.cs: Don't store the location anymore, and only cache
14512         the rectangles for GetBounds. Use the ListView.GetItemLocation
14513         method to retrieve the actual location.
14514
14515 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
14516
14517         * TextRenderer.cs: Add clipping support, thanks to George.
14518         [Fixes bug #80949]
14519
14520 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
14521
14522         * ListViewItem.cs: Cancel label edit when item is removed from 
14523         ListView.
14524         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
14525         event before the edit textbox is displayed.  Added CancelEdit method
14526         which is used end to editing while ignoring the value set by the
14527         user. In EndEdit, set focus to ListView to avoid losing focus to
14528         other controls. In ListViewItemCollection.Clear, cancel editing of
14529         any of the items.  In Remove, cancel editing of item being removed.
14530         Avoid udplicate code by modifing RemoveAt to invoke Remove.
14531
14532 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
14533
14534         * FileDialog.cs: Update FSEntry when move is successful. Fixes
14535         bug #80948.  
14536
14537 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
14538
14539         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
14540         compatible with non X11 systems. Fixes #80901.
14541
14542 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
14543
14544         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
14545         whether the item should be unselected and reselect. We do no want this
14546         when we're starting to edit the label. Do not fire the 
14547         SelectedIndexChanged event from ListView when its already been fired
14548         by modifying ListViewItem.Selected. Fixes bug #80943.
14549
14550 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
14551
14552         * TextRenderer.cs: Previos commit logic was backwards.
14553
14554 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
14555
14556         * TextRenderer.cs: Don't add padding on MeasureText if we were
14557         sent the NoPadding flag.
14558
14559 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
14560
14561         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
14562         after DrawButton. To prevent image overlaps button borders SetClip and 
14563         ResetClip added before and after draw image. Fixes #79129.
14564
14565 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
14566
14567         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
14568         window size, it fix problem when you run under win32 that theres
14569         Size diferent than ClientSize. Also fix controls size and positions
14570         to mimic Win32. Fixes #80837.
14571
14572 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
14573
14574         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
14575         menu area to fix some problems for non X11 systems. Fixes #80613.
14576
14577 2007-02-22  Jackson Harper  <jackson@ximian.com>
14578
14579         * TreeNode.cs: When a node is expanded, set its is_expanded flag
14580         even if it doesn't have any children.
14581
14582 2007-02-22  Jackson Harper  <jackson@ximian.com>
14583
14584         * TreeView.cs: Calculate the top node 'on the fly', this
14585         eliminates issues where you need to click on the tree before
14586         scrolling it to get the top node computed correctly.
14587         * TreeNodeCollection.cs: We don't need to mess with the top node
14588         anymore.
14589
14590 2007-02-22  Jackson Harper  <jackson@ximian.com>
14591
14592         * DataGridViewRow.cs: Fix typo so height can actually be set.
14593         Patch by Peter Grimm.
14594
14595 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
14596
14597         * FileDialog.cs: Fixed support for renaming files and directories.
14598         * ListView.cs: Do not lose focus when edit is canceled. Process
14599         Escape as regular key (to prevent closing of dialogs).
14600
14601 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
14602
14603         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
14604         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
14605
14606 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
14607
14608         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
14609         did not modify label.
14610         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
14611         modified the text. Reset Label when user presses Escape in edit mode.
14612         Move focus to ListView after having cancelled or finished editing the
14613         label.
14614
14615 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
14616
14617         * ComboBox.cs: Removed unnecessary initializations. Marked items field
14618         private. Clear textbox when Text is set to null and SelectedIndex is
14619         already -1.
14620         * FileDialog.cs: Removed unnecessary initializations. Removed 
14621         workarounds for ComboBox bugs that are now fixed. Modified
14622         DefaultExt, InitialDirectory and Title property to change null to
14623         zero-length string in getters. Avoid directly accessing fields.
14624
14625 2007-02-20  Jackson Harper  <jackson@ximian.com>
14626
14627         * TextControl.cs: Remove RecalAlignments call, that was some
14628         debugging leftovers.
14629         - Don't use the line indent when we shouldn't.
14630         * RichTextBox.cs: Add support for paragraph left indents.
14631
14632 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14633
14634         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
14635         Seems like the class status pages doesn't catch params differences.
14636
14637 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
14638
14639         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
14640
14641 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
14642
14643         * ComboBox.cs: Setting Text should have no effect if item text of
14644         selected item exactly matches value. First lookup text using
14645         case-sensitive comparison, and fallback to case-insensitive comparison.
14646         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
14647         allow startIndex to be last index. Changed ArgumentOutOfRangeException
14648         paramname to match MS. Restart from first item if string is not found
14649         after startIndex. Fixed paramname of ArgumentNullException that is
14650         thrown for null value in ObjectCollection.Contains.
14651
14652 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
14653
14654         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
14655
14656 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14657
14658         * ListControl.cs: In SelectedValue use value.Equals to compare for
14659         equality instead of ==, otherwise it will fail for strings.
14660         Fixes #80794.
14661
14662 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14663         
14664         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
14665         since the caret won't show up unless ShowSelection is true. 
14666         Fixes #80795.
14667
14668 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14669
14670         * Application.cs: When disabling all forms but the main form, do not
14671           disable any descendants of the main form (such as mdi children or
14672           other parented forms). Fixes #80822 on Windows.
14673         * Form.cs: If we have a parent, set the WS_CHILD style.
14674         * Control.cs: Update the window styles if the control whose parent has
14675           changed is a form (the WS_CHILD style has to be switched).
14676
14677 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
14678
14679         * XplatUIStructs.cs: MsgUIState structure added.
14680
14681 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
14682
14683         * FileDialog.cs: Removed need for separate fileName field. On 2.0
14684         profile, do not check filename(s) for illegal character if filename(s)
14685         were set non-interactively but always check on 1.0 profile. Fixed NRE
14686          in DefaultExt and only strip off first leading dot. Improve exception
14687         message when invalid Filter is set. Do not ignore InitialDirectory if
14688         it does no exist. Store specified Title, and if empty use default
14689         title (depending on type of dialog). Added an internal DialogTitle 
14690         property for retrieving dialog title. Fixed logic of displayed dir to
14691         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
14692         string as its buggy.
14693         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
14694         FileName is a zero-length string (it can never be null). Override 
14695         DialogTitle property to set default title of dialog box.
14696         * SaveFileDialog.cs: Override DialogTitle property to set default
14697         title of dialog box.
14698
14699 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
14700
14701         * FileDialog.cs: Modify default text of filename and filetype labels
14702         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
14703         after we've updated the SelectedIndex. Fixes part of bug #80887.
14704         * SaveFileDialog.cs: Set text of filetype label.
14705
14706 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14707
14708         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
14709         label field. Needed by latest Jackson's fixes for ListView.
14710
14711 2007-02-16  Andreia Gaita  <avidigal@novell.com>
14712
14713         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
14714         print preview images.
14715
14716 2007-02-16  Jackson Harper  <jackson@ximian.com>
14717
14718         * ListView.cs: Make AfterLabelEdit work correctly.
14719         * FileDialog.cs: After changing the name of the folder, we have to
14720         make sure that it is created, or that we pop up an error because
14721         it already exists.
14722
14723 2007-02-16  Jackson Harper  <jackson@ximian.com>
14724
14725         * X11Dnd.cs: Implement aliases on mime handlers, so things like
14726         System.String are mapped to text.
14727         - Handle dataobjects, getting all the possible formats out of them
14728         - We dont need the drag event args before we give feedback. This
14729         allows feedback cursors to be immediate before selections have
14730         been converted.
14731
14732 2007-02-16  Jackson Harper  <jackson@ximian.com>
14733
14734         * TextBoxBase.cs: Modified the method for inserting images to
14735         taking a line and position instead of tag and position.
14736         * RichTextBox.cs: Handle PngBlip data by inserting the png image
14737         into the RTF file.
14738         * TextControl.cs: Allow images to be inserted as the first tag of
14739         a line.
14740         - Fix some off by one issues when we assume the first tag is a
14741         text tag, not an image tag.
14742
14743 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14744
14745         * ListView.cs: Set focus to ListView when ItemControl gets a
14746         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
14747         Fixes part of #80467.
14748
14749 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14750
14751         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
14752           validate Text input (if null or empty string reset Value to default
14753           value). Fixes #80830.
14754
14755 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14756
14757         * ListView.cs: Set owner as null for columns and items when
14758         Dispose is invoked. Fixes #80607.
14759
14760 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
14761
14762         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
14763         showing DropDowns, don't show a Grip when doing Flow layout.
14764         [This fixes the toolbox in PDN 2.72.]
14765         * ToolStripItem.cs: Add Anchor property and some internal properties to
14766         reduces needed changes to FlowLayout.
14767         * ToolStripOverflow.cs: Remove unused variable.
14768         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
14769         use it in the layout calculations.
14770
14771 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
14772
14773         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
14774         reported in #79640.
14775         
14776         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
14777         size calculation.
14778
14779 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
14780
14781         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
14782         MeasureString format, it can make button very large in some cases, it is
14783         strange but is what win32 do.
14784
14785 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
14786
14787         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
14788         size calculation.
14789
14790         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
14791         rendering, the value is based on MenuAccessKeysUnderlined.
14792
14793 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
14794
14795         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
14796         for most themes.
14797         
14798         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
14799         
14800         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
14801         and use MenuAccessKeysUnderlined instead.
14802
14803 2007-02-13  Andreia Gaita  <avidigal@novell.com>
14804
14805         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
14806         A selected control would not get a Focus call if:
14807                 - the default active control of the container is the same as
14808                   the one that was selected
14809                 - we are switching from one container to another
14810         Under these conditions, the container being selected already has
14811         an active_control, which is the same as the one being activated, 
14812         so set_ActiveControl would always return and not send the Focus
14813         call. Fix to check if the currently active control of the container
14814         is actually focused.
14815
14816 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
14817
14818         * StatusStrip.cs: Implement the spring layout.
14819         * ToolStripControlHost.cs: Make sure the hosted control's visibility
14820         always matches the host.
14821         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
14822         and TextAfterImage.
14823
14824 2007-02-13  Andreia Gaita  <avidigal@novell.com>
14825
14826         * Control.cs: Code reorganization only.
14827           - Reorganize the WndProc cases so that each case has it's own handling method, 
14828           to help with the no-line-numbering stack traces.
14829           - Formatting changes (it's vstudio's fault, really :p)
14830
14831 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14832
14833         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
14834           Thread.CurrentUICulture to match DateTimePicker's (and MS)
14835           behaviour.
14836
14837 2007-02-12  Jackson Harper  <jackson@ximian.com>
14838
14839         * RichTextBox.cs:
14840         * TextBox.cs: By default we have a non multiline document
14841         - use the multiline property instead of the internal variable
14842         * TextBoxBase.cs: Treat multiline and non multiline the same in
14843         most places.
14844         - Use the documents multiline flag instead of tracking it ourself
14845         * TextControl.cs: Attempt at getting multiline to match MS
14846         behavior.  Lines now track an offset, which is either their X or Y
14847         offset depending on whether or not we are in multiline mode.
14848         - Update all the methods to understand that lines have an X value.
14849         - Fix crash in Undo::Duplicate when empty lines are deleted.
14850
14851 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
14852
14853         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
14854         code moved to properties PreferredHeight and PreferredWidth. It solve the
14855         all problems when preferred sizes must be recalculated. Fixes #80801.
14856
14857 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
14858
14859         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
14860         font height when compatible_text_rendering is false. Partially fix #80801.
14861
14862 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
14863
14864         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
14865
14866 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
14867
14868         * Form.cs: Improved exception messages in ShowDialog.
14869
14870 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
14871
14872         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
14873         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
14874         if not set. Fixes bug #80764. Avoid accessing current_settings field
14875         directly.
14876
14877 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
14878
14879         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
14880         false.
14881
14882         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
14883         public in 2.0 and for easy maintenance and dont break compatibility it is 
14884         internal in 1.1.
14885         
14886 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
14887
14888         * ToolStripItem.cs: Implement using images from ImageList.
14889
14890 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14891
14892         * DateTimePicker.cs: Change default date-formatting culture from
14893           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
14894           seems to be the way MS does it.
14895
14896 2007-02-08  Andreia Gaita  <avidigal@novell.com>
14897
14898         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
14899         (the 6 was cut off on the right side)
14900
14901 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
14902
14903         * Form.cs: Tell MenuStrips to close when the form is clicked.
14904         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
14905         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
14906         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
14907         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
14908         support for Overflow, where items that do not fit are automatically
14909         reparented to a drop down menu.
14910         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
14911         Also: fixes bug #80747.
14912
14913 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14914
14915         * ComboBox.cs: Remove warning (unused code).
14916         * ScrollableControl.cs: Remove warning for 1.1 profile.
14917
14918 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14919
14920         * Form.cs: Remove a warning.
14921
14922 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14923
14924         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
14925           'g' specifier, not documented anywhere, but seems to always show up
14926           as a single space (might have something to do with the DateTime 'g'
14927           specifier, which is the era format, but since DateTimePicker can't
14928           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
14929           won't crash if the format has an unmatched quote. Now shows
14930           single-character formats correctly. Fixes #80744.
14931
14932 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
14933
14934         * StatusStrip.cs: Stretch property needs to call base.Stretch,
14935         not this.Stretch to fix stack overflow. [Fixes bug #80760]
14936
14937 2007-02-07  Chris Toshok  <toshok@ximian.com>
14938
14939         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
14940         background color.  it overwrites the background image we've
14941         already painted.  Fixes #80599.
14942
14943 2007-02-07  Chris Toshok  <toshok@ximian.com>
14944
14945         * DataGrid.cs: return immediately from Edit() when there are no
14946         columns.  Fixes #80662.
14947
14948 2007-02-07  Chris Toshok  <toshok@ximian.com>
14949
14950         * MessageBox.cs: fix #80625.  don't always show the Help button in
14951         2.0.  use the displayHelpButton parameter to determine if we
14952         should show it. Also, make the internal show_help field private.
14953
14954 2007-02-07  Chris Toshok  <toshok@ximian.com>
14955
14956         * Control.cs (SetVisibleCore): check in the proposed patch for
14957         80604, and set is_visible before calling CreateControl.
14958
14959 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
14960
14961         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
14962         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
14963         on it.
14964
14965 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
14966
14967         * MenuAPI.cs: hotkey_active internal field added, it is required because
14968         we need to know when hotkeys must be draw, before this change a keystate
14969         Navigating was used but we can have menu in navigating state without
14970         hotkeys. Fixes #80694.
14971         
14972         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
14973
14974 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14975
14976         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
14977           corresponding events and methods to be internal for 1.1 profile and
14978           public for 2.0 profile (required by SizeGrip).
14979         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
14980           implicit control list). Don't set the size nor the location of the
14981           SizeGrip anymore as it's not needed.
14982         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
14983           draw directly on the captured control (fixes #80656). Removed
14984           ShowGrip (it wasn't used anywhere), redraw (always true), added
14985           GetDefaultSize and GetDefaultRectangle to calculate defaults.
14986         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
14987           be called from SizeGrip.
14988
14989 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14990
14991         * Timer.cs: Throw ArgumentException if Interval <= 0.
14992
14993 2007-02-05  Jackson Harper  <jackson@ximian.com>
14994
14995         * TreeView.cs: We need to check scrollbar visibility when window
14996         visibility is updated, because non visible trees don't ever add
14997         scrollbars.
14998         * Cursor.cs: We want the override cursor to be reset to NULL when
14999         we set current cursor to the default cursor.
15000
15001 2007-02-05  Jackson Harper  <jackson@ximian.com>
15002
15003         * TextControl.cs: Don't have crlfs when we are non multiline.
15004         - Consolidate the line position.
15005
15006 2007-02-05  Jackson Harper  <jackson@ximian.com>
15007
15008         * X11Keyboard.cs: BACK+CTRL gets a special char code.
15009
15010 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15011
15012         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
15013           handling LeaveNotify->NotifyUngrab in order to send
15014           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
15015           after calling XUngrabPointer, so we call WindowUngrabbed directly
15016           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
15017         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
15018           MouseCaptureChanged correctly. Also create handles if changing
15019           Capture (matches MS behaviour).
15020
15021 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15022
15023         * SizeGrip.cs: Make the last change 2.0 only.
15024
15025 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15026
15027         * SizeGrip.cs: If resizing and the capture is lost, revert any size
15028           changes to initial size (fixes #80597).
15029
15030 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15031
15032         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
15033
15034 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15035
15036         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
15037           background) and only allow dragging if enabled. This way the
15038           sizegrip can be used to fill the open square that otherwise would
15039           have been shown in the bottom right corner of ScrollableControl
15040           when ScrollableControl is not suppose to support sizing.
15041         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
15042           sizegrip is shown and enabled, and hook up with necessary events.
15043
15044 2007-02-01  Chris Toshok  <toshok@ximian.com>
15045
15046         * DataGridTextBoxColumn.cs: clean up the
15047         GetFormattedString/GetColumnValueAtRow combination of functions.
15048         Also fix UpdateUI, and the initial state of
15049         IsInEditOrNavigateMode.
15050
15051         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
15052         aren't supposed to scroll the textbox here, we're supposed to
15053         scroll the datagrid.
15054
15055 2007-02-01  Chris Toshok  <toshok@ximian.com>
15056
15057         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
15058         setting the position.
15059
15060 2007-02-01  Chris Toshok  <toshok@ximian.com>
15061
15062         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
15063         here, since the most recent focus fixes keep us from generating
15064         the Leave event when our textbox gets focus.
15065         (Edit): we should be passing null for the column style's
15066         instantText parameter.
15067         
15068 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
15069
15070         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
15071         raised.  Fixes menu text/icons not showing up in PDN.
15072
15073 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15074
15075         * Control.cs: Remove code in constructor that makes every
15076         control with WS_CHILD set have initial location -1, -1.
15077
15078 2007-01-31  Jackson Harper  <jackson@ximian.com>
15079
15080         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
15081         XplatUIX11.
15082         * XplatUIX11.cs: Give teh keyboard to teh dnd.
15083
15084 2007-01-31  Jackson Harper  <jackson@ximian.com>
15085
15086         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
15087         - Remove some debug code.
15088
15089 2007-01-31  Jackson Harper  <jackson@ximian.com>
15090
15091         * XplatUIX11.cs: If you set the override cursor during a grab, it
15092         should actually override the grab cursor.  This comes into play
15093         when you are setting custom cursors in a DND feedback method.
15094
15095 2007-01-31  Jackson Harper  <jackson@ximian.com>
15096
15097         * X11Dnd.cs: Add support for handling the QueryContinue and
15098         GiveFeedback events.
15099         - Cancel drag and drop actions when the escape key is clicked.
15100         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
15101         can handle the ESCAPE key.
15102         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
15103         done when dnd events are continued after the button is released.
15104         - Add a new helper method so that dnd can translate key events.
15105
15106 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
15107
15108         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
15109         make it more obvious what is happening.
15110
15111 2007-01-30  Jackson Harper  <jackson@ximian.com>
15112
15113         * XplatUIX11.cs: Don't break when handling button release in drag
15114         and drop operations. We need that BUTTONUP message to get through
15115         so capture is released.
15116         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
15117         this is handled automatically when the mouse is down.
15118
15119 2007-01-30  Jackson Harper  <jackson@ximian.com>
15120
15121         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
15122         is closed, so we need to make sure that we aren't changing the
15123         dialog result when the OK (Open or Save) button has been clicked
15124         and we are closing the window ourselves.  Note we don't need to
15125         worry about the cache being written in this case, because it was
15126         already done in the previous FilOk call.
15127
15128 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15129         
15130         * DateTimePicker.cs: Remove a warning.
15131         * ComboBox.cs: Remove a couple of warnings.
15132
15133 2007-01-29  Chris Toshok  <toshok@ximian.com>
15134
15135         * XplatUIX11.cs: don't crash, and remove the icon if the user has
15136         set one, if SetIcon is passed a null icon.
15137
15138 2007-01-29  Andreia Gaita  <avidigal@novell.com>
15139
15140         * TextBox.cs: Redraw when the password characters changes
15141         * TextControl.cs: Check if textbox has a password char and draw 
15142         a line of password chars instead of the text in the line. LineTag gets 
15143         an extra Draw() method which allows document.Draw to override the text 
15144         that will be drawn. Removes 1024 char limitation on length of passworded 
15145         lines.
15146
15147 2007-01-29  Jackson Harper  <jackson@ximian.com>
15148
15149         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
15150         single chars is not.
15151
15152 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
15153
15154         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
15155         one pixel.  Fix a StackOverflowException caused by an overload wrongly
15156         calling itself.
15157
15158 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
15159
15160         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
15161         also remove ProcessArrowKey and put the code inside ProcessKeys.
15162
15163 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
15164
15165         * PaddingConverter.cs: Added.
15166
15167 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15168         
15169         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
15170         ShowPanels is false (fixes #80600). Only draw up to 127 characters
15171         of text (fixes #80601). For panels clip the text to draw to the
15172         panel (fixes #80603).
15173
15174 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15175
15176         * ComboBox.cs: Fixed implementation of ResetText.
15177
15178 2007-01-25  Jackson Harper  <jackson@ximian.com>
15179
15180         * TextControl.cs: For the last char of a line we need to use the
15181         line size, not that chars width, since it won't actually be
15182         computed since the right side of a char is based on the start of
15183         the left side of the next char, and the next char does not exist.
15184
15185 2007-01-25  Chris Toshok  <toshok@ximian.com>
15186
15187         * Splitter.cs: fix the new unit tests, and reindent some switch
15188         statements.
15189
15190 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15191
15192         * ComboBox.cs: Implemented 2.0 methods and events.
15193         * TextBoxBase.cs: Added OnTextUpdate, so that
15194         ComboBox.ComboTextBox can inform ComboBox of it.
15195
15196 2007-01-25  Jackson Harper  <jackson@ximian.com>
15197
15198         * TextControl.cs: Respect ShowSelection when deciding whether or
15199         not to display the caret, this allows comboboxes to have carets
15200         when the combotextbox does not have focus.
15201
15202 2007-01-25  Jackson Harper  <jackson@ximian.com>
15203
15204         * TextControl.cs: Add a Suspend/Resume for updating, basically the
15205         same as the Suspend/Resume for recalc, except this will do actual
15206         Invalidates.
15207         - New Undo manager, works much like the MS version.
15208         - Implemented Redo
15209         * TextBoxBase.cs: The Cut operation is undoable.
15210
15211 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15212         
15213         * TextBoxBase.cs: Don't antialias text. Makes it look way better
15214         on Windows (no difference on Linux).    
15215
15216 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15217
15218         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
15219         we don't want to activate any windows. Fixes #79433.
15220
15221 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
15222
15223         - ButtonBase.cs: Fix capitalization of parameter: disposing.
15224         [Fixes bug #80609]
15225
15226 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
15227
15228         * FileDialog.cs:
15229         - Move to using System.ComponentModel.EventHandlerList
15230         - Replace Refresh with Invalidate
15231         - Clear the mime filecache on closing
15232         - Some other memory reducing work. After beeing closed FD now uses
15233           only about 300 KB for the fdo mime stuff plus the memory of the
15234           cached icons.
15235         * Mime.cs: Changed coding style and removed unnecessary commented
15236         code. Some more memory memory reducing work.
15237
15238 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15239
15240         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
15241         a few other missing 2.0 properties.
15242         * Theme.cs: Added DrawFlatStyleComboBox.
15243         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
15244
15245 2007-01-24  Chris Toshok  <toshok@ximian.com>
15246
15247         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
15248         wake_waiting flag, not just when there's data to be read.  if we
15249         don't, then future wakeup's won't reach us and we'll be doomed to
15250         wait for the entire 1 second timeout forever (unless there are X
15251         events to be had).
15252
15253 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
15254
15255         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
15256         until you pass Items.Count, not Items.Count - 1 like 1.1.
15257
15258 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
15259
15260         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
15261
15262 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
15263
15264         * ToolStripContainer.cs: The recent Dock fix exposed that I was
15265         adding the panels in the wrong order.
15266
15267 2007-01-24  Jackson Harper  <jackson@ximian.com>
15268
15269         * TextBoxBase.cs: When we move the caret we also need to move the
15270         selection, this fixes some random crashing after doing select
15271         text, unselect, delete a char, paste.
15272
15273 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15274
15275         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
15276
15277 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
15278
15279         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
15280         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
15281         * ToolBar.cs: Force redraw in BackgroundImageChanged.
15282
15283 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
15284
15285         * ToolBar.cs:
15286         - Implement support for vertical toolbars. Fixes #80539;
15287         - Call LayoutToolBar when resize, it fix some other problems in layout.
15288         - Rename requested_height to requested_size, as we can have width on it
15289         when toolbar is vertical.
15290         - Create a private property "Vertical" that uses Dock to verify when 
15291         toolbar is vertical or not.
15292         - Set ControlStyles when change Dock property.
15293         - Refactory in LayoutToolBar to have better variables names and to support
15294         vertical toolbars.
15295         - Fixes default value for ButtonSize when button count is equal zero, size
15296         must be (39, 36) test case writed.
15297
15298 2007-01-23  Chris Toshok  <toshok@ximian.com>
15299
15300         * Control.cs: fix the checks so that they work correctly for mdi
15301         parents/children.
15302
15303 2007-01-23  Chris Toshok  <toshok@ximian.com>
15304
15305         * Control.cs: ControlCollection seems to have super-secret
15306         abstraction breaking knowledge of Mdi containers.  allow MdiClient
15307         to add toplevel controls.
15308
15309 2007-01-23  Chris Toshok  <toshok@ximian.com>
15310
15311         * Control.cs: throw an ArgumentException if a toplevel control is
15312         added to our control collection from ControlCollection.Add, as
15313         well as from ControlCollection.IList.Add.  This fixes the
15314         ControlSetTopLevelTest.TestTopLevelAdd unit test.
15315
15316         Also, in ControlCollection.IList.Add, don't through an
15317         ArgumentNullException, throw an ArgumentException, when value ==
15318         null.  This matches MS.
15319
15320 2007-01-23  Chris Toshok  <toshok@ximian.com>
15321
15322         * BindingSource.cs: initial, incomplete, implementation of
15323         BindingSource.
15324
15325 2007-01-23  Jackson Harper  <jackson@ximian.com>
15326
15327         * TextControl.cs:
15328         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
15329         that I can fix a broken unit test (TextBoxTest::ClearUndo)
15330         
15331 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
15332
15333         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
15334
15335 2007-01-23  Andreia Gaita  <avidigal@novell.com>
15336
15337         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
15338         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
15339         IndexOfKey() for 2.0
15340
15341 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15342
15343         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
15344         to prevent it from changing z-order.
15345         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
15346         leave UI updates in MdiWindowManager.
15347         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
15348         1 sized (NC handling goes weird on Linux otherwise).
15349         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
15350         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
15351         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
15352         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
15353         and SetWindowState(s) to allow for changing the size of an activated child
15354         before activating it (reduces a lot of flicker).
15355
15356 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
15357
15358         * Form.cs: Changing FormBorderStyle has different semantics based
15359         on whether the Form is visible or not.  If not visible, don't change
15360         the Size.  But InvalidateNC needs to be called to force the window
15361         to pick up the changes and redraw itself.  [Fixes bug #80574]
15362
15363 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
15364
15365         [Moma work]
15366         * ContainerControl.cs: ProcessCmdKey.
15367         * ErrorProvider.cs: new constructor.
15368         * Form.cs: fix AutoValidateEvent compiler warning.
15369         * Label.cs: fix OnAutoSizeChanged compiler warning.
15370         * MenuStrip.cs: fix CanOverflow compiler warning.
15371         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
15372         * TextBox.cs: Dispose.
15373         * ToolStrip.cs: CanOverflow, re-enable double buffering.
15374         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
15375         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
15376         * ToolStripItem.cs: Overflow, RightToLeft properties.
15377
15378 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15379
15380         * Form.cs: Move the layout of the main form to MdiWindowManager.
15381         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
15382         do a layout of the main window to update MdiClient's client area to
15383         the right area. Fixes #80533. Remove the calculation of nc size, 
15384         it was just wrong and the correct one is the same as for 
15385         InternalWindowManager. 
15386
15387 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
15388
15389         * Control.cs: Setting Anchor or Dock needs to reset the other
15390         to its default.  [Fixes bug #80556]
15391
15392 2007-01-20  Chris Toshok  <toshok@ximian.com>
15393
15394         * CheckedListBox.cs: class status changes.
15395
15396         * ScrollableControl.cs: same.
15397
15398         * RichTextBox.cs: same.
15399
15400         * ContainerControl.cs: same.
15401
15402         * ListView.cs: same.
15403
15404         * NotifyIcon.cs: same.
15405
15406         * MenuStrip.cs: same.
15407
15408         * RadioButton.cs: same.
15409
15410         * CheckBox.cs: same.
15411
15412         * PrintPreviewDialog.cs: same.
15413
15414         * Form.cs: same.
15415
15416 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
15417
15418         * TreeNode.cs: Apply Alan's patch for Name property.
15419
15420 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15421         
15422         * Form.cs: Implemented SizeGripStyle.
15423         * SizeGrip.cs: Check for minimum and maximum size for the
15424         control being resized and only resize if size has actually
15425         changed.
15426
15427 2007-01-19  Chris Toshok  <toshok@ximian.com>
15428
15429         * DataGridColumnStyle.cs: stop setting _readonly in the
15430         PropertyDescriptor setter.  fixes a unit test failure.
15431
15432         also, rename ParentReadOnly to TableStyleReadOnly, and have it
15433         just consult our table style (if we have one).  We don't need to
15434         consult the datagrid readonly attribute because that's passed in
15435         as the _ro arg to Edit.  this simplifies things a little.
15436         
15437         * DataGrid.cs: use CurrentColumn instead of
15438         current_cell.ColumnNumber just to simplify some of the code.
15439
15440         switch the order of some things in the CurrentCell setter to keep
15441         the previous cell from getting a textbox again -
15442         EnsureCellVisibility causes scrolling to happen, which calls Edit.
15443         So we need to set the new cell before calling it.
15444         
15445         call Edit in OnEnter, as does Microsoft.
15446         
15447         also, make sure the current table style isn't the one we create
15448         initially when checking to see if it's different than the one
15449         we're setting it to in BindColumns (this fixes #80421).
15450
15451         * GridTableStylesCollection.cs: table styles can have "" for a
15452         mapping name.  part of the fix for #80421.
15453
15454         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
15455         Edit significantly.
15456
15457 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
15458
15459         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
15460         and less GDI object leaky-er.
15461
15462 2007-01-18  Andreia Gaita  <avidigal@novell.com>
15463
15464         * LinkLabel.cs: Add opaque control style
15465
15466 2007-01-18  Jackson Harper  <jackson@ximian.com>
15467
15468         * TextControl.cs: Calculate width properly.
15469         - Don't store the tag's X offset, this can be figured out very
15470         easily.
15471         - When getting the caret tag make sure to get the last empty tag.
15472
15473 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
15474
15475         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
15476         [Fixes bug #79959]
15477
15478         * Control.cs: Color.Empty shouldn't count for previous transparent
15479         redraw changes.
15480
15481 2007-01-18  Jackson Harper  <jackson@ximian.com>
15482
15483         * TextBox.cs:
15484         * RichTextBox.cs:
15485         * TextControl.cs: Starting to merge in some pieces of my older
15486         undo work.  Basically just some slight cleanup of the undo API.
15487
15488 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15489
15490         * TrackBar.cs: Fix signature of RightToLeftLayout.
15491         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
15492         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
15493         * Application.cs: Implemented UseWaitCursor.
15494
15495 2007-01-18  Jackson Harper  <jackson@ximian.com>
15496
15497         * TextControl.cs: We can't skip tags if any part of the tag is
15498         visible.
15499
15500 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
15501
15502         * ContainerControl.cs: Override OnLayout.
15503
15504 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
15505
15506         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
15507
15508         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
15509         everything else.
15510
15511 2007-01-18  Chris Toshok  <toshok@ximian.com>
15512
15513         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
15514         (leftover from the container_selected days, I'd wager).  fixes bug
15515         #80546.
15516
15517 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
15518
15519         * Control.cs: Apply patch from George to fix the new testcase on
15520         bug #80451.  We can't just check for Color.Transparent, we need 
15521         to check if the back color's alpha channel is < 255.
15522
15523 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
15524
15525         * Form.cs: Move setting show_icon = true to before the constructor
15526         so that the base constructor has that information when it calculates
15527         the form's size.  Was causing forms to be (6, 6) bigger than they
15528         were supposed to be.  Thanks for catching this Rolf!
15529
15530 2007-01-18  Jackson Harper  <jackson@ximian.com>
15531
15532         * TextControl.cs: When replacing a selection we need to invalidate
15533         from the initial selection start, because selection start is moved
15534         to the end of the replacement.
15535
15536 2007-01-18  Andreia Gaita  <avidigal@novell.com>
15537
15538         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
15539
15540 2007-01-18  Chris Toshok  <toshok@ximian.com>
15541
15542         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
15543         I just added.
15544
15545 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
15546
15547         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
15548         layout methods and properties from ToolBarButton must be available
15549         into ToolBarButtonInfo.
15550
15551 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
15552
15553         * Control.cs: If the control has a transparent background, we
15554         need to refresh it when it moves and when it's parent's background
15555         image changes.  [Fixes bug #80451]
15556
15557 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
15558
15559         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
15560
15561 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
15562
15563         * XplatUIWin32.cs: Implement proper double buffering for Windows.
15564         [Fixes bug #80447, and probably speeds up things as well]
15565
15566 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15567
15568         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
15569         * XplatUIWin32.cs: We need to recalculate NC size after changing 
15570         window style to toolwindow (otherwise the client rectangle will be
15571         3 pixels to small for some reason).
15572         * MdiWindowManager.cs: Revert NC size calculations to match how
15573         they are calculated only based on window styles (to match
15574         Win32AdjustWindowRectEx, since otherwise when setting size or 
15575         location, Control will call Win32AdjustWindowRectEx to update client 
15576         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
15577         calculate a different value of client size causing another paint 
15578         (and flickering))
15579         * InternalWindowManager.cs: When moving or resizing a window only
15580         update size or location if they actually changed.
15581         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
15582         (seems to match Windows behaviour better). Cleaned up 
15583         ManagedWindowDecorations to draw what's needed and nothing else
15584         (was drawing borders and lines where they shouldn't be)
15585         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
15586         (style = 0xFFFF) and takes into account caption height when 
15587         calculating window rectangle.   
15588
15589 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
15590
15591         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
15592         can be added to toolbar multiple times, we need to maintain a list of 
15593         button information for each positions.
15594
15595 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
15596
15597         * ToolBar.cs: Some small stetic changes.
15598
15599 2007-01-16  Jackson Harper  <jackson@ximian.com>
15600
15601         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
15602         that allow us to have nested recalc = false blocks.
15603         - Add paste support for images in the RichTextBox
15604         * RichTextBox.cs: flush the text after the color is changed, so
15605         the change takes effect.
15606         - Use SuspendRecalc
15607         - Some extra debugging info
15608         * TextControl.cs: Tags no longer track their length, it is just
15609         computed from the next tags length, this makes things a little
15610         simpler and reduces places that we have to track length changes.
15611         - Refactored the linetag class a little so we could make it
15612         a base class for different kinds of tags
15613         - Created a image tag, a tag that can have a single image inserted
15614         into it
15615         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
15616         that we can call suspend multiple times.
15617         - Add some debugging methods
15618
15619 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15620
15621         * MdiClient.cs: Add ActivatePreviousChild for 
15622         mdi child window navigation.
15623         * Form.cs: Use MdiClient.ActivateNextChild/
15624         ActivatePreviousChild instead of Form.SelectNextControl
15625         to select the next/previous child since 
15626         SelectNextControl doesn't do it in the same order
15627         as mdi children should do it.
15628
15629 2007-01-16  Chris Toshok  <toshok@ximian.com>
15630
15631         * Control.cs: remove container_selected field.
15632
15633 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15634
15635         * MdiClient.cs: Update main form's ActiveChild when
15636         updating keyboard focus for the mdi child.
15637
15638 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
15639
15640         * Control.cs: PreferredSize fix.
15641
15642         * Form.cs: Add several 2.0 events, properties, and methods.
15643
15644 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
15645
15646         * Form.cs: Provide meaningful message when MdiParent is assigned a
15647         Form that is not an MdiContainer.
15648
15649 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15650
15651         * MdiClient.cs: Update main form's ActiveChild when
15652         activating a mdi child.
15653
15654 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15655
15656         * MdiWindowManager.cs: Fix NRE when merging menus and main form
15657         doesn't have a menu.
15658
15659         * Form.cs: Request NCRecalc after creating a mdi child window.
15660         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
15661         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
15662         
15663         * MdiClient.cs: Add new method SendFocusToActiveChild that either
15664         sends keyboard focus to the active child, or to the MdiClient
15665         if there are no child forms.
15666         
15667 2007-01-15  Chris Toshok  <toshok@ximian.com>
15668
15669         * ListView.cs: drop the *Internal overrides, just do our work in
15670         ItemControl's WndProc instead.
15671
15672         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
15673         of the various controls, and forward the events properly (in the
15674         same manner as MS) from the textbox to the UpDown.  Also the
15675         ActiveControl of the UpDownBase gets set properly now.  Finally,
15676         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
15677
15678         * NumericUpDown.cs: set Text in the ctor.
15679
15680         * DomainUpDown.cs: call UpdateEditText in the ctor.
15681         
15682         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
15683         so even a Selectable = false textbox can be focused if you click
15684         in it.  Go figure.
15685
15686         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
15687         just add their handling in their respective WndProc's.  Also add
15688         an explicit FocusInternal method that doesn't consult CanFocus
15689         before calling Select(this).
15690
15691         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
15692         do our work in WndProc instead.
15693
15694         * TabControl.cs: same.
15695
15696         * ComboBox.cs: same.
15697
15698 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
15699
15700         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
15701         Fixes #80006.
15702
15703 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
15704
15705         * ListViewItem.cs:
15706         * ThemeWin32Classic.cs: Don't draw the item text outside
15707         item bounds in Details view, as well as use trimming.
15708         Fixes bug #80376.
15709
15710 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
15711
15712         * Form.cs: Implement Form.ShowIcon.
15713         
15714         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
15715         null, which when combined with the DlgModalFrame window style removes
15716         the icon from the title bar.
15717
15718 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
15719
15720         * Control.cs: Call OnMouseClick after OnClick. (2.0)
15721
15722 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
15723
15724         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
15725         menu when mdi child windows theres a menu, uses insert to get icon
15726         at first position. Partially fix #80006.
15727
15728 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
15729
15730         * Clipboard.cs: Implement 2.0 methods.
15731
15732 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
15733
15734         * Menu.cs: Implement Insert method of MenuItemCollection class
15735         to fix MenuMerge.
15736
15737 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15738
15739         * ListView.cs: Implement 2.0 FindItemWithText method.
15740
15741 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
15742
15743         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
15744         to calculate menu bar size. Fixes #80290.
15745
15746 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
15747
15748         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
15749
15750 2007-01-11  Chris Toshok  <toshok@ximian.com>
15751
15752         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
15753         initial form.
15754
15755 2007-01-11  Chris Toshok  <toshok@ximian.com>
15756
15757         * LinkLabel.cs: make sure to call base.Select in our Select method
15758         if it turns out we're going to be selected (i.e. if we have a link
15759         that is going to receive focus).  That way our container's
15760         ActiveControl is updated properly.
15761
15762 2007-01-11  Chris Toshok  <toshok@ximian.com>
15763
15764         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
15765         they have 1 or more links.  this fixes the crash gert reported.
15766
15767 2007-01-11  Andreia Gaita  <avidigal@novell.com>
15768
15769         * ContainerControl.cs: Remove ContainerSelected flag, not needed
15770         anymore.
15771
15772         * Control.cs (Controls.Add): Check if control to be added to the collection
15773         is a top level control, and throw an ArgumentException if it is.
15774         Remove ContainerSelectedFlag, not needed anymore.
15775
15776         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
15777         top most control doesn't activate the form. This fixes a problem in the
15778         MessageBox, where the default button wouldn't get focus because the form
15779         was activated before being Loaded - when the Owner is set, SetTopMost is
15780         called, and it would activate it.
15781
15782 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
15783
15784         * Button.cs: When clicked and setting the parent form's DialogResult,
15785         use FindForm instead of Parent, since parent could be a container
15786         control and not the Form.  Fixes bug #80495.
15787
15788 2007-01-10  Chris Toshok  <toshok@ximian.com>
15789
15790         * Form.cs: move the call to SendControlFocus into the same
15791         is_loaded check.
15792
15793 2007-01-10  Chris Toshok  <toshok@ximian.com>
15794
15795         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
15796         It breaks in the face of the new ActiveControl stuff, and should
15797         be unnecessary.
15798
15799         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
15800         activecontrol's focus if it's not already set, after we set
15801         ActiveControl, but before we call OnActivated.  Re-fixes #79667
15802         after the previous focus/active control fixes regressed it.
15803
15804         * Control.cs: reindent some code.
15805         
15806 2007-01-10  Chris Toshok  <toshok@ximian.com>
15807
15808         * Splitter.cs: clearing some outstanding changes from my tree.
15809         Replace all accesses (not writes) to the internal dock_style field
15810         with the Dock property.
15811
15812 2007-01-10  Chris Toshok  <toshok@ximian.com>
15813
15814         * Control.cs: make FireEnter, FireLeave, FireValidating, and
15815         FireValidated virtual.
15816
15817         * Form.cs: override and don't chain up calls to FireEnter and
15818         FireLeave.
15819
15820 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15821
15822         * ListView.cs: Add more text padding space when using
15823         auto resize for columns (the previous value didn't work fine).
15824
15825         * ThemeWin32Classic.cs: Update text position inside columns,
15826         to match the appeareance of .Net.
15827
15828         * ColumnHeader.cs: When using auto resize, only the Width should
15829         depend on the sub items, not the Height. Also, set width after
15830         auto resizing (the value of Width should never remain as -1 or -2).
15831
15832 2007-01-10  Chris Toshok  <toshok@ximian.com>
15833
15834         * Application.cs: fix compilation errors when debug is enabled.
15835
15836 2007-01-10  Chris Toshok  <toshok@ximian.com>
15837
15838         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
15839         add some nice ascii art pictures and explanation of the process).
15840         (GetMostDeeplyNestedActiveControl): new utility function we need
15841         because our ActiveControl can refer to a child container with its
15842         own ActiveControl.
15843
15844         * Form.cs (OnActivated): remove the call to SelectActiveControl
15845         from here, since you can override this method and not chain up,
15846         and winforms still sets the active control.
15847         (OnCreateControl): also remove the unnecessary SelectActiveControl
15848         call from here.
15849         (WndProc): it's actually called from the WM_ACTIVATE block, just
15850         before calling OnActivated.
15851
15852         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
15853         inside the else.  the ActiveControl setter will end up setting
15854         focus on @control.  This keeps us from setting it again (and
15855         generating an extra LostFocus/GotFocus pair).
15856         (Select (bool, bool)): reindent.
15857
15858 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
15859
15860         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
15861         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
15862         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
15863         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
15864         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
15865         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
15866         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
15867         ToolStripTextBox.cs: Another wave of corcompare work.
15868
15869 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15870
15871         * ColumnHeader.cs: Implement 2.0 AutoResize method using
15872         the Width property.
15873
15874         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
15875         methods by callling Column.AutoResize method on columns.
15876
15877 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
15878
15879         * Control.cs: Provide proper implementations of PreferredSize
15880         and GetPreferredSize (2.0).
15881
15882 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
15883
15884         * Form.cs: Remove one character (!) to make my previous OnClosing
15885         stuff work for modal windows like MessageBox.
15886
15887 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15888
15889         * ListView.cs:
15890         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
15891         ListView.Columns to get the last displayed column. Fixes #80452.
15892
15893 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
15894
15895         * Label.cs, LinkLabel.cs: Source code identation fixes.
15896
15897 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
15898
15899         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
15900         we dont need to invalidate only borders because when we invalidate four
15901         border lines the invalidate's generates a complete redraw of button, 
15902         because it now invalidate a complete rect some other redraws operations
15903         are fixed. Fixes #80196.
15904         
15905         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
15906         Remove ToolBarInvalidateEntireButton as it is not used.
15907
15908 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
15909         
15910         * Form.cs: Make sure that both OnClosing and OnFormClosing are
15911         called for 2.0 profile.
15912         * CloseReason.cs: Make class internal for 1.1.
15913
15914 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
15915
15916         * ToolStripManager.cs: Implement FindToolStrip functionality.
15917         * ToolStrip.cs: Register and unregister with ToolStripManager.
15918
15919 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
15920
15921         * Control.cs: This was messy.  2.0 moves much of ControlCollection
15922         to ArrangedElementCollection.  Implemented this with as few #if's as 
15923         possible (which is still too many).
15924
15925 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
15926
15927         * Control.cs: Implement SizeFromClientSize() [2.0].
15928
15929 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
15930
15931         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
15932         use Theme.BorderSize to calculate area instead of static value 1, 
15933         by the way use new BorderStaticSize instead     Border3DSize when 
15934         border_static is true. Fixes #79537.
15935         
15936         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
15937         
15938         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
15939         it is not needed.
15940
15941 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
15942
15943         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
15944
15945 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
15946
15947         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
15948         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
15949         
15950         * Hwnd.cs: 
15951         - border_static field added, it will used to define when a control 
15952         theres 3D border but it must be static (thin).
15953         - In GetWindowRectangle use Theme.BorderSize to calculate area 
15954         instead of static value 1, by the way use new BorderStaticSize instead
15955         Border3DSize when border_static is true.
15956
15957         * XplatUIX11.cs, XplatUIOSX.cs: 
15958         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
15959         
15960         * Theme.cs: BorderStaticSize field added.
15961
15962 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
15963
15964         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
15965
15966 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
15967
15968         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
15969         mimic same behavior than win32 that set border only in CreateParams,
15970         it fix problems under CreateParams overrides. Fix #79442 and partial
15971         fix #79537.
15972         
15973         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
15974         of thi control you must call recreate handle. 
15975         
15976         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
15977         need to do anything as RecreateHangle will take care about borders.
15978
15979 2007-01-05  Mike Kestner  <mkestner@novell.com>
15980
15981         * ListView.cs: hack to eliminate Lost/Got focus notifications on
15982         cycles between the ItemControl and parent.  Fixes #80388.
15983
15984 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
15985
15986         * Control.cs: Lazy init layout engine. Do not directly use 
15987         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
15988
15989 2007-01-05  Chris Toshok  <toshok@ximian.com>
15990
15991         * DataGrid.cs: don't forceably rebind columns in SetDataSource
15992         unless our list manager has changed (i.e. unless we have reason to
15993         believe our columns have changed).  Fixes #80422.
15994         
15995         also, disable the call do BindColumns in
15996         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
15997         1.1 the event isn't raised in response to a column addition on a
15998         table.)
15999
16000 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
16001
16002         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
16003         that inheritors can not call it if they choose.  Fixes bug #80456.
16004
16005 2007-01-05  Andreia Gaita  <avidigal@novell.com>
16006
16007         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
16008         doesn't blow up with a null exception on marshalling.
16009         
16010 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
16011
16012         * Control.cs: Implement several 2.0 protected properties and methods.
16013         Ensure that all necessary events are being called when properties
16014         are set.
16015
16016 2007-01-05  Mike Kestner  <mkestner@novell.com>
16017
16018         * ListView.cs: implement PgUp/PgDn for Details view.  Also
16019         fixes First/LastVisibleIndex to use the item_control.ClientRect 
16020         instead of the parent control.  Fixes #80378.
16021
16022 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
16023
16024         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
16025           determine whether to use yard-pound or not (bug #78399).
16026
16027 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
16028
16029         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
16030         problems. So it is time to bring back the old popupbutton colors.
16031
16032 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16033
16034         * ColumnHeader.cs:
16035         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
16036         property by using the internal information of the
16037         columns order in ListView.
16038
16039 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
16040
16041         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
16042         Add 2.0 Tag properties.
16043
16044         * LinkArea.cs: Add 2.0 ToString method.
16045
16046 2007-01-03  Chris Toshok  <toshok@ximian.com>
16047
16048         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
16049         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
16050         when we're editing, which fixes #80047.
16051
16052 2007-01-03  Chris Toshok  <toshok@ximian.com>
16053
16054         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
16055         #80404.
16056
16057 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
16058
16059         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
16060         property and implementation.
16061
16062         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
16063         for MdiWindowListItem property.
16064
16065         * ToolStripDropDown.cs: Don't consider hidden menu items while
16066         laying out the menu.
16067
16068 2007-01-03  Andreia Gaita  <avidigal@novell.com>
16069
16070         * SendKeys.cs: window handle is not needed in win32, so just
16071         get the active window for X after parsing keys and don't use
16072         it when building the message; it is passed by parameter to the 
16073         Xplat method and used there to build the message instead. Also,
16074         wait for events to be processed on SendWait, as opposed to Send,
16075         which doesn't wait :) Playing with threads and Send() completely 
16076         hangs on ms.net, only SendWait() works.
16077         
16078         XplatUIX11.cs
16079         X11Display.cs: Check for valid window handle.
16080
16081 2007-01-03  Jackson Harper  <jackson@ximian.com>
16082
16083         * TextControl.cs: Need to prevent wrap calculations when replacing
16084         text (this was there before i removed it accidently).
16085         - Don't update the cursor during the positioning, just set it to
16086         selection_start at the end of the operaion.
16087
16088 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16089
16090         * Control.cs:
16091         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
16092         
16093 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16094
16095         * MonthCalendar.cs: Added Click and DoubleClick events again,
16096         but this time they only hide Control's Click and DoubleClick.
16097         
16098 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
16099
16100         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
16101         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
16102
16103 2007-01-02  Jackson Harper  <jackson@ximian.com>
16104
16105         * TextBoxBase.cs: We move the caret with the split now, so we
16106         don't need to explicitly move the caret after splitting.  This
16107         fixes the caret bumping down an extra line on Enter.
16108
16109 2007-01-02  Miguel de Icaza  <miguel@novell.com>
16110
16111         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
16112         2.72). 
16113
16114         * ScrollableControl.cs: Add Scroll event.
16115
16116 2007-01-02  Mike Kestner  <mkestner@novell.com>
16117
16118         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
16119         to fix all hdr height padding codepaths.  Fixes #80207.
16120
16121 2007-01-02  Chris Toshok  <toshok@ximian.com>
16122
16123         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
16124         setting it to the Control defaults anyway, and it being after the
16125         Dock set was screwing up layout.
16126         (set_Dock): don't short circuit out of setting base.Dock.  Also,
16127         no need to call UpdateStatusBar here, as it'll be re-layed out if
16128         it needs to be.
16129
16130 2007-01-02  Mike Kestner  <mkestner@novell.com>
16131
16132         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
16133         to header height for width == -1. Fixes the rest of #80207.
16134
16135 2007-01-02  Mike Kestner  <mkestner@novell.com>
16136
16137         * ListView.cs: rework the mouse event forwarding everaldo added
16138         to translate the coordinates to the parent control not
16139         raise the parent events until after we've done our work. Hover
16140         needs more work, in the case where HoverSelection is on, because
16141         the item control receives more than one MouseHover per Enter
16142         event, so we need to ensure only the "first" hover gets forwarded.
16143         Opening a minor bug for that.
16144
16145 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
16146
16147         * CheckedListBox.cs: Fixed SelectionMode to match MS.
16148         * ListControl.cs: Implemented AllowSelection property. Removed extra
16149         tabs.
16150         * ListBox.cs: Implemented AllowSelection property.
16151
16152 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
16153
16154         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
16155         SelectedItem, it prevent for errors when you must disable item
16156         before perform click. Fixes #80409.
16157
16158 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
16159
16160         * MenuAPI.cs: Prevent second level and beyond submenus to close
16161         until first level when move out side of popup.
16162         
16163 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
16164
16165         * MenuAPI.cs:
16166         - Down submenu positin in three pixels.
16167         - Closes sub menu when mouse leaves from menu. Fixes #80402.
16168
16169 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
16170
16171         * ThemeWin32Classic.cs:
16172         - Fix popup menu size adding one pixel on the top.
16173         - Down menu item border from two to one to mimic Win32.
16174         - Some source identation fixes. 
16175
16176 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
16177
16178         * ThemeWin32Classic.cs: Use float numbers to calculate size and
16179         position of menu arrows, it fix wrong arrow size.
16180
16181 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
16182
16183         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
16184         instead of line, it simplify draw operation and fix it using 3D
16185         borders to mimic Win32.
16186
16187 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
16188
16189         * StatusStrip.cs: Add implementation of the sizing grip.
16190
16191         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
16192         StatusStrip rendering.
16193
16194 2006-12-31  Chris Toshok  <toshok@ximian.com>
16195
16196         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
16197         override the layout style (anchor/dock) of the control.  assign to
16198         Dock instead.  Fixes bug #80416.
16199
16200         * ToolStrip.cs: same.
16201
16202 2006-12-31  Andreia Gaita  <avidigal@novell.com>
16203
16204         * ContainerControl.cs: Use ContainerSelected flag to check if 
16205         a Container is directly selected, or if Select is called on a 
16206         non-container. If a container is directly selected, focus events 
16207         should not be raised.
16208         Apply #80411 patch to throw exception on set_ActiveControl if 
16209         control is the same as the current one.
16210         
16211         * Control.cs: Use ContainerSelected flag (see above).
16212         Add invalidation check to raise event but not invalidate if 
16213         dimensions are 0.       
16214         Apply #80411 patch.
16215         
16216
16217 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
16218
16219         * MenuAPI.cs: After click, dont close popup menu when menu is
16220         ContextMenu. Fixes #80399.
16221
16222 2006-12-30  Chris Toshok  <toshok@ximian.com>
16223
16224         * ContainerControl.cs: make sure we throw the exception if the
16225         container control doesn't contain the control we're setting
16226         ActiveControl to.
16227
16228 2006-12-30  Chris Toshok  <toshok@ximian.com>
16229
16230         * Control.cs (SetTopLevel): fix the exception raised by
16231         SetTopLevel for child controls.
16232         (set_Anchor): call UpdateDistances when setting the anchor type.
16233         This fixes bug #80336.
16234
16235 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
16236
16237         * Theme.cs: For now, revert back to 8pt font.
16238
16239 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
16240
16241         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
16242         Fixes #80395.
16243
16244 2006-12-29  Chris Toshok  <toshok@ximian.com>
16245
16246         * Control.cs: reorder the code in OnResize to give the same event
16247         ordering as MS.
16248
16249 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16250
16251         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
16252         TileHorizontally and TileVertically.
16253         
16254 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
16255
16256         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
16257         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
16258         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
16259         Corrected copyright and email adress.
16260
16261 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
16262
16263         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
16264         of Exception in FullPath property if no TreeView is associated with
16265         the TreeNode.
16266
16267 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
16268
16269         * Theme.cs: Marked default_font as private, and initialize it in ctor
16270         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
16271         on 2.0 profile.
16272         * ThemeGtk.cs: Removed default_font intialization.
16273         * ThemeWin32Classic.cs: Removed default_font initialization.
16274
16275 2006-12-28  Chris Toshok  <toshok@ximian.com>
16276
16277         * Control.cs: fix a couple of place where we were creating handles
16278         more aggressively than we should be.  Fixes ControlRefresh unit
16279         tests.
16280
16281 2006-12-28  Chris Toshok  <toshok@ximian.com>
16282
16283         * Control.cs: contrary to what the comment said, Control.Dock does
16284         not supercede Control.Anchor - the last one you assign to decides
16285         the layout behavior.  so we need to keep track of which was the
16286         last set.  Also, fix some of the affected property arguments in
16287         PerformLayout calls, and remove an redundant parent.PerformLayout
16288         call in OnResized.
16289
16290         Add a VisibleInternal property, which returns is_visible.  We
16291         can/should get rid of all the usage of this field elsewhere.
16292
16293 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16294         
16295         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
16296         control style, not DoubleBuffer. Added UseDoubleBuffering property
16297         that indicates whether doublebuffering is enabled and supported.
16298         (comment from and code based on Gert Driesen's patch in #80324).
16299         Fixes #80324.
16300
16301 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16302         
16303         * Control.cs: Fixed a NRE.
16304
16305 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16306
16307         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
16308         for 2.0.
16309
16310 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16311
16312         * Control.cs: Rewrote double buffering, now a seperate
16313         class handles all the buffering, no Graphics is disposed of
16314         until the painting is finished (earlier implementation 
16315         would crash if the control was resized in the OnPaint, 
16316         since it would cause the double buffer to be recreated
16317         and the old one disposed), a separate Graphics is 
16318         created for every paint (MS behaviour and anyways the state
16319         of the Graphics would have to be saved and restored otherwise)
16320         
16321         * XplatUIDriver.cs: 
16322         * XplatUIX11.cs:
16323         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
16324         so that we can get the graphics for the back buffer without
16325         having to create a new one and remove the offscreen_dc parameter
16326         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
16327         
16328 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16329
16330         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
16331         Also make virtual all the key-related methods.
16332
16333         * ListViewItem.cs: Make virtual the key related methods for
16334         ListViewSubItemCollection.
16335
16336 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16337
16338         * ListView.cs:
16339         * ListViewItem.cs:
16340         * ThemeWin32Classic.cs:
16341         * Theme.cs: Initial support for Tile view in ListView,
16342         as well as the implementation of the required bits for it (Item
16343         and Subitem).
16344
16345 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
16346
16347         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
16348         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
16349         Provide useful exception messages.
16350
16351 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16352
16353         * TrackBar.cs: Remove a warning.
16354         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
16355         when used by DateTimePicker, fixes #80287. This also requires that 
16356         MonthCalendar implements it's own drawing for the yearly updown control,
16357         otherwise the Capture tracking would be too complicated. Removed the Click 
16358         and DoubleClick events (according to comments they were hiding the base class
16359         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
16360         raise these events, not that they cannot be raised. It is possible to raise 
16361         them by calling OnClick and OnDoubleClick). Added two internal fields in 
16362         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
16363         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
16364         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
16365         event, no longer needed.
16366         
16367 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
16368
16369         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
16370         true if new value differs from current value.
16371
16372 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
16373
16374         * Control.cs: ControlCollection.Count must be public. Fixed build of
16375         unit tests.
16376
16377 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
16378
16379         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
16380
16381 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
16382
16383         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
16384
16385 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
16386
16387         * Control.cs: Invalidates control including when Width and Height is 
16388         equal zero or is not visible, only Paint event must be care about 
16389         this. Fixes #79913.
16390
16391 2006-12-26  Chris Toshok  <toshok@ximian.com>
16392
16393         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
16394         more corcompare work.
16395
16396         * DataGridView.cs: fix compiler warning.
16397
16398         * ColumnHeader.cs: some corcompare work, and also take the
16399         opportunity to make the internal fields private.
16400
16401         * ListView.cs: fix the fallout from the above field change.
16402
16403 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
16404
16405         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
16406         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
16407         ToolStripTextBox.cs: Fixes to events and corcompare.
16408
16409 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
16410
16411         * ListView.cs: Call owner.OnMousexx event to propagate events from
16412         item to ListView. Fixes #80367.
16413
16414 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
16415
16416         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
16417         if value is less than one. ItemHeight should not be set to a value
16418         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
16419         Removed extra tabs.
16420
16421 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
16422
16423         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
16424         * ToolStripStatusLabel.cs: Add Spring for Moma.
16425
16426 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
16427
16428         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
16429         Fixed code formatting. Removed debug code.
16430         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
16431
16432 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
16433
16434         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
16435         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
16436         ArgumentOutOfRangeException if ColumnCount is negative. In 
16437         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
16438         less than 4 or higher than 32768.
16439         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
16440         Fixed FormatProvider to return CurrentCulture unless explicitly set.
16441         Fixed IsFormatProviderDefault to return true if FormatProvider has
16442         not been explicitly set.
16443
16444 2006-12-25  Chris Toshok  <toshok@ximian.com>
16445
16446         * Application.cs: add a couple of 2.0 events.
16447
16448 2006-12-25  Chris Toshok  <toshok@ximian.com>
16449
16450         * Control.cs: fix compiler warning.
16451
16452         * AxHost.cs: corcompare fixes.
16453
16454         * ApplicationContext.cs: corcompare fixes.
16455
16456 2006-12-25  Chris Toshok  <toshok@ximian.com>
16457
16458         * Control.cs: only update dist_right/dist_bottom if the
16459         width/height is > 0.  this fixes anchored controls being resized
16460         smaller until they disappear and then resized larger again.
16461
16462 2006-12-25  Chris Toshok  <toshok@ximian.com>
16463
16464         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
16465         since they're nothing more than X/Left and Y/Top, respectively.
16466
16467         Also, move back to a per-control Bitmap/Graphics for
16468         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
16469         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
16470         Height.
16471
16472 2006-12-25  Miguel de Icaza  <miguel@novell.com>
16473
16474         * MessageBox.cs: Implemented overload that takes a new "bool
16475         displayHelpButton" by adding a new internal field "show_help".
16476         When clicked this will raise the HelpRequested on the owner or the
16477         main form. 
16478
16479         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
16480         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
16481
16482         * ListView.cs: Add support ColumnWidthChanged and
16483         ColumnWidthChanging. 
16484
16485         Add support for ColumnReordered event.
16486         (ReorderColumn): Add NET_2_0 specific support for cancelling the
16487         reorder.
16488
16489         Very nice codebase!
16490
16491         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
16492
16493         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
16494
16495 2006-12-24  Chris Toshok  <toshok@ximian.com>
16496
16497         * GridTablesFactory.cs: 2.0 corcompare work.
16498
16499         * ToolStripContainer.cs: add "override" to
16500         ContextMenuStripChanged, and remove the local event object.
16501
16502         * ToolStripDropDown.cs: same with a couple properties.
16503
16504         * ToolStripPanel.cs: same with AutoSizeChanged event.
16505
16506         * TextBoxBase.cs: add "override" to AutoSizeChanged.
16507
16508         * Form.cs: add the remaining 2.0 events, and do some corcompare
16509         attribute work.
16510
16511         * DateTimePicker.cs: add "new" to padding.
16512
16513         * ButtonBase.cs: use Control's use_compatible_text_rendering.
16514
16515         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
16516
16517         * DataGridView.cs: PaddingChanged is overridden.
16518
16519 2006-12-24  Chris Toshok  <toshok@ximian.com>
16520
16521         * Control.cs: corecompare work here too.
16522
16523         * DataGridViewElement.cs, DataGridView.cs,
16524         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
16525         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
16526         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
16527         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
16528         work.
16529
16530 2006-12-24  Miguel de Icaza  <miguel@novell.com>
16531
16532         * Control.cs: Switched the error message on the console for a
16533         todo.  A review of the code will have to cope with this anyways
16534         (since its a large feature, it is in our radar) and it was
16535         producing too much output when running PDN.
16536
16537         * ToolStripComboBox.cs: Set the text when the SelectedIndex
16538         changes.  Applications depend on this (PDN 2.72)
16539
16540 2006-12-23  Chris Toshok  <toshok@ximian.com>
16541
16542         * TableLayoutSettings.cs: finish up the corcompare work for this
16543         class.
16544
16545 2006-12-23  Chris Toshok  <toshok@ximian.com>
16546
16547         * Control.cs: make SetImplicitBounds internal, do some futzing
16548         with LayoutEngine so that it's available in 1.1, and remove the
16549         entire duplicated code mess from PerformLayout.  Use
16550         System.Windows.Forms.Layout.DefaultLayout instead.
16551
16552         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
16553
16554 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
16555
16556         * Form.cs: Add MainMenuStrip property.
16557
16558 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
16559
16560         * Control.cs: Add ContextMenuStrip property and implementation.
16561         Fix ContextMenu implementation to show menu centered on control when
16562         activated using the keyboard instead of showing at screen (0,0).
16563
16564         * ToolStripDropDown.cs: Fix needed overload of Show ().
16565
16566 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
16567
16568         * Menu.cs: Name property added for 2.0 profile.
16569         
16570 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
16571
16572         * Menu.cs: Update information about FindMenuItem, method to be
16573         implemented soon.
16574
16575 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
16576
16577         * MenuAPI.cs: When deselect items deselect also selected subitems.
16578         
16579 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
16580
16581         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
16582         FindSubItemByCoord to found itens that is not active, also an
16583         cheking added to FindSubItemByCoord to search for items only 
16584         in visible popup windows. Fixes #80274.
16585
16586 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
16587
16588         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
16589         internal property, it be care about change ExStyle. 
16590
16591 2006-12-22  Andreia Gaita  <avidigal@novell.com>
16592
16593         * ContainerControl.cs: set activeControl for parent forms up the 
16594         tree when the new activecontrol is a container.
16595         When validating the active control, if it is a container, also
16596         raise up the validation for it's active control. Fixes #80280
16597         
16598         * Control.cs: Add internal property flag and check to prevent
16599         Focus events from getting raised when Select() is called for
16600         a ContainerControl. There are still too many focus events being
16601         raised at the moment though.
16602         Cleaned up the code a bit.
16603
16604 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16605
16606         * Control.cs: Added all missing 2.0 events.and
16607         fixed a couple of corcompare issues.
16608         * TrackBar.cs: Implemented missing 2.0 bits.
16609         * MonthCalendar.cs, 
16610         * DateTimePicker.cs, 
16611         * MdiClient.cs: Fixed some corcompare issues.
16612
16613 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
16614
16615         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
16616         SplitterPanel.cs: corecompare work.
16617
16618 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
16619
16620         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
16621         Clean up warnings for BackgroundImageChanged and PaddingChanged
16622         events now that they are implemented in Control.cs.
16623
16624 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
16625
16626         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
16627         
16628         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
16629         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
16630         of TableLayoutPanel and supporting cast.
16631
16632 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16633
16634         * XplatUIWin32.cs: 
16635         - GrabWindow now confines the mouse pointer to the confine window.
16636         - Added Win32ClipCursor and Win32GetClipCursor.
16637
16638         * Control.cs: 
16639         - Added CaptureWithConfine to be able to capture and confine 
16640         mouse pointer.
16641         
16642         * InternalWindowManager.cs: 
16643         - Call CaptureWithConfine instead of Capture if we're an
16644         MdiChild (fixes #79982).
16645
16646 2006-12-21  Chris Toshok  <toshok@ximian.com>
16647
16648         * DataGrid.cs: guard against the initial state of selection, where
16649         selection_start == -1.  make sure we only select from index >= 0.
16650         Fixes bug #80291.
16651
16652 2006-12-21  Chris Toshok  <toshok@ximian.com>
16653
16654         * Control.cs: we don't need to be so draconian with
16655         UpdateDistances, and we thusly don't need to call it before
16656         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
16657
16658 2006-12-21  Daniel Nauck  <dna@mono-project.de>
16659
16660         * ComboBox.cs,
16661         TextBox.cs: Implemented AutoComplete properties.
16662
16663 2006-12-20  Chris Toshok  <toshok@ximian.com>
16664
16665         * DataGridView*.cs: some corecompare work.
16666
16667 2006-12-20  Jackson Harper  <jackson@ximian.com>
16668
16669         * XplatUIX11.cs: We need to hide the caret when deleting it,
16670         otherwise you get carets left lying around everywhere.
16671         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
16672         prevents getting some weird half drawn caret tracers when
16673         scrolling.
16674         * TextControl.cs: Attempt to reduce the number of times we need to
16675         recreate the caret.
16676
16677 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
16678
16679         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
16680
16681 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16682
16683         * DateTimePicker.cs:
16684         - Implemented missing 2.0 bits.
16685         - Changed some default values to match MS.
16686         
16687 2006-12-20  Jackson Harper  <jackson@ximian.com>
16688
16689         * TextBoxBase.cs: When changing the font across the document we
16690         can't recalculate after changing each line, since that will cahnge
16691         the line count.
16692         - PreferredHeight is a little different than i thought.
16693         - When backspacing, move the caret before we do the actual char
16694         delete, because when that delete crosses a wrap boundary the
16695         positional information will change.
16696
16697 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16698
16699         * Control.cs: Added some missing 2.0 bits: 
16700         BackgroundImageLayout, BackgroundImageLayoutChanged, 
16701         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
16702         add IBindableComponent and IDropTarget implementation.
16703         
16704         * MonthCalendar.cs: 
16705         - Added all missing 2.0 features:
16706         BackgroundImageLayout, RightToLeftLayout, 
16707         OnHandleDestroyed, RightToLeftLayoutChanged, 
16708         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
16709         PaddingChanged.
16710         - Rewrote all the BoldDate code, it was completely broken.
16711         - Fixed all the tests (the tests can now be re-enabled, the
16712         problems were not with the tests, but with the control, it was
16713         mostly broken).
16714         
16715         * DateTimePicker.cs: Changed the location where the 
16716         MonthCalendar is shown.
16717         
16718 2006-12-19  Chris Toshok  <toshok@ximian.com>
16719
16720         * DataGridView.cs: add IDropTarget implementation.
16721
16722         * ToolStripPanel.cs: add IDropTarget implementation.
16723
16724 2006-12-19  Jackson Harper  <jackson@ximian.com>
16725
16726         * TextControl.cs: soft now means something different than what it
16727         used to mean, we want to move the caret regardless of whether or
16728         not this break was soft (would we really have wanted the caret
16729         to not move with the break in the old context?)
16730         * TreeView.cs: Make sure we factor in the vert scrollbar when
16731         calculating the horizontal scrollbar's maximum.
16732
16733 2006-12-19  Andreia Gaita  <avidigal@novell.org>
16734
16735         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
16736         check for keywords in alternate casing, close bug #80049.
16737
16738 2006-12-19  Chris Toshok  <toshok@ximian.com>
16739
16740         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
16741         methods (which all do nothing).
16742
16743         * IDropTarget.cs: add the 4 missing methods.
16744
16745 2006-12-19  Chris Toshok  <toshok@ximian.com>
16746
16747         * TableLayoutRowStyleCollection.cs: corcompare work.
16748         
16749         * TableLayoutSettings.cs: same.
16750
16751         * TableLayoutStyle.cs: same.
16752
16753         * TableLayoutColumnStyleCollection.cs: same.
16754
16755 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
16756
16757         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
16758         TableLayoutPanel I've had in my local tree for way too long.
16759
16760 2006-12-19  Miguel de Icaza  <miguel@novell.com>
16761
16762         * TableLayoutSettings.cs: Finish the public API (still needs all
16763         the logic to update on changes). 
16764
16765         * TableLayoutPanelCellPosition.cs: new file.
16766         
16767         * TableLayoutRowStyleCollection.cs,
16768         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
16769         TableLayoutSettings.cs: Track the final 2.0 table api.
16770
16771 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16772
16773         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
16774         and Image List 2.0 members for ColummnHeader.
16775         * ListView.cs: Add key-related 2.0 methods for
16776         ColumnHeaderCollection.
16777
16778 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
16779
16780         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
16781         ArgumentNullException if items argument is null. Ignore null item in
16782         arrays. Removed extra tabs.
16783
16784 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
16785
16786         * MonthCalendar.cs: Fixed InvalidCastException.
16787
16788 2006-12-19  Jackson Harper  <jackson@ximian.com>
16789
16790         * TextControl.cs: Don't increment the position here.
16791         - When calculating char positions only add in the line break size
16792         for hard line breaks.
16793
16794 2006-12-19  Andreia Gaita  <avidigal@novell.org>
16795
16796         * SendKeys.cs: Changed some things to match ms.net behaviour
16797         when parsing shifted capital letters.
16798         
16799         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
16800         Add window handle as parameter to SendInput. X11 needs the 
16801         window handle, and the handle being passed      to it in the keys 
16802         queue is the active control handle (which windows needs), not 
16803         the window handle.
16804         
16805         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
16806         to support SendKeys on X.       
16807         
16808         * X11Keyboard: Implement helper method to lookup a linux keycode
16809         given the virtual keycode. Added table of keycode-2-virtualkey
16810         values to support this.
16811
16812 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16813
16814         * ListView.cs: Add support for SelectedIndexCollection
16815         and SelectedItemCollection 2.0 methods. Implement support
16816         for ImageKey too.
16817         * ListViewItem.cs: Add support for ListViewSubItemCollection
16818         2.0 methods. Also, fix an incorrect behavior of AddRange method
16819         (it shouldn't call Clear).
16820         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
16821
16822 2006-12-19  Jackson Harper  <jackson@ximian.com>
16823
16824         * RichTextBox.cs: 
16825         * TextBoxBase.cs: New args for FormatText
16826         * TextControl.cs: Rewrote the main drawing method, this version
16827         feels a little easier to understand and debug to me.  Hopefully it
16828         does to others also
16829         - Fix FormatText to OR in the new formating values.  Added
16830         FormatSpecified param, basically this works in the same way as
16831         BoundsSpecified in Control.
16832         - Set the caret properties when the caret is positioned.
16833         - When wrapping text make sure that we calculate the width of the
16834         last character
16835         - when calculating alignments we might have wrapped down to the
16836         next line, so don't search for an individual tag, search for the
16837         end of the line
16838         - We need to invalidate the selection area when we replace the
16839         selection.
16840         
16841 2006-12-19  Daniel Nauck  <dna@mono-project.de>
16842
16843         * Application.cs: add Restart () 2.0 support
16844
16845 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
16846
16847         * MenuItem.cs: Invalidate menu item rectangle after change Enable
16848         property. Fixes #80268.
16849         
16850 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
16851
16852         * MenuAPI.cs: Dont trigger select event when closes top menu
16853         item. Fixes #80270.
16854
16855 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
16856
16857         * MenuAPI.cs: When you click on menuitem only trigger onselect
16858         event for top menu itens. Fixes #80271.
16859         
16860 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16861
16862         * MdiWindowManager.cs: Make IconicBounds depend on
16863         the bottom of MdiClient, not the top (fixes #80267)
16864         
16865 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16866
16867         * MdiClient.cs: Added missing 2.0 attribute
16868
16869 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16870
16871         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
16872         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
16873
16874 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
16875
16876         * MenuAPI.cs: Fix click when menuitem is not popup,
16877         this regression was caused by last commit (#80272).
16878
16879 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
16880
16881         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
16882         fire click event or close menu. Fixes #80272.
16883
16884 2006-12-17  Daniel Nauck  <dna@mono-project.de>
16885
16886         * ListViewHitTestInfo.cs: add
16887
16888 2006-12-17  Daniel Nauck  <dna@mono-project.de>
16889
16890         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
16891         * FlatButtonAppearance.cs: add
16892         * DockingAttribute.cs: add
16893
16894 2006-12-17  Chris Toshok  <toshok@ximian.com>
16895
16896         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
16897         and rebind our columns when it does - this way, if you make
16898         changes to the DataTable (or set the Table attribute on a DataView
16899         after setting it as the DataGrid's DataSource, the changes are
16900         made visible.)  Fixes bug #80107.
16901
16902 2006-12-17  Daniel Nauck  <dna@mono-project.de>
16903
16904         * ListViewGroup.cs: add internal Location property for layouting.
16905         * Theme.cs: add abstract ListViewGroupHeight function.
16906         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
16907
16908 2006-12-16  Andreia Gaita  <avidigal@novell.com>
16909
16910         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
16911         Added reset of selected index to 0 when adding first tab page.
16912         Fixes #80264
16913         
16914         * NumericUpDown.cs: Fix NET_2_0 check
16915
16916 2006-12-16  Daniel Nauck  <dna@mono-project.de>
16917
16918         * ListViewGroup.cs: fixed DefaultValueAttribute value
16919
16920 2006-12-16  Daniel Nauck  <dna@mono-project.de>
16921
16922         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
16923
16924 2006-12-15  Miguel de Icaza  <miguel@novell.com>
16925
16926         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
16927         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
16928         ScrollableControl.cs: Add a handful of methods that are
16929         overwritten in 2.0 
16930
16931 2006-12-15  Chris Toshok  <toshok@ximian.com>
16932
16933         * XplatUIWin32.cs: initial implementation of the Reversible
16934         drawing functions.  there are some problems.  DrawReversibleFrame
16935         doesn't seem to work at all for Dashed FrameStyle, and in the
16936         Thick case there are drawing errors at the corners (we probably
16937         need to bind Rectangle instead of doing moveto/lineto's.)
16938
16939 2006-12-16  Andreia Gaita  <avidigal@novell.com>
16940         
16941         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
16942         to send blocks of key messages. Send accumulates keys to send with Flush, 
16943         while SendWait sends all keys immediately.
16944                 
16945         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
16946         XplatUIX11.cs,  XplatUIX11-new.cs:
16947         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
16948         to Win32 SendInput.
16949         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
16950         
16951         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
16952         testing for ms.net on this class is very tricky, as the tests run too fast 
16953         to allow the hook to release, essentially freezing the keyboard and the 
16954         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
16955         category :p
16956
16957 2006-12-16  Daniel Nauck  <dna@mono-project.de>
16958
16959         * Padding.cs: fixed serialization compability to MS ("_var" field names),
16960                         added missing attributes.
16961  
16962 2006-12-15  Daniel Nauck  <dna@mono-project.de>
16963
16964         * ListViewGroup.cs: Added missing attributes.
16965         * ListViewGroupCollection.cs: Added missing attributes.
16966
16967 2006-12-15  Daniel Nauck  <dna@mono-project.de>
16968
16969         * ListViewItem.cs: fixed ListViewSubItem text property.
16970
16971 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16972         
16973         * Control.cs: Added missing 2.0 attributes
16974         
16975 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16976         
16977         * MdiClient.cs: Added missing 2.0 attribute.
16978         * MonthCalendar.cs: Added some missing 2.0 attributes 
16979         and properties.
16980         
16981 2006-12-15  Daniel Nauck  <dna@mono-project.de>
16982
16983         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
16984
16985 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
16986
16987         * MainMenu.cs: Add the new 2.0 constructor to help out people
16988         using the MainMenu in VS2005.
16989
16990 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16991         
16992         * MdiChildContext.cs: Removed it, no longer used.
16993         * MdiClient.cs: Added missing 2.0 attributes.
16994         
16995 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16996         
16997         * InternalWindowManager.cs: Fix a NullRef with previous 
16998         changes for toolwindows.
16999         
17000 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17001
17002         * Control.cs: 
17003         - Added AfterTopMostControl to allow for certain controls 
17004         to always stay on top when normal controls are brought to 
17005         front.
17006         
17007         * XplatUIWin32.cs: 
17008         - (DrawInversibleRectangle): Get window rectangle from Win32 
17009         in stead of from control, since Win32 doesn't calculate
17010         screen coords correctly from control's Location if it 
17011         have docked siblings.
17012         
17013         * MdiWindowManager.cs:
17014         - Correct the control menu popup location when clicked on
17015         the maximized form icon. (fixes #80223.1)
17016         - Don't show moving rectangle if mouse hasn't moved from
17017         the original clicked point.
17018         - Removed FormGotFocus handler (not used).
17019         - Calculate the control buttons location from the main
17020         window's size and not client size (fixes #79770).
17021         - Form is now closed when the form icon is double-clicked
17022         (fixes #79775). 
17023         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
17024         
17025         * InternalWindowManager.cs:
17026         - Moved some MDI-only methods to MdiWindowManager.
17027         - Removed unused properties and methods.
17028         - Unified method naming for methods handling wm messages.
17029         - Moved all message handling to seperate methods for
17030         each message.
17031         
17032         * ThemeWin32Classic.cs:
17033         - DrawManagedWindowDecorations now draws the title bar 
17034         with a gradient brush.
17035         - Add a CPDrawButtonInternal that allows us to specify
17036         light, normal and dark colors for the buttons (control 
17037         buttons for MDI children were drawn with the same light
17038         color as the background, therefore loosing the 3D effect).
17039         
17040         * SizeGrip.cs:
17041         - Add a CapturedControl property that is used to 
17042         determine the control to resize (defaults to parent). 
17043         Needed for MdiClient, since its SizeGrip's parent is
17044         MdiClient, but the control to resize is the main form.
17045         
17046         * MdiClient.cs:
17047         - Set SizeGrip's CapturedControl to the main form in order
17048         to resize the main form and not the MdiClient.
17049         - Override AfterTopMostControl to leave the scrollbars 
17050         always on top.
17051
17052 2006-12-15  Daniel Nauck  <dna@mono-project.de>
17053
17054         * ListView.cs: fixed ListViewItemCollection AddRange and
17055                         implemented ListViewItemCollection AddRange 2.0 support.
17056
17057 2006-12-15  Daniel Nauck  <dna@mono-project.de>
17058
17059         * ListViewGroup.cs: Add.
17060         * ListViewGroupCollection.cs: Add
17061         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
17062         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
17063                                 stub for ImageKey 2.0 support.
17064
17065 2006-12-14  Mike Kestner  <mkestner@novell.com>
17066
17067         * ListView.cs: add text padding to the autocalculation for columns
17068         of width -2.  Fixes #80207.
17069  
17070 2006-12-14  Mike Kestner  <mkestner@novell.com>
17071
17072         * ListView.cs: add some index guarding for partial row navigation 
17073         logic.  Fixes #80250.
17074
17075 2006-12-14  Mike Kestner  <mkestner@novell.com>
17076
17077         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
17078         are added or inserted to the collection.  Fixes #81099.
17079
17080 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
17081
17082         * MenuAPI.cs: Closes menu when right click out side of popup
17083         it fix problem in ContextMenu and MainMenu. Fixes #80252.
17084
17085 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17086
17087         * ListViewItem.cs: Fix dumb error.
17088
17089         * ListView.cs: Add Find and ContainsKey methods in 
17090         ListViewItemCollection, and also return true for IsReadOnly
17091         and IsFixedSize (changes for 2.0). 
17092
17093 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
17094
17095         * Control.cs: Allow Region to be set to null.
17096
17097 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17098
17099         * MdiWindowManager.cs: Remove unused (commented out) code.
17100         * Form.cs: When the MdiChild is maximized, the form needs 
17101         WM_NCMOUSELEAVE, so request it.
17102         * InternalWindowManager.cs: 
17103         - Added tooltips to control buttons.
17104         - Removed duplicated control button handling code.
17105         - Removed unused (commented out) code.
17106         
17107 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
17108
17109         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
17110         was used because we must set cursor without trigger ChangeCursor event
17111         and without change Cursor control property. Fixes #79963.
17112
17113 2006-12-12  Andreia Gaita  <avidigal@novell.com>
17114         
17115         * Control.cs: Check if Region setter value is null, and ignore
17116
17117 2006-12-12  Jackson Harper  <jackson@ximian.com>
17118
17119         * TextControl.cs: We were almost always drawing one more line then
17120         needed, since the GetLineByPixel will return the last line found
17121         at that pixel. In most cases though, we were invalidating up to
17122         the junction between two lines.
17123         - Improve debug code.
17124
17125 2006-12-12  Chris Toshok  <toshok@ximian.com>
17126
17127         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
17128         and FillReversibleRectangle.
17129
17130         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
17131         and FillReversibleRectangle.
17132
17133         * XplatUIWin32.cs: add stubs which do nothing for
17134         DrawReversibleFrame, DrawReversibleLine, and
17135         FillReversibleRectangle.
17136
17137         * XplatUIOSX.cs: add stubs which raise NIE for
17138         DrawReversibleFrame, DrawReversibleLine, and
17139         FillReversibleRectangle.
17140
17141         * XplatUIX11.cs: add working implementation for
17142         DrawReversibleFrame, DrawReversibleLine, and
17143         FillReversibleRectangle.
17144         
17145         * ControlPaint.cs: implement DrawReversibleFrame,
17146         DrawReversibleLine, and FillReversibleRectangle, by calling into
17147         the appropriate XplatUI method.
17148
17149 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17150
17151         * Form.cs: Make MdiClient have the focus even if it's
17152         not selectable, since it should receive WM_KEY* and WM_MOUSE 
17153         messages. Fixes #79907.
17154         
17155 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17156
17157         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
17158         queried after the window is created.
17159         
17160         * XplatUIX11.cs: Added SendParentNotify to implement 
17161         WM_PARENTNOTIFY logic. Fixes #79965.
17162         
17163         * Control.cs: Added MakeParam.
17164         
17165 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17166
17167         * MdiClient.cs: Resume Layout before setting window
17168         states (fixes #80201).
17169
17170 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17171
17172         * MenuAPI.cs: Deselect a menu item after performing
17173         the click (fixes #80197).
17174
17175 2006-12-11  Jackson Harper  <jackson@ximian.com>
17176
17177         * TextBoxBase.cs: We need to cap this value, since Maximum -
17178         ViewPortHeight can be less than zero.
17179         - Only do selection with the left mouse button.
17180         * TextBox.cs: Don't tell the world that we have a context menu.
17181         * Control.cs: New method so that we can control whether or not the
17182         context menu is visible outside MWF.
17183
17184 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
17185
17186         * ToolBarButton.cs: Fix text positon. 
17187
17188 2006-12-11  Miguel de Icaza  <miguel@novell.com>
17189
17190         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
17191
17192         * Control.cs (DoubleBuffered): Add implementation.
17193
17194         * Application.cs (OpenForms): Add.
17195
17196 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
17197
17198         * Form.cs: Use opacity instead of Opactiy to determine if we need
17199         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
17200
17201 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
17202
17203         * Control.cs: Fix NRE if Control.Site was set to null.
17204
17205 2006-12-11  Chris Toshok  <toshok@ximian.com>
17206
17207         * Control.cs: ControlCollection.Remove should return if the arg is
17208         null, and ControlCollection.SetChildIndex should raise a ANE.
17209
17210 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
17211
17212         * Control.cs: Verify value set for Dock property. Code formatting
17213         updates.
17214
17215 2006-12-11  Jackson Harper  <jackson@ximian.com>
17216
17217         * TextControl.cs: Draw the caret and the selection when a flag is
17218         set on the owner.
17219         * TextBoxBase.cs: We want to draw the caret and the selection for
17220         TextBox but not for TextBoxBase.
17221         - If the window is resized and scrolling is no longer needed (the
17222         whole doc is visible) set the scroll position to zero.
17223         - The default SelectWord (the one TextBox uses) should move the
17224         caret to the end of the word.
17225         - SelectAll moves the caret to the end of the selection.
17226         * TextBox.cs: We don't selectall on focus, we just do it when the
17227         control is created.
17228         
17229 2006-12-11  Mike Kestner  <mkestner@novell.com>
17230
17231         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
17232
17233 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17234
17235         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
17236         2.0 support.
17237         * ListViewItem.cs: Add Name 2.0 property.
17238
17239 2006-12-11  Andreia Gaita  <avidigal@novell.com>
17240
17241         * TabControl.cs: Set visibility on selected or default tab 
17242         when tabcontrol handle is created, so that it's contents
17243         actually show up (duh). Fixes #80193
17244         Don't redraw the control if there is no handle created, as
17245         the selected index might be completely invalid. Added some tests
17246         to check for this.
17247
17248 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
17249
17250         * ToolBar.cs: Uses maximun width and height of all buttons as 
17251         button rectangle when ButtonSize specified, it looks strange but
17252         is what happens in Win32. Fixes #80189.
17253
17254 2006-12-11  Jackson Harper  <jackson@ximian.com>
17255
17256         * TextControl.cs: Need to track undo levels ourself, since
17257         compound actions will mess them up.
17258
17259 2006-12-10  Andreia Gaita  <avidigal@novell.com>
17260
17261         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
17262         SelectedIndex value is changed (even if it's not valid).
17263         Reset SelectedIndex to 0 when the handle is created and if
17264         the current index is invalid.
17265         Fixes SelectdeIndex unit tests and #80128
17266
17267 2006-12-08  Chris Toshok  <toshok@ximian.com>
17268
17269         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
17270         calls EndEdit, it needs to be called before we set current_cell to
17271         its new value.  Otherwise, we end up committing the value in the
17272         textbox to the new cell as well.  Fixes bug #80160.
17273
17274 2006-12-08  Chris Toshok  <toshok@ximian.com>
17275
17276         * Form.cs (set_CancelButton): if the button's DialogResult is
17277         None, set it to Cancel.  Fixes bug 80180.
17278
17279 2006-12-08  Jackson Harper  <jackson@ximian.com>
17280
17281         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
17282         to watch ourselves when setting the canvas size and setting the
17283         scrollbar values.
17284
17285 2006-12-08  Chris Toshok  <toshok@ximian.com>
17286
17287         * DataGrid.cs: comment out the two MakeTransparent calls for the
17288         time being so people using trunk (and not 1.2.2) on windows can
17289         actually use the datagrid.  This deals with bug #80151.
17290
17291 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
17292
17293         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
17294         Graphics.DrawImage (image, int, int, int, int) overload instead
17295         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
17296         the dpi difference and was blurring images it drew.
17297         [Fixes bug #79960]
17298
17299 2006-12-08  Chris Toshok  <toshok@ximian.com>
17300
17301         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
17302         rowcnt is 0 (such as with an empty datasource), and make sure we
17303         initialize not_usedarea.Y to cells.Y, so we don't draw over the
17304         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
17305
17306 2006-12-08  Chris Toshok  <toshok@ximian.com>
17307
17308         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
17309         grid.
17310
17311 2006-12-08  Chris Toshok  <toshok@ximian.com>
17312
17313         [ Fixes bug #80167 ]
17314         
17315         * ThemeWin32Classic.cs: don't draw the image if the button's flat
17316         style is FlatStyle.System.
17317
17318         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
17319         ButtonBase.flat_style private, and switch uses of it to the public
17320         property.
17321         
17322 2006-12-08  Chris Toshok  <toshok@ximian.com>
17323
17324         [ Fixes bug #80121 ]
17325         
17326         * ThemeWin32Classic.cs: center the caption text in the datagrid
17327         when we draw it.
17328
17329         * DataGrid.cs: lessen the amount we add to the caption height from
17330         6 to 2.  6 was making it huge.
17331
17332 2006-12-08  Andreia Gaita  <avidigal@novell.com>
17333
17334         * UpDownBase: Handle MouseWheel call directly instead of capturing
17335         the inner textbox's OnMouseWheel. Fixes #80166
17336
17337 2006-12-08  Jackson Harper  <jackson@ximian.com>
17338
17339         * TextControl.cs: We need to invalidate the textbox when we empty
17340         it (how had this not been discovered before?)
17341
17342 2006-12-08  Jackson Harper  <jackson@ximian.com>
17343
17344         * TextBoxBase.cs: Reworked the mouse down code so I could get it
17345         to behave like MS, we now ignore the eventargs.Click and just
17346         track state ourself, which we were already doing anyways.
17347         - Constrain the double click handler to the double click size.
17348         
17349 2006-12-08  Chris Toshok  <toshok@ximian.com>
17350
17351         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
17352         direction if that scrollbar isn't shown.  fixes bug #80158.
17353
17354 2006-12-08  Andreia Gaita  <avidigal@novell.com>
17355
17356         * NumericUpDown.cs: Update value on getter. Fixes #79950
17357
17358 2006-12-08  Chris Toshok  <toshok@ximian.com>
17359
17360         * MenuItem.cs: add back in the event cloning code.  I didn't know
17361         how to do it in the face of the EventHandlerList work i'd done
17362         last week.  Fixes bug #80183.
17363
17364 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
17365
17366         * Control.cs: Add an invalidate to the BackgroundImage setter.
17367         [Fixes 80184]
17368
17369 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
17370
17371         * ToolStrip*: Add some small properties reported by MoMA, fix event
17372         firing and default properties based off of unit tests, and add some
17373         attributes based off of the class status page.
17374
17375 2006-12-07  Jackson Harper  <jackson@ximian.com>
17376
17377         * TextBoxBase.cs: Take HideSelection into account when determining
17378         whether or not to show the selection.
17379         * RichTextBox.cs: After inserting the RTF into the document move
17380         the cursor to the beginning of the document.
17381
17382 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
17383
17384         * Control.cs: Remove static ArrayList "controls" which maintained
17385         a reference to every control created.
17386         * Application.cs: Create a static FormCollection to maintain a reference
17387         to every form created.  Use it in places that formerly enumerated through
17388         the controls one looking for forms.
17389         * Form.cs: Add and remove self from above FormCollection.
17390
17391 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
17392
17393         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
17394           not libgdk (though it makes me wonder why I didn't have any
17395           problems)
17396
17397 2006-12-07  Chris Toshok  <toshok@ximian.com>
17398
17399         [ you had to know this was coming after that last commit...]
17400         
17401         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
17402         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
17403         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
17404         XCopyArea).
17405
17406 2006-12-07  Chris Toshok  <toshok@ximian.com>
17407
17408         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
17409         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
17410         all the behavior we need for double buffering.
17411
17412         * XplatUIDriver.cs: implement the 3 double buffer methods using a
17413         client side Bitmap, just like the old Control-based double buffer
17414         code did.  The methods are virtual, so each XplatUI driver
17415         subclass can replace the implementation to use a faster, platform
17416         specific approach.
17417
17418         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
17419         double buffer code, and clean things up a bit in the process.
17420
17421 2006-12-06  Chris Toshok  <toshok@ximian.com>
17422
17423         * Control.cs: reindent WndProc.
17424
17425 2006-12-06  Chris Toshok  <toshok@ximian.com>
17426
17427         [ I wanna be like BenM when I grow up ]
17428         
17429         * Hwnd.cs: create a single static Graphics object on the static
17430         Bitmap we create.  use this for our text measurements.
17431
17432         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
17433         This was causing us to allocate a backbuffer for every control,
17434         even when it wasn't flagged as double buffered.  Instead use the
17435         single graphics instance.  This might have implications for
17436         multithreaded applications.  If we run into problems we can switch
17437         to creating 1 Graphics per control, on the static Hwnd bitmap.
17438
17439         this change nets us a 7M savings in private dirty mappings when
17440         running FormsTest.exe.
17441
17442 2006-12-06  Chris Toshok  <toshok@ximian.com>
17443
17444         * ListView.cs: the BackgroundImage override is just to set
17445         attributes.  chain up to base.BackgroundImage.
17446
17447         * RichTextBox.cs: same.
17448
17449         * ToolBar.cs: same, but we need to also redraw the toolbar when it
17450         changes, so instead a handler for BackgroundImageChanged.
17451         
17452         * Control.cs: make background_image private.
17453
17454 2006-12-06  Chris Toshok  <toshok@ximian.com>
17455
17456         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
17457         sure we even need this assignment, but roll with it for now.
17458
17459         * Control.cs: make the cursor field private.
17460
17461 2006-12-06  Chris Toshok  <toshok@ximian.com>
17462
17463         * Form.cs: we don't need to explicitly set ImeMode to
17464         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
17465         behavior in the face of ImeMode.Inherit.
17466
17467         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
17468         change the ctor's assignment to use ImeMode instead of ime_mode.
17469
17470         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
17471         ImeModeInherit.  Only check for the parent's imemode (and return
17472         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
17473         This fixes the button unit test, which sets both ImeMode and
17474         DefaultImeMode to ImeMode.Disable.
17475
17476         also make the ime_mode field private.
17477
17478 2006-12-06  Chris Toshok  <toshok@ximian.com>
17479
17480         * Control.cs: make control_style private.
17481
17482         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
17483         setting the styles to true, then setting them to false instead of
17484         reverting to their previous values.
17485
17486         also, call SetStyle on the scrollbars instead of using
17487         control_style directly.
17488
17489 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
17490
17491         * FormCollection.cs: Implement. [2.0]
17492
17493 2006-12-06  Chris Toshok  <toshok@ximian.com>
17494
17495         * Control.cs: make tab_stop private.
17496
17497         * Label.cs: set TabStop, not tab_stop.  reformat some event
17498         add/remove methods to make them more compact.
17499
17500 2006-12-06  Chris Toshok  <toshok@ximian.com>
17501
17502         * RadioButton.cs: fix TabStop handling.
17503
17504 2006-12-06  Chris Toshok  <toshok@ximian.com>
17505
17506         * TextBox.cs: remove the explicit assignments to has_focus.
17507         Control does that.
17508
17509         * ButtonBase.cs: remove the assignment to has_focus.  Control will
17510         manage that.
17511         
17512 2006-12-06  Chris Toshok  <toshok@ximian.com>
17513
17514         * ButtonBase.cs: remove all uses of is_enabled from this code.
17515         it's always true when any of the code containing the checks is
17516         executed.
17517
17518 2006-12-06  Chris Toshok  <toshok@ximian.com>
17519
17520         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
17521         with different semantics (some are present in both 1.1 and 2.0
17522         profiles) so that we match MS's behavior in our unit tests.
17523
17524 2006-12-06  Jackson Harper  <jackson@ximian.com>
17525
17526         * TextControl.cs: Make this operation undoable.
17527         * TextBoxBase.cs: Factor the border width into the preferred
17528         height.
17529         - implement Modified as per the spec.
17530
17531 2006-12-06  Chris Toshok  <toshok@ximian.com>
17532
17533         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
17534
17535 2006-12-06  Chris Toshok  <toshok@ximian.com>
17536
17537         * Control.cs: make right_to_left and context_menu fields private.
17538
17539 2006-12-06  Chris Toshok  <toshok@ximian.com>
17540
17541         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
17542         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
17543         Control.child_controls private.  switch all uses over to
17544         Control.Controls.
17545
17546 2006-12-06  Chris Toshok  <toshok@ximian.com>
17547
17548         * System.Windows.Forms/GroupBox.cs,
17549         System.Windows.Forms/AccessibleObject.cs,
17550         System.Windows.Forms/ErrorProvider.cs,
17551         System.Windows.Forms/Control.cs,
17552         System.Windows.Forms/UpDownBase.cs,
17553         System.Windows.Forms/ScrollBar.cs,
17554         System.Windows.Forms/DateTimePicker.cs,
17555         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
17556         System.Windows.Forms/ToolTip.cs,
17557         System.Windows.Forms/RadioButton.cs,
17558         System.Windows.Forms/LinkLabel.cs,
17559         System.Windows.Forms/Splitter.cs,
17560         System.Windows.Forms/TextBoxBase.cs,
17561         System.Windows.Forms/ToolStripTextBox.cs,
17562         System.Windows.Forms/ContainerControl.cs,
17563         System.Windows.Forms/ThemeWin32Classic.cs,
17564         System.Windows.Forms/SizeGrip.cs,
17565         System.Windows.Forms/ToolStripDropDown.cs,
17566         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
17567         private.  switch all uses over to Control.Parent.
17568
17569 2006-12-06  Chris Toshok  <toshok@ximian.com>
17570
17571         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
17572         Control does this before calling emitting these events.
17573
17574         * TabControl.cs: same.
17575
17576         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
17577         Control.client_rect.
17578
17579         * ButtonBase.cs: use the ClientSize property instead of the
17580         client_size field.
17581
17582         * ScrollableControl.cs: same.
17583
17584         * Control.cs: another pass at making properties private.  also,
17585         move the initialization of tab_stop to the ctor.
17586
17587 2006-12-05  Andreia Gaita <avidigal@novell.com>
17588
17589         * TabControl.cs: Let the selected index be set freely if the 
17590         control handle is not yet created.
17591
17592 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
17593
17594         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
17595         internal until I can rewrite DefaultLayout.
17596         * ToolStrip.cs: Fix build error and some general cleaning.
17597         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
17598         Fix build errors caused by making some of Control's fields private.
17599
17600 2006-12-05  Jackson Harper  <jackson@ximian.com>
17601
17602         * TextControl.cs: Redo Insert a little so that it use IndexOf
17603         instead of Split, this prevents it from messing up on things like
17604         \n\n\n. Also more effecient since the split array doesn't need to
17605         be created.
17606         * TextBoxBase.cs: AppendText doesnt handle multiline and non
17607         multiline text differently, this is the first of many fixes that
17608         will make multiline/non-multiline the same thing as far as the
17609         TextBoxBase is concerned.
17610         - Don't split the text and insert lines, this can lose some line
17611         endings (like is the last line a soft or hard break). Instead use
17612         the new Insert.
17613         - Fix an off by one when combining all the lines in the Text
17614         getter.
17615         - Remove separate multiline handling from the Text getter/setter.
17616
17617 2006-12-05  Chris Toshok  <toshok@ximian.com>
17618
17619         * ButtonBase.cs: a few changes:
17620
17621         - don't reinitialize internal Control fields in the ctor when they
17622         have the same values as Control sets them.
17623
17624         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
17625         this before calling those methods.
17626
17627         - we don't need to call Refresh for anything.  use Invalidate
17628         instead.
17629
17630         - OnEnabledChanged doesn't need to redraw at all - Control.cs
17631         calls Refresh in its OnEnabledChanged.
17632         
17633         - several of the events we were registered for in the ctor to
17634         redraw ourselves already include calls to Invalidate in the
17635         property setters that raise the events.  remove the extra
17636         invalidation.
17637
17638         - reformat a switch statement that was 83274658 columns wide.
17639         
17640 2006-12-05  Mike Kestner  <mkestner@novell.com>
17641
17642         * ComboBox.cs: fix a unit test regression from a TextBox
17643         SelectionLength return of -1 when there's no selection.  
17644
17645 2006-12-05  Chris Toshok  <toshok@ximian.com>
17646
17647         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
17648         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
17649         cleaning up some of the internal Control fields being used by
17650         subclasses.
17651
17652 2006-12-05  Mike Kestner  <mkestner@novell.com>
17653
17654         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
17655         listbox after AddImplicit calls since it defaults to hidden. Add a 
17656         hack to preserve requested heights across DropDownStyle changes.
17657
17658 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
17659
17660         * PropertyGrid.cs: Hide FindFirstItem method from public API.
17661
17662 2006-12-05  Chris Toshok  <toshok@ximian.com>
17663
17664         * DataGridView.cs: fix compiler warnings.
17665
17666         * PrintControllerWithStatusDialog.cs: same.
17667
17668         * ToolBar.cs: same.
17669
17670         * FolderBrowserDialog.cs: same.
17671
17672         * Splitter.cs: same.
17673
17674         * DataGridViewComboBoxCell.cs: same.
17675
17676         * XplatUIWin32.cs: same.
17677
17678         * PictureBox.cs: same.
17679
17680         * Win32DnD.cs: same.
17681
17682         * PageSetupDialog.cs: same.
17683
17684         * FileDialog.cs: same.
17685
17686         * PrintDialog.cs: same.
17687
17688         * DataGridTextBoxColumn.cs: same.
17689
17690         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
17691
17692 2006-12-05  Chris Toshok  <toshok@ximian.com>
17693
17694         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
17695         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
17696         System.ComponentModel.EventHandlerList work.
17697
17698 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
17699
17700         * DrawTreeNodeEventArgs.cs: Added.
17701
17702 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17703         
17704         * InternalWindowManager.cs: Remove an unused field.
17705         
17706 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17707
17708         * InternalWindowManager.cs:
17709         - Save the point where the title bar is clicked.
17710         
17711         * MdiWindowManager.cs:
17712         - Only allow moving of the window as long as the 
17713         clicked point on the title bar does not get out of
17714         MdiClient's rectangle. Fixes #79982.
17715         
17716         * MdiClient.cs:
17717         - Added Horizontal/VerticalScrollbarVisible.
17718         - Simplified the scrollbar sizing algorithm.
17719         - Cache the difference in scrolled value in
17720         H/VBarValueChanged and move the calculation out
17721         of the for loop.
17722
17723 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17724
17725         * Control.cs: Make the Console.WriteLine in WndProc 
17726         write more info.
17727
17728 2006-12-05  Chris Toshok  <toshok@ximian.com>
17729
17730         * ToolStripManager.cs, ToolStripButton.cs,
17731         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
17732         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
17733         ToolStripSplitButton.cs, ToolStripSeparator.cs,
17734         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
17735         ToolStripProgressBar.cs, ToolStripContainer.cs,
17736         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
17737         to using System.ComponentModel.EventHandlerList.
17738
17739 2006-12-04  Chris Toshok  <toshok@ximian.com>
17740
17741         * LinkLabel.cs: fix up compiler warnings.
17742
17743         * TableLayoutSettings.cs: same.
17744
17745         * TreeView.cs: same.
17746
17747         * ToolBar.cs: same.
17748
17749         * TabControl.cs: same.
17750
17751         * RichTextBox.cs: same.
17752
17753         * ListViewItem.cs: same.
17754
17755         * PropertyGrid.cs: same.
17756
17757         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
17758
17759         * ToolTip.cs same.
17760
17761         * TextRenderer.cs: fix up compiler warnings.
17762
17763         * Label.cs: same.
17764
17765         * Form.cs: corcompare fixes.
17766
17767         * PictureBox.cs: fix up compiler warnings.
17768
17769         * ImageListStreamer.cs: same.
17770
17771         * TrackBar.cs: corcompare fix.
17772
17773         * Control.cs: fix up compiler warnings.
17774
17775         * SplitterPanel.cs: same.
17776
17777         * NumericTextBox.cs: same.
17778
17779         * ImageList.cs: same.
17780
17781         * StatusStrip.cs: same.
17782
17783         * ProgressBar.cs: corcompare fix.
17784
17785         * ToolStripButton.cs: fix up compiler warnings.
17786
17787         * ToolStripStatusLabel.cs: same.
17788
17789         * ToolStripSplitButton.cs: same.
17790
17791         * ToolStripSeparator.cs: same.
17792
17793         * ToolStripProgressBar.cs: same.
17794
17795         * ToolStripDropDownMenu.cs: same
17796
17797         * ToolStripDropDown.cs: same.
17798
17799         * ToolStripDropDownButton.cs: same.
17800
17801         * ToolStrip.cs: same.
17802
17803         * ToolStripControlHost.cs: same.
17804
17805         * ToolStripContentPanel.cs: same.
17806
17807         * ToolStripDropDown.cs: same.
17808
17809         * ToolStripContainer.cs: same.
17810
17811         * ToolStripPanel.cs: same, and add "new" where we need it to work
17812         with the new ArrangedElementCollection.
17813
17814         * ToolStripItemCollection.cs: add "new" where we need it to work
17815         with the new ArrangedElementCollection.
17816
17817 2006-12-04  Andreia Gaita <avidigal@novell.com>
17818
17819         * TabControl.cs: Fix default tab selection to after TabControl
17820         gets focus and not before. Fixes #80128
17821
17822 2006-12-04  Chris Toshok  <toshok@ximian.com>
17823
17824         * DataGridTableStyle.cs: remove the gross calling of
17825         datagrid.Refresh from here.  It's a broken idea and it doesn't
17826         work anyway.
17827
17828         * DataGrid.cs: instead, just register/unregister from the
17829         DataGridTableStyle events in CurrentTableStyle.  we play it
17830         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
17831         even though some would most likely not require it.  Fixes bug
17832         #80115 (and one portion of #80117 as a side effect).
17833
17834 2006-12-04  Chris Toshok  <toshok@ximian.com>
17835
17836         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
17837         so the textbox (if any) goes away.  Fixes bug #80117.
17838
17839 2006-12-04  Chris Toshok  <toshok@ximian.com>
17840
17841         * DataGridColumnStyle.cs: set the column's readonly property
17842         initially based on the property descriptor's IsReadOnly.  Fixes
17843         bug #80044.
17844
17845 2006-12-04  Chris Toshok  <toshok@ximian.com>
17846
17847         * ComboBox.cs: wrap the dropdown style changing work in
17848         SuspendLayout/ResumeLayout.  Fixes bug #79968.
17849
17850 2006-12-04  Jackson Harper  <jackson@ximian.com>
17851
17852         * TextBoxBase.cs: Fix off by one, since these are one-based.
17853         * TextBox.cs: Select all the text when we get focus.  The TextBox
17854         does this but the RTB does not.
17855
17856 2006-12-04  Chris Toshok  <toshok@ximian.com>
17857
17858         * DataGridTextBoxColumn.cs: remove some spew.
17859
17860         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
17861         but some part of me is saying "it shouldn't be here.."  At any
17862         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
17863         setting the value.
17864
17865 2006-12-04  Chris Toshok  <toshok@ximian.com>
17866
17867         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
17868         to reassign the propertydescriptor.
17869
17870 2006-12-04  Jackson Harper  <jackson@ximian.com>
17871
17872         * TextBoxBase.cs:
17873         * TextControl.cs: Remove some unused variables.  Maybe this will
17874         patch things up between mike and I.
17875         - don't split lines less then one char wide, if the viewport is
17876         that small text won't be visible anyways.
17877         
17878 2006-12-04  Jackson Harper  <jackson@ximian.com>
17879
17880         * TextBoxBase.cs: Default selection length is -1, need to do some
17881         more testing on windows to see when this is used for the property.
17882         - Redid the Lines [] property to that we properly remove soft line
17883         breaks
17884         - added support for preserving carriage returns
17885         -  CanUndo is not a variable like 'is undo enabled' it just returns
17886         true if there is undo operations available.
17887         - AppendText doesn't need to grab the last tag itself anymore,
17888         this happens automatically when we move the cursor.
17889         * TextControl.cs: Add CompoundActions to the undo class. This
17890         allows combining the other operations into one big option.  ie a
17891         paste will combine { delete old, insert new, move cursor }
17892         - Add InsertString undo operation
17893         - New method for deleting multiline text
17894         - Add carriage returns to lines. So we can preserve carriage
17895         returns when text is 'roundtripped'
17896
17897 2006-12-04  Chris Toshok  <toshok@ximian.com>
17898
17899         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
17900         minimum 0.  Fixes the scrollbar exception in bug #80136.
17901
17902 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17903
17904         * MdiClient.cs: 
17905         * MdiWindowManager: Removed unused fields and methods.
17906         
17907 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17908         
17909         * StatusBar.cs: Update all panels when a AutoSize=Contents
17910         panel needs updating.
17911         
17912         * StatusBarPanel.cs: Remove twidth and only use initialize.
17913         Fixes #80031.
17914                 
17915 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17916
17917         * Form.cs: When a form's MdiParent is set add it directly
17918         on top of the z-order in stead of relying on MdiClient's
17919         ActivateChild to do it. Fixes #80135.
17920         
17921         * MdiClient.cs: 
17922         - Remove original_order, mdi_child_list is already doing
17923         the same thing.
17924         - Create mdi_child_list on construction in
17925         stead of first use (avoids a few null checks).
17926
17927         * MenuItem.cs: Use an already existing list of mdi children
17928         to get the correct order of children and remove the other
17929         redundant list.
17930
17931 2006-12-04  Chris Toshok  <toshok@ximian.com>
17932
17933         * PropertyGridView.cs: cached_splitter_location is only used in
17934         !DOUBLEBUFFER code.
17935
17936         * PropertyGrid.cs: implement the ComComponentNameChanged event
17937         using Events, hoping that would fix the warning.  Looks like a
17938         compiler bug instead (#80144).
17939
17940         * PropertyManager.cs: remove unused method.
17941
17942 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
17943
17944         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
17945         include parentesis to fix expression evaluation. Fixes #79634.
17946
17947 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
17948         
17949         * MenuAPI.cs:
17950         - Changes to fix behavior in Menu control, some reported in #80097
17951         and other detected during behavior refactory like a select event
17952         problems.
17953         - Remove unneded "if's" conditions.
17954         - Created an internal to flag when popup is active in control, we need 
17955         it because in .NET you can have menu active but without popup active
17956         when you active menu using popup without visible items.
17957         - Mimic win32 behavior for Select and Popup events.  
17958         - Dont open popup menu when you dont have visible subitems.
17959         - Do nothing when click on disabled menu item.
17960         - Some small changes to follow the coding style guidelines.
17961         - Unselect menu only when another control gives focus. Fixes #80097.
17962         - Remove unused code.
17963         
17964         * MenuItem.cs: internal VisibleItems method to check if menu
17965         theres visible subitems, it will be usefull to fix some 
17966         behavior in Menu control.
17967         
17968 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
17969         
17970         * Timer.cs: Tag property for 2.0 profile.
17971         
17972 2006-12-01  Chris Toshok  <toshok@ximian.com>
17973
17974         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
17975         
17976         * Win32DnD.cs: comment out some unused fields.
17977
17978         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
17979         some unused properties/methods.
17980
17981         * XplatUIX11.cs: fix MousePosition so we override the base class's
17982         property instead of conflicting with it.
17983
17984         * PictureBox.cs: comment out some unused fields
17985
17986         * OSXStructs.cs: make some struct fields public.
17987
17988         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
17989         MousePosition so we override the base class's property instead of
17990         conflicting with it.
17991
17992         * X11Dnd.cs: comment out some unused fields
17993
17994         * X11DesktopColors.cs: fix some struct field visibility to quiet
17995         the compiler.
17996
17997         * X11Dnd.cs: remove some debug code.
17998
17999         * ThemeClearlooks.cs: comment out unused field.
18000
18001         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
18002
18003         * ThemeGtk.cs: comment out some unused pinvokes.
18004
18005         * Timer.cs: remove some unused fields.
18006
18007         * ThemeClearlooks.cs: comment out unused field.
18008
18009         * UpDownBase.cs: comment out unused field.
18010
18011         * DataObject.cs: comment out unused field.
18012
18013         * DataGridBoolColumn.cs: reomve unused field.
18014
18015         * DataGrid.cs: remove unused field.
18016
18017         * Cursor.cs: remove old ToBitmap code.
18018
18019         * ControlPaint.cs: remove unused method.
18020
18021         * ScrollBar.cs: remove unused fields.
18022
18023         * ComboBox.cs: remove unused field, and chain up to
18024         AccessibleObject ctor.
18025
18026         * ListBox.cs: remove unused field.
18027
18028         * ButtonBase.cs: wrap a couple fields in NET_2_0.
18029
18030         * GridEntry.cs: remove unused fields.
18031
18032         * Binding.cs: remove unused fields.
18033
18034         * AxHost.cs: remove unused method.
18035
18036         * ContainerControl.cs: remove unused field.
18037
18038         * ScrollableControl.cs: remove unused fields.
18039
18040 2006-12-01  Chris Toshok  <toshok@ximian.com>
18041
18042         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
18043         the Where/WhereString stuff.  it's easy enough to CWL
18044         Environment.StackTrace.
18045
18046         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
18047         unused private fields.
18048
18049 2006-12-01  Jackson Harper  <jackson@ximian.com>
18050
18051         * TextControl.cs: Do not update the view while inserting multiline
18052         text. If we update the view we might wrap lines, before entering
18053         the new lines, which causes the new line insertion calculations to
18054         be totally fubared.
18055         - Remove an old TODO
18056         - Make debug output a little nicer
18057         
18058 2006-12-01  Chris Toshok  <toshok@ximian.com>
18059
18060         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
18061
18062 2006-12-01  Chris Toshok  <toshok@ximian.com>
18063
18064         [ fix the majority of the CS0108 warnings we've been suppressing ]
18065         
18066         * TreeView.cs: mark BackgroundImageChanged as 'new'.
18067
18068         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
18069         to "LayoutToolBar" to quiet mcs.
18070         
18071         * TabControl.cs: mark our ControlCollection class as 'new'.
18072
18073         * TextBoxBase.cs: mark some events as 'new'.
18074
18075         * Splitter.cs: TabStop is 'new'.
18076
18077         * ControlBindingsCollection.cs: mark a few methods as new since
18078         they change the visibility from protected to public.
18079
18080         * RadioButton.cs: DoubleClick -> base class, and remove unused
18081         HaveDoubleClick.
18082
18083         * MonthCalendar.cs: ImeMode property -> base class, and mark many
18084         events as new.
18085
18086         * NumericUpDown.cs: TextChanged -> base class.
18087
18088         * CheckedListBox.cs: mark our ObjectCollection class as new to
18089         quiet mcs.
18090
18091         * FolderBrowserDialog.cs: make HelpRequest event new and have it
18092         muck with the base class.
18093
18094         * StatusBar.cs: fix some mcs warnings about Update being the same
18095         name as a base class method.
18096
18097         * RichTextBox.cs: mark some events as new, and make them do things
18098         to the base class impl.
18099
18100         * UserControl.cs: mark TextChanged as new, and have it manipulate
18101         base.TextChanged.
18102
18103         * UpDownBase.cs: mark some things new.
18104
18105         * CheckBox.cs: mark DoubleClick "new", and add some text about
18106         what we need to look at.
18107
18108         * Panel.cs: make the events "new", and manipulate the base
18109         version.  these are just here for attributes.
18110
18111         * AccessibleObject.cs: make owner private.
18112
18113         * Control.cs: deal with AccessibleObject.owner being private.
18114         cache our own copy if we need it.
18115
18116         * Button.cs: add "new" to the DoubleClickEvent.
18117
18118         * ListBox.cs: no need to track our own has_focus here.  let
18119         Control.has_focus do it for us.  Also some other work to clear up
18120         warnings about not overriding base class methods of the same name.
18121         
18122         * ComboBox.cs: clear up some warnings about not override base
18123         class methods of the same name.
18124
18125 2006-12-01  Chris Toshok  <toshok@ximian.com>
18126
18127         * Form.cs: flag a few things as "new" to quiet some of the mcs
18128         warnings.
18129
18130         * AxHost.cs: same.
18131
18132         * PrintPreviewDialog.cs: same.
18133
18134         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
18135         now DGV isn't so horrible on the class status page.  also, move
18136         all events to using System.ComponentModel.EventHandlerList.  my
18137         wrists hurt.
18138
18139 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18140
18141         * MdiWindowManager.cs:
18142         - Set form to active mdi child if shown,
18143         and update the active mdi child to the next 
18144         remaining child in the z-order if the form is hidden.
18145
18146         * Form.cs: 
18147         - Track if the form has been visible and if its 
18148         visibility is beeing changed, so that the MdiClient
18149         can properly decide the ActiveMdiChild. The MdiClient 
18150         cannot track this since the form can change visibility 
18151         before MdiClient is created.
18152
18153         * MdiClient.cs:
18154         - Don't activate anything of the parent form is changing
18155         its visibility.
18156         - Rework ActiveMdiChild to only return visible mdi 
18157         children and take into account several other corner 
18158         cases.
18159
18160 2006-12-01  Chris Toshok  <toshok@ximian.com>
18161
18162         * IBindableComponent.cs: new 2.0 interface.
18163
18164 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
18165
18166         * DataGrid.cs: Font for caption area is bold by default.
18167
18168 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
18169
18170         * Menu.cs: Tag property for 2.0.
18171         
18172 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
18173
18174         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
18175         
18176 2006-12-01  Chris Toshok  <toshok@ximian.com>
18177
18178         * TreeView.cs: doh, the Begin* events should be
18179         TreeViewCancelEventHandler.
18180
18181 2006-12-01  Chris Toshok  <toshok@ximian.com>
18182
18183         * Form.cs: Form.ControlCollection already stores off the
18184         form_owner field.  don't access the base class's internal "owner"
18185         field.
18186
18187         * Control.cs: make all the fields in Control.ControlCollection
18188         private.  there's no need for any internal fields here.
18189
18190 2006-12-01  Chris Toshok  <toshok@ximian.com>
18191
18192         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
18193         OnHandleCreated.  Fixes bug #80109.
18194
18195 2006-12-01  Chris Toshok  <toshok@ximian.com>
18196
18197         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
18198         SplitContainer.cs, Control.cs, StatusStrip.cs,
18199         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
18200         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
18201         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
18202         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
18203         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
18204         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
18205         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
18206         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
18207         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
18208         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
18209
18210         do most of the work to convert our code over to use
18211         System.ComponentModel.Component.Events for
18212         adding/removing/dispatching events.
18213
18214
18215 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
18216
18217         * DataGridView.cs: Fix an ArgumentNullException reported 
18218         twice today in IRC.
18219
18220 2006-11-30  Mike Kestner  <mkestner@novell.com>
18221
18222         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
18223         grabbed listbox.  Fixes #80036 and #80101.
18224
18225 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
18226
18227         * Message.cs: Changed ToString() to match MS.
18228         
18229 2006-11-30  Jackson Harper  <jackson@ximian.com>
18230
18231         * TextBoxBase.cs: You can still change the selected text on a read
18232         only textbox.
18233         * TextControl.cs: Lower magic number for wrap calculations. This
18234         lets text get closer to the right (far) edge.
18235
18236 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
18237
18238         * Control.cs: Tweak 2.0 layout properties.
18239         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
18240         * TextRenderer.cs: Add a new overload.
18241         * ToolStrip*: Huge amount of changes and new features.
18242
18243 2006-11-30  Mike Kestner  <mkestner@novell.com>
18244
18245         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
18246         scroll range correct.  Fixes #79994.
18247
18248 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
18249
18250         * MdiWindowManager.cs: Update main form's text when
18251         a form is closed. (fixes #80038)
18252         
18253 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
18254
18255         * ToolBar.cs:
18256         - Fix an regression in ButtonSize.
18257         - Get ImeMode default value change to "Disable".
18258         - Get ShowTooltips default value change to true, default value is 
18259         "false" but after make a test in .NET we get "true" result as default.
18260         
18261 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
18262
18263         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
18264
18265 2006-11-29  Chris Toshok  <toshok@ximian.com>
18266
18267         * XplatUIWin32.cs (GetWindowTransparency): check return value of
18268         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
18269         SetWindowTransparency hasn't been called.
18270
18271 2006-11-29  Chris Toshok  <toshok@ximian.com>
18272
18273         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
18274         if it's supported.
18275         (set_AllowTransparency): reorder things a little so that the
18276         WS_EX_LAYERED style is removed properly.
18277
18278 2006-11-29  Chris Toshok  <toshok@ximian.com>
18279
18280         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
18281         
18282         * Form.cs: only call the XplatUI transparency method (get/set) if
18283         SupportsTransparency says it's supported. Otherwise fallback to
18284         doing nothing (in the set case) or returning the instance field we
18285         cache (in the get case).
18286
18287         * XplatUIStructs.cs: add TransparencySupport flag enum.
18288         
18289         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
18290         change to SupportsTransparency.
18291
18292         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
18293         TransparencySupport.None from SupportsTransparency.
18294
18295         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
18296         TransparencySupport.Set from SupportsTransparency.
18297
18298         * XplatUIWin32.cs: implement GetWindowTransparency calling
18299         GetLayeredWindowAttributes, and implement SupportsTransparency by
18300         checking whether or not both
18301         GetWindowTransparency/SetWindowTransparency are available
18302         entrypoints.  We need to do this since SetWindowTransparency is
18303         available as of win2k, but GetWindowTransparency requires winxp.
18304         yay win32 api.
18305
18306         * XplatUI.cs: Add GetWindowTransparency, and change
18307         SupportsTransparency to allow for either/both Get/Set.
18308
18309 2006-11-29  Chris Toshok  <toshok@ximian.com>
18310
18311         * DataGrid.cs: keep from going into an infinite loop redrawing a
18312         datagrid that has no datasource.  Fixes bug #80033.
18313
18314 2006-11-29  Chris Toshok  <toshok@ximian.com>
18315
18316         * MenuItem.cs: fix the NRE when we assign text (and therefore call
18317         Invalidate) before the mainmenu has been assigned to a control.
18318
18319 2006-11-29  Chris Toshok  <toshok@ximian.com>
18320
18321         * DataGrid.cs: detect when we should be double the double click
18322         row/column autosize stuff, although that codepath has yet to be
18323         written.  part of the work for bug #79891.
18324
18325 2006-11-29  Chris Toshok  <toshok@ximian.com>
18326
18327         * Binding.cs (SetControl): fix unit test.
18328
18329 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18330
18331         * PageSetupDialog.cs: Validate the margins and set them in
18332         PageSettings. 
18333         * NumericTextBox.cs: New class to mimic the behavior of the
18334         textboxes used in the printing dialogs.
18335
18336 2006-11-29  Andreia Gaita  <avidigal@novell.com>
18337         
18338         * Form.cs: Revert previous change (remove call UpdateBounds
18339         from form constructor), because it messes with the handle creation
18340         order, and that one needs lots and lots of love.
18341         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
18342         for valid printer and throw InvalidPrinterException if document
18343         is set but printer not valid), adding a MonoTODO. Once 
18344         handle creation is done properly, we can put this back in.
18345
18346 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
18347
18348         * MenuItem.cs: Create a invalidate method for menu item, to be
18349         calling from set text, it make text changes to imadiate update
18350         on screen. Fixes #80013. 
18351         
18352 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
18353
18354         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
18355         fixes bug #80070 and some other problem on toolbar buttons
18356         layout.
18357
18358 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
18359
18360         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
18361         with dotted brush.      Fixes #79564
18362         
18363 2006-11-28  Andreia Gaita  <avidigal@novell.com>
18364
18365         * Form.cs: Removed call to UpdateBounds on Form
18366         constructor, it was causing a call to CreateHandle
18367         before it was supposed to.
18368         * PrintControllerWithStatusDialog: Applied patch
18369         by Chris Toshok to hide controller when there are
18370         no printers available.
18371         PrintDialog.cs: initialize printer settings to 
18372         null - correct DefaultValues test #5
18373         * PrintPreviewControl.cs: Move PrintController
18374         initialization to GeneratePreview
18375         * PrintPreviewDialog.cs: 
18376         - Remove Preview generation     from Document_set(). It is 
18377         called on OnPaint
18378         - Throw InvalidPrinterException on CreateHandle if
18379         a Document is set but there are no printers or 
18380         printer is not valid.
18381         * ThemeWin32Classic: don't paint PrintPreviewControl
18382         if there is nothing to paint    
18383
18384 2006-11-28  Miguel de Icaza  <miguel@novell.com>
18385
18386         * Form.cs: Add another popular method.
18387
18388         * TabPage.cs: ditto.
18389
18390 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18391
18392         * MenuItem.cs: Fixed a warning.
18393         * InternalWindowManager: Fixed a warning.
18394
18395 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18396
18397         * MenuItem.cs:
18398         - When cloning a menu also clone MdiList and clone the 
18399           window menu items properly (as the forms and menuitems
18400           are kept in an internal hashtable, these need updating 
18401           as well)
18402         - Rewrote the window menu code, menu items are added in the
18403           order the forms were added to their parent, and they are
18404           updated every time the window menu is shown (before the
18405           list was only generated once, in the current order of the
18406           forms, and would never be updated). A checkmark is shown
18407           next to the item corresponding to the active mdi child.
18408
18409 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18410
18411         * XplatUIStructs.cs: 
18412         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
18413         
18414         * XplatUIWin32.cs: 
18415         - Added TME_NONCLIENT to TMEFlags.
18416         - Handles WM_NCMOUSEMOVE in GetMessage to 
18417           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
18418
18419         * MdiWindowManager:
18420         - Now merges mdi child menu to parent menu when maximized.
18421         - Recalculate NC areas of both mdi child and mdi parent. 
18422           Fixes #79757 (4).
18423           on window state and size changes.Fixes #79844 (3).
18424         - Handle WM_NCCALCSIZE to properly calculate borders.
18425
18426         * Form.cs:
18427         - Add/remove to the mdi containers list of mdi children 
18428           in the order they are added.
18429         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
18430           to the maximized mdi child.
18431         
18432         * InternalWindowManager.cs:
18433         - Only execute a click on the control buttons on the mouse up,
18434           not on the mouse down. Show the state of the button 
18435           (was only showing Normal state, never Pressed state). The
18436           pressed button now follows the mouse (if you click the Close 
18437           button and move the mouse over the Maximize button, the 
18438           Maximize button will be shown as pressed). Since Win32 does
18439           not generate WM_NCLBUTTONUP if you release the button outside
18440           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
18441           it as a mouse up.
18442         
18443         * ThemeWin32Classic.cs:
18444         - Draw a missing border around mdi child forms. Fixes #79844 (2).
18445
18446         * MdiClient.cs:
18447         - Added a list of forms which contains the order the forms are
18448           added to the mdi parent.
18449         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
18450         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
18451         - If the active form changes set the scrollbars to the top
18452           of the Z order, otherwise the form could hide them.
18453         - Scrollbars are now sized according to ClientSize, not 
18454           to Size, and they take into account the other scrollbar
18455           to determine maximum.
18456         
18457 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
18458         
18459         * XplatUI.cs:
18460         * XplatUIDriver.cs:
18461         * XplatUIX11.cs:
18462         * XplatUIWin32.cs:
18463         * XplatUIOSX.cs:
18464         - Added RequestAdditionalWM_NCMessages for windows to 
18465           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
18466           Currently only implemented in XplatUIWin32.
18467
18468 2006-11-27  Chris Toshok  <toshok@ximian.com>
18469
18470         * Hwnd.cs: only add the hwnd to the windows hash in
18471         set_WholeWindow and set_ClientWindow if whole_window/client_window
18472         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
18473
18474 2006-11-27  Mike Kestner  <mkestner@novell.com>
18475
18476         * ComboBox.cs: remove redundant OnDropDown call.  It is called
18477         from the ComboListBox.ShowWindow code. Fixes #79969.
18478
18479 2006-11-27  Chris Toshok  <toshok@ximian.com>
18480
18481         * Hwnd.cs: remove the setters for ExposePending and
18482         NCExposePending - noone uses them.
18483
18484 2006-11-27  Jackson Harper  <jackson@ximian.com>
18485
18486         * TextControl.cs: new param for ReplaceSelection which determines
18487         whether we select the new selection, or set the cursor to the end
18488         of the new selection.
18489         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
18490         pasting, select the new text.
18491         * RichTextBox.cs: Use new param for ReplaceSelection.
18492
18493 2006-11-27  Jackson Harper  <jackson@ximian.com>
18494
18495         * TextBoxBase.cs: Set the selection to the caret after the caret
18496         is moved, otherwise they get out of sync.
18497
18498 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
18499
18500         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
18501         it fixes #80015
18502
18503 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
18504
18505         * ThemeWin32Classic.cs: 
18506         - Fix toolbar drop down arrow position.
18507         - Fix drop down appearance when ToolBar.Appearance is normal,
18508         it fixes #80018.
18509         
18510 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
18511
18512         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
18513         * Control.cs: Same.
18514         * UpDownBase.cs: Same.
18515         * ButtonBase.cs: Same.
18516         * ScrollBar.cs: Same.
18517         * TrackBar.cs: Same.
18518         * PictureBox.cs: Same.
18519         * UserControl.cs: Same.
18520         * Label.cs: Same.
18521         * ListControl.cs: Same.
18522         * TextBoxBase.cs: Same.
18523         * ListView.cs: Same.
18524         * RichTextBox.cs: Same.
18525         * TreeView.cs: Same.
18526
18527 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
18528
18529         * PrintDialog.cs:
18530         - Text label for where 
18531         - Text label comment was not shown
18532
18533 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
18534
18535         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
18536
18537 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
18538
18539         * InternalWindowManager.cs: 
18540         - Handle WM_PARENTNOTIFY to activate the form
18541         if any child control is clicked.
18542         - The form is only sizable if not minimized.
18543
18544         * MdiWindowManager.cs:
18545         - Save the IconicBounds if the form is moved.
18546         - Rework SetWindowState, now the window bounds 
18547         are stored only if the old window state is Normal.
18548         
18549         * MdiClient.cs:
18550         - In SetWindowStates store the old window state if 
18551         the window is maximized and restore window state if
18552         the window looses focus.
18553         - Don't handle any scrollbar value changes if 
18554         initializing the scroll bars. Fixes #79771.
18555         - Reworked ArrangeIconicWindows. Current algorithm
18556         tests bounds agains all other minimized windows, if
18557         any intersections create new bounds (going left to 
18558         right, bottom to top) and then test again. When 
18559         successful the bounds are saved and never computed
18560         again. Fixes #79774.
18561
18562 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
18563
18564         * InternalWindowManager.cs: Added HandleTitleBarUp.
18565
18566 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
18567
18568         * NumericUpDown.cs: In .NET 1.1, user entered text is still
18569         hexadecimal in ParseUserEdit.
18570
18571         
18572 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
18573
18574         * MdiWindowManager.cs: 
18575         - Handle a click on the form's icon to show the 
18576         system menu (when maximized). Fixes #79775.
18577         - Change the existing click handler for the form's
18578         icon when not maximized to show on MouseUp.
18579         Fixes #79776.
18580
18581         * Form.cs: In OnResize only layout the mdi child's
18582         parent if it actually has a parent. Might not if
18583         the window is closing.
18584
18585
18586 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
18587
18588         * MdiClient.cs: Ignore active MDI client for text of parent, if
18589         child has no text set.
18590
18591 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
18592
18593         * ToolBar.cs: Fixed ToString to match MS.
18594
18595 2006-11-22  Andreia Gaita  <avidigal@novell.com>
18596
18597         * NumericUpDown: 
18598         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
18599         update inner values on set. Fixes #79966.
18600         - Override OnLostFocus to update value on NET 2. Fixes #79950.
18601         - Fix hexadecimal parsing.
18602         
18603         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
18604         parent. Fixes #79957
18605
18606 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18607
18608         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
18609         the actual size has to be queried, since if height /
18610         width is negative Win32 changes it to 0. 
18611         Fixes #79999 on Windows.
18612         
18613         * XplatUIX11.cs: Set height / width to 0 if negative
18614         in SetWindowPos. Fixes #79999 on Linux.
18615         
18616 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
18617
18618         * ThemeWin32Classic.cs: Fix text redenring when button is
18619         pressed.
18620
18621 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
18622
18623         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
18624         and later navigate by mouse. Fixes #79528.
18625
18626 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
18627
18628         * ToolBar.cs: Set default value for TabStop to false in
18629         constructor, it fixes remaining behavior of bug #79863.
18630
18631 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18632
18633         * MdiWindowManager.cs:
18634         * InternalWindowManager.cs:
18635         - Moved a few methods specific to Mdi from 
18636         InternalWindowManager to MdiWindowManager.
18637         Fixes #79996.
18638         
18639 2006-11-21  Chris Toshok  <toshok@ximian.com>
18640
18641         * XplatUIOSX.cs: stub out InvalidateNC.
18642
18643         * XplatUIWin32.cs: implement InvalidateNC using the call I found
18644         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
18645
18646         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
18647
18648         * XplatUIDriver.cs: add InvalidateNC abstract method.
18649
18650         * XplatUI.cs: add InvalidateNC.
18651
18652 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
18653
18654         * ToolBar.cs: Invalidate complete button area when pressed status 
18655         was changed.
18656         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
18657         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
18658         by 1 when button is pressed.
18659
18660 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
18661
18662         * ToolButton.cs: Invalidate middle of DropDown button when
18663         ToolBar theres DropDownArrows.
18664         * ThemeWin32Classic.cs: Change position of DropDown arrow and
18665         fix DropDown drawing operations.
18666
18667 2006-11-20  Chris Toshok  <toshok@ximian.com>
18668
18669         * NativeWindow.cs: fix the formatting of functions ('{' on the
18670         following line), and enable the thread exception dialog.
18671
18672         * Application.cs: remove the duplicate exception catching from
18673         here.
18674
18675 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
18676
18677         * Toolbar.cs: Triggers button click event when click on icon
18678         of dropdown ToolBarButton. Fixes #79912.
18679         
18680 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18681
18682         * Theme.cs:
18683         * ThemeWin32Classic.cs:
18684         - Added a property WindowBorderFont to enable themeing
18685           of mdi child windows' Text.
18686           
18687 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18688
18689         * InternalWindowManager.cs:
18690         * Form.cs:
18691         * MdiClient.cs:
18692         * MdiWindowManager.cs: 
18693         - If mdi child is maximized, set mdi parent's
18694           text to "Parent - [Child]". Fixes #79770.
18695         - If there is any maximized mdi child windows, only the active 
18696           window (and any new windows) is maximized, the rest are normal.
18697         - On a WindowState change only save mdi child's window bounds 
18698           if the old window state was normal. Fixes #79774.
18699         - The scroll bars are now calculated on hopefully all
18700           necessary events. Fixed #79771 / #79844->6 / #79906.
18701         - MdiClient.SizeScrollBars() now takes into account docked 
18702           controls in the parent when calculating available space.
18703         - InternalWindowManager now always repaints the entire title
18704           area. Fixes #79844->1/4/5.
18705         - Added RequestNCRecalc on mdi child windowstate changes.
18706           Fixes #79772.
18707
18708 2006-11-20  Mike Kestner  <mkestner@novell.com>
18709
18710         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
18711         in the MouseUp handler of the listbox and move the return handling
18712         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
18713
18714 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
18715
18716         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
18717
18718 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
18719
18720         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
18721           working in 1.2.x anymore. So, updated.
18722
18723 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
18724
18725         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
18726         NumberGroupSeparator of current culture instead of assuming en-US.
18727         Fixed bug #79967.
18728
18729 2006-11-17  Mike Kestner  <mkestner@novell.com>
18730
18731         * Control.cs: Add the concept of implicit bounds setting so that
18732         dock/undock round trips preserve explicitly set size/locations.
18733         Fixes #79313.
18734
18735 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
18736
18737         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
18738           can't handle those filters. (Fixes bug #79961)
18739
18740 2006-11-17  Chris Toshok  <toshok@ximian.com>
18741
18742         [ fixes the exit/crashes associated with #79835.  it's clearly
18743         suboptimal though, we need to figure out a better way to solve
18744         this. ]
18745         
18746         * PrintPreviewControl.cs: deal with the new invalid printer
18747         exceptions.
18748
18749         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
18750         and return false (so CommonDialog.ShowDialog doesn't actually show
18751         the form.)
18752
18753         * PrintDialog.cs: enable/disable the Ok button depending on
18754         whether or not the printer is valid.
18755
18756         * CommonDialog.cs (ShowDialog): only actually show the form if
18757         RunDialog returns true.
18758
18759 2006-11-17  Jackson Harper  <jackson@ximian.com>
18760
18761         * TextControl.cs: When soft splitting a line, mark it as a soft
18762         split line. Also carry over the current line break to the next
18763         line.
18764
18765 2006-11-17  Chris Toshok  <toshok@ximian.com>
18766
18767         * XplatUIX11.cs: when scrolling a window with an invalid area, we
18768         only want to shift the part of the invalid area that overlaps the
18769         area we're scrolling.  we also don't want to clear the invalid
18770         area unless the invalid area was entirely contained within the
18771         scrolling area.
18772
18773 2006-11-16  Chris Toshok  <toshok@ximian.com>
18774
18775         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
18776         also make sure to free the memory returned by XGetWindowProperty
18777         in GetText().
18778
18779         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
18780
18781 2006-11-16  Chris Toshok  <toshok@ximian.com>
18782
18783         * XplatUI.cs: add a new super secret way to get at the totally
18784         unsupported X11 backend.
18785
18786 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
18787
18788         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
18789
18790 2006-11-16  Jackson Harper  <jackson@ximian.com>
18791
18792         * TreeView.cs: Allow more explicit setting of top node position
18793         for scrollbars. Slower algo, but more accurate.
18794         - CollapseAll should maintain the current top node.
18795         * TextBoxBase.cs: When positioning the caret, use the line, pos
18796         method, since the x, y method does not grab the correct tag, and
18797         the caret height never gets set correctly. (Maybe I should just do
18798         away with the caret having its own height, and always use the
18799         carets current tag for height).
18800
18801 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
18802
18803         [Fixes 79778, 79923]
18804
18805         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
18806         Parent to the FosterParent instead.
18807
18808 2006-11-16  Jackson Harper  <jackson@ximian.com>
18809
18810         * TreeView.cs: Need to recalc the topnode when we expand or
18811         collapse. The scrolling methods can't handle this on their own,
18812         since they use differences between the last scroll position, and
18813         those difference get completely messed up since we are expanding
18814         nodes.  This problem should probably be fixed in the scrolling
18815         methods, so they can figure out exactly where they are, but this
18816         will slow things down a little.
18817         * ThemeWin32Classic.cs: Special case for groupboxes with empty
18818         strings, makes nunit-gui look a lot nicer.
18819
18820 2006-11-16  Chris Toshok  <toshok@ximian.com>
18821
18822         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
18823         the broken multithreaded event handling we have in here.  File
18824         this entry under "Why we should move to the new X11 backend".
18825
18826         Any thread can make it into UpdateMessageQueue, which gets events
18827         from the X socket - some of which could belong to hwnds being
18828         managed by a different thread.  We can also have multiple threads
18829         in UpdateMessageQueue at the same time, with each one reading from
18830         the X socket.  This leads to many problems, with the following
18831         solutions:
18832
18833         We can't use hwnd.Queue.Enqueue anywhere in here and must use
18834         EnqueueLocked.
18835
18836         The MotionNotify compression we do can't work across threads
18837         (without locking the entire queue, perhaps) since we call
18838         hwnd.Queue.Peek, so we just punt and don't compress motion events
18839         unless the owning thread is the one which got the X event.
18840
18841         ConfigureNotify is another fun one, since it modifies the hwnd's
18842         bounds and then enqueues the event.  We add a lock to Hwnd which
18843         is held when setting configure_pending to true (and enqueuing the
18844         event).
18845
18846         There is a race wrt the wake socket.  we need to make sure that
18847         only 1 thread is waiting on that socket, or else a thread could
18848         sleep waiting for data that never comes.  It's difficult (but not
18849         impossible) to make happen, because it seems to require something
18850         like the following:
18851
18852             1. Thread 1 polls on wake_receive
18853         
18854             2. poll returns saying there's data to be read on
18855                wake_receive.
18856         
18857             3. Thread 2 polls on wake_receive and immediately returns
18858                saying there's data to be read.
18859
18860             4. Thread 2 reads the wakeup byte from wake_receive
18861
18862             5. Thread 1 attempts to read the wakeup byte from
18863                wake_receive.
18864
18865             6. Thread 2 exits (due to a form closing, perhaps).
18866
18867             7. Thread 1 blocks forever.
18868         
18869         Fun, eh?
18870
18871         Fixing the Expose handling isn't done yet, and the races inherent
18872         in that piece of code are responsible for the drawing mistakes you
18873         see when generating expose events in a MT app (like NPlot).  This
18874         one is the likely to be the hardest to bandaid, and it doesn't
18875         appear to cause anything but drawing problems.  The other issues
18876         caused apps to exit or hang.
18877
18878         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
18879         called from a different thread than the one that should be calling
18880         these functions.
18881
18882         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
18883
18884 2006-11-15  Chris Toshok  <toshok@ximian.com>
18885
18886         * Application.cs: null out the context's MainForm when we exit
18887         RunLoop.  Fixes a newly checked in unit test as well as the last
18888         ODE from bug #79933.
18889
18890 2006-11-15  Chris Toshok  <toshok@ximian.com>
18891
18892         * Form.cs (set_Owner): allow a null value so we can clear the
18893         form's owner.
18894         (Dispose): set all our owned_form's Owner properties to null, and
18895         clear the owned_forms collection.
18896         (WM_CLOSE): clean up this a little bit.. still not right though.
18897
18898         * ApplicationContext.cs: OnMainFormClosed should only call
18899         ExitThreadCore if the main form isn't recreating.  Fixes unit
18900         test.
18901
18902 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
18903
18904         [Fixes 78346]
18905
18906         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
18907
18908 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
18909
18910         [Fixes 79433]
18911
18912         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
18913         keep popup window types from stealing focus from the main form
18914         on Windows.
18915
18916         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
18917
18918         * MenuAPI.cs: Set above flag to true.
18919
18920 2006-11-15  Chris Toshok  <toshok@ximian.com>
18921
18922         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
18923         the button being released is not in wParam.
18924
18925 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
18926
18927         * Form.cs: Add the released button to MouseEventArgs.Button
18928         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
18929         on Win32.
18930
18931 2006-11-15  Chris Toshok  <toshok@ximian.com>
18932
18933         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
18934         GetText().  untested because it's unused in our implementation.
18935         Control.Text always caches the text, even if
18936         ControlStyles.CacheText is not set.
18937
18938         fixes bug #79939.
18939
18940 2006-11-15  Chris Toshok  <toshok@ximian.com>
18941
18942         [ fixes #79933 ]
18943         
18944         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
18945         message.  no hiding, no disposing.
18946
18947         in the WM_CLOSE handler, hide the form if it's modal.
18948
18949 2006-11-15  Chris Toshok  <toshok@ximian.com>
18950
18951         * XplatUIX11.cs: use AddExpose instead of sending a message.
18952         fixes textbox border drawing.
18953
18954 2006-11-15  Chris Toshok  <toshok@ximian.com>
18955
18956         * PropertyGridView.cs: keep from crashing on mouse move/down when
18957         the property grid is empty.
18958
18959 2006-11-14  Jackson Harper  <jackson@ximian.com>
18960
18961         * TextControl.cs: Make PageUp and PageDown more like the MS
18962         versions.
18963         * TextBoxBase.cs: When we set the text property position the
18964         cursor at the beginning of the document.
18965
18966 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18967
18968         * Form.cs: if a mdi child's WindowState has changed
18969         before it's creation, it would display wrong control
18970         buttons.
18971         
18972 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
18973
18974         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
18975           (Fixes bug #79927)
18976
18977 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18978
18979         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
18980         the window gets to paint its borders even if the window is
18981         getting smaller.
18982         
18983         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
18984         otherwise the old control buttons would still be painted 
18985         if the window gets bigger.
18986         
18987         * PaintEventArgs.cs: add an internal method so that the clip 
18988         rectangle can be changed.
18989         
18990 2006-11-13  Chris Toshok  <toshok@ximian.com>
18991
18992         [ fixes bug #79745 ]
18993         
18994         * NotifyIcon.cs: lots of cleanup.
18995
18996         * X11Structs.cs: add an enum for XEMBED messages.
18997
18998         * XplatUIX11.cs: reindent one of the giant switch statements, it
18999         was taking up an additional tab stop, and this file is already way
19000         too wide for my laptop's screen.
19001
19002         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
19003         we get it, resize the hwnd to the WMNormalHints max_width/height.
19004
19005 2006-11-13  Jackson Harper  <jackson@ximian.com>
19006
19007         * TextBoxBase.cs: Compute the value changes for the mouse wheel
19008         teh simple way.
19009
19010 2006-11-13  Chris Toshok  <toshok@ximian.com>
19011
19012         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
19013         #79898.  force a reference to the Region to stick around so the
19014         unmanaged object isn't collected (rendering our handle in the MSG
19015         stale).
19016
19017 2006-11-13  Chris Toshok  <toshok@ximian.com>
19018
19019         * XplatUIX11.cs: fix #79917 for window managers which support
19020
19021         using XStoreName on the raw utf8, and we need to convert to
19022         COMPOUND_TEXT if it's non-latin1.
19023
19024 2006-11-13  Chris Toshok  <toshok@ximian.com>
19025
19026         * Form.cs (set_DialogResult): we need to set closing to false if
19027         we're setting our result to None.  fixes bug #79908.
19028
19029 2006-11-13  Jackson Harper  <jackson@ximian.com>
19030
19031         * TextControl.cs: When formatting text, compute the adjusted tag
19032         lengths correctly, using FindTag for the end tag instead of trying
19033         to figure it out outselves.
19034         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
19035         the item, ItemHeight doesn't work, because trees with large
19036         imagelists use those for their height
19037         * TreeView.cs: ActualItemHeight factors in the image height
19038         - compute left edge of checkboxes correctly
19039         - when expanding/collapsing move the bottom down one pixel, so we
19040         aren't moving part of the node
19041
19042 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19043
19044         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
19045         stack in PaintEventStart so that it won't get disposed by the gc
19046         before reaching PaintEventEnd.
19047
19048 2006-11-13  Jackson Harper  <jackson@ximian.com>
19049
19050         * TextBoxBase.cs: Don't select the word if we are on a line with
19051         no text.
19052         - We don't need to position the caret on mouse up, since the mouse
19053         move handler should be doing this
19054         - When double clicking a blank line, the caret is advanced to the
19055         next line.
19056
19057 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
19058
19059         * TreeNodeCollection.cs: Avoid duplicating indexer code.
19060
19061 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
19062
19063         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
19064         Fixes part of bug #79910.
19065
19066 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
19067
19068         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
19069           (bug #79903). Some minor string updates to match ms.
19070
19071 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
19072
19073         * FileDialog.cs: Don't add an extension if the filename
19074           already ends with that extension.
19075
19076 2006-11-10  Jackson Harper  <jackson@ximian.com>
19077
19078         * TreeView.cs: Use the currently highlighted node for the
19079         BeforeSelect event.
19080         * TextBoxBase.cs: There is no need to expand selection on
19081         MouseMove.
19082         - CanUndo means 'is there any undo operations', not 'is undo
19083         allowed on this textcontrol. Fixed ClearUndo unit test.
19084
19085 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
19086
19087         * Button.cs: only perform click when button is Selectable (so as 
19088         not to activate default buttons when they're disabled)
19089         
19090         * Control.cs: Rewrite of the SelectNextControl and related 
19091         methods. HandleClick now selects next control if the current one
19092         is being disabled.
19093         
19094         * Form.cs: OnActivated selects next active control only if Load 
19095         has already occurred. If Load hasn't run, there's no point in 
19096         selecting here, Load might change the state of controls.
19097         
19098         * FocusTest.cs: Tests marked as working again for these fixes
19099
19100 2006-11-10  Chris Toshok  <toshok@ximian.com>
19101
19102         * XplatUIX11.cs: a couple of fixes.
19103
19104         - use XInternAtoms with almost all the atoms we need to register,
19105         instead of many, many calls to XInternAtom.  should help a bit on
19106         startup time, at the expense of making the code look a little
19107         worse.
19108
19109         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
19110         isn't reparented (which seems to be a clue that we're running fon
19111         compiz) and they have an Owner form.  This fixes the tool windows
19112         in paint.net when running under compiz.
19113
19114         - when setting the opacity of a window, support both the case
19115         where the window has been reparented and also when it hasn't been.
19116         Since compiz/beryl doesn't seem to reparent windows, and these are
19117         the only window managers which support translucency, I'm not sure
19118         why we need the hwnd.reparented case at all.. but leave it in.
19119         now we get translucent windows in paint.net under compiz/beryl.
19120
19121 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
19122
19123         * FileDialog.cs: Always return the value for FilterIndex that
19124           was set. Internally convert it to values that make sense.
19125
19126 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
19127         
19128         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
19129
19130 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
19131
19132         * Toolbar.cs: Change default value of DropDownArrows to true, the 
19133         signature still using false to make it compatible with MS but the 
19134         initial value is true. Fixes #79855.
19135
19136 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
19137
19138         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
19139           only available on Linux.
19140
19141 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
19142
19143         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
19144         reduce number of calls to redraw method during toolbar creation.
19145
19146 2006-11-09  Mike Kestner  <mkestner@novell.com>
19147
19148         * ListView.cs : raise SelectedIndexChanged when an item is selected
19149         programmatically via the Item.Selected property.  Gert's nice 
19150         ListViewSelectedIndexChanged test fixture now runs clean.
19151
19152 2006-11-09  Mike Kestner  <mkestner@novell.com>
19153
19154         * ListView.cs : raise SelectedIndexChanged when a selected item is
19155         removed from the item collection using Remove or RemoveAt.
19156
19157 2006-11-09  Mike Kestner  <mkestner@novell.com>
19158
19159         * ListView.cs : raise SelectedIndexChanged once per selected item
19160         for compat with MS.  Fixes #79849+.
19161
19162 2006-11-09  Chris Toshok  <toshok@ximian.com>
19163
19164         * TabControl.cs: initialize row_count to 0, and set it to 1 when
19165         we need to (if we have any tab pages).  Fixes unit test.
19166
19167 2006-11-09  Chris Toshok  <toshok@ximian.com>
19168
19169         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
19170         width is 0, not 3.  Fixes a unit test.
19171
19172 2006-11-09  Mike Kestner  <mkestner@novell.com>
19173
19174         * ListView.cs : use Implicit scrollbars so that focus isn't 
19175         stolen from the listview when they are clicked. Fixes #79850.
19176
19177 2006-11-09  Chris Toshok  <toshok@ximian.com>
19178
19179         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
19180         have a root item.  Fixes #79879.
19181
19182 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
19183
19184         * FileDialog.cs:
19185           - Fix ToString ()
19186           - An ArgumentException is now thrown if a wrong filter
19187             is applied (matches ms). The previous filter doesn't change
19188             anymore if an exception is thrown.
19189           - Changing the FileName property also affects FileNames
19190         * ColorDialog.cs: The length of the CustomColors array is always
19191           16. It doesn't matter if we use a smaller array or null to update
19192           or change the custom colors property.
19193         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
19194           for RootFolder if we get a undefined value.
19195
19196 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19197
19198         * StatusBarPanel.cs: 
19199         - Width is set to MinWidth if Width is smaller than
19200         MinWidth. Fixes #79842.
19201         - MinWidth now always overrides Width (MSDN says MinWidth
19202         is set to Width when AutoSize = None, but they do not 
19203         behave like that).
19204         - Style has now the the correct default value.
19205         
19206 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19207  
19208         * TrackBar.cs: 
19209         - The control is completely invalidated on 
19210         Got/LostFocus to draw the focus rectangle correctly.
19211         - When AutoSize then height is always 45 (width for 
19212         vertical controls).
19213         
19214         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
19215         on the mouse when moved and it doesn't move when grabbed
19216         until the mouse moves as well. Also fixed some wrong 
19217         calculations when clicking on the thumb (control thought
19218         click was outside of thumb and didn't grab it).
19219         Fixes some of the issues in #79718.
19220
19221 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
19222
19223         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
19224
19225 2006-11-08  Chris Toshok  <toshok@ximian.com>
19226
19227         * PropertyGridView.cs: only call ToggleValue if the item is not
19228         readonly.
19229
19230 2006-11-08  Jackson Harper  <jackson@ximian.com>
19231
19232         * TextBoxBase.cs: The RichTextBox and textbox have very different
19233         word selection methods.  Implement the textbox's simple word
19234         selection here, and let the RichTextBox override and provide it's
19235         own.
19236         - Don't do extra selection on mouseup
19237         * RichTextBox.cs: Use the documents word selection algorithm, I
19238         think ideally, this function will be pulled into the
19239         RichTextBox.cs code someday.
19240
19241 2006-11-08  Chris Toshok  <toshok@ximian.com>
19242
19243         * RootGridEntry.cs: new class to represent GridItemType.Root.
19244
19245         * CategoryGridEntry.cs: reformat, and add boilerplate.
19246         
19247         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
19248         returns the UI parent anyway, and we need special handling to
19249         implement the GetTarget method in the face of it.  Also, implement
19250         Select().
19251
19252         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
19253         a root grid item, and use that instead of PropertyGrid.grid_items.
19254         Also, make use of TypeConverters (and add limitted support for
19255         ICustomTypeDescriptors) when initially populating the grid.
19256         Arrays now show up more or less properly.
19257
19258 2006-11-08  Chris Toshok  <toshok@ximian.com>
19259
19260         * Application.cs: set the modal dialog to non modal after we close
19261         it.  Fixes bug #79866.
19262
19263 2006-11-08  Jackson Harper  <jackson@ximian.com>
19264
19265         * TextControl.cs: When combining lines carry over the line end
19266         style from the end line.
19267         - Invalidate the selected area when setting it, if it is visible.
19268         * TextBoxBase.cs: Only rich text box can do full line selects.
19269         - Make sure to set the cursor position when there is a click,
19270         otherwise two clicks in separate areas could cause a large chunk
19271         to be selected.
19272
19273 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
19274
19275         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
19276         Fixes #79863.
19277
19278 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
19279
19280         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
19281         time. Remove tooltips when ToolButton click events.  Fixes #79856.
19282
19283 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
19284
19285         * MenuAPI.cs: Ignore right click for menu actions and fixes
19286         menu border when clicked.  Fixes #79846.
19287
19288 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
19289
19290         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
19291         MouseState after create wParam for message, this fixes mouse button 
19292         equal none in mouse up events.
19293         
19294 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
19295
19296         * Control.cs : Focus() now calls Select to set the Container's
19297         Active Control and to give it focus. To avoid infinite recursion
19298         (because ActiveControl also calls Focus at one point), a check 
19299         is made in Focus with the help of a new internal variable
19300         is_focusing.
19301
19302 2006-11-07  Mike Kestner  <mkestner@novell.com>
19303
19304         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
19305         if there's a selection.  Fixes #79849.
19306
19307 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
19308
19309         * PropertyGrid.cs: Avoid fixed height of help description label.
19310         Fixes part of bug #79829.
19311
19312 2006-11-07  Chris Toshok  <toshok@ximian.com>
19313
19314         * XplatUIX11.cs: fix #79790 again, by using the
19315         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
19316
19317 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
19318
19319         * ToolBar.cs: Fix left click checking.
19320
19321 2006-11-07  Chris Toshok  <toshok@ximian.com>
19322
19323         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
19324
19325 2006-11-07  Chris Toshok  <toshok@ximian.com>
19326
19327         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
19328         PropertyManager unit tests.
19329
19330         * PropertyManager.cs: make property_name internal.
19331
19332 2006-11-07  Chris Toshok  <toshok@ximian.com>
19333
19334         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
19335         pass a unit test.  Also, don't set image_index to anything in
19336         response to setting the ImageList property.
19337
19338 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
19339
19340         * ToolBar.cs: Ignore click events when mouse button is not a
19341         left button, only accepts other button for dropdown menus.  
19342         Fixes #79854.
19343
19344 2006-11-07  Chris Toshok  <toshok@ximian.com>
19345
19346         * DataGrid.cs: make the back and parent row buttons a little less
19347         ugly.
19348
19349 2006-11-07  Jackson Harper  <jackson@ximian.com>
19350
19351         * TextBoxBase.cs: When converting to Text don't put line breaks in
19352         for soft line breaks.
19353         * TextControl.cs: There is an initial "fake" line in the document,
19354         this is now a soft break line, so that an extra line feed doesn't
19355         get added to the end of documents.
19356
19357 2006-11-07  Chris Toshok  <toshok@ximian.com>
19358
19359         [ fix bug #79778 ]
19360         
19361         * CurrencyManager.cs: if the list is readonly, don't bother
19362         checking if IBindingList.AllowNew is true.
19363
19364         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
19365         for non-DataRowView datasources..  or rather, make it not crash.
19366         (DataGridPaintRelationRow): make sure we limit the row painting to
19367         the area not covered by the row header, and make our cell width at
19368         least large enough to cover the relation area.  This allows grids
19369         that have relations but no rows to render correctly.
19370         (DataGridPaintRowContents): same type of changes here.
19371         (SetDataSource): move back to always calling
19372         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
19373         navigating back through relations.
19374         (HitTest): handle the case where we have no cells but have
19375         relations.  Right now we generate a hit in cell 0 of whatever the
19376         row is, not sure if this is strictly correct, but it works for our
19377         purposes.
19378         
19379         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
19380         bother doing anything.
19381
19382 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
19383
19384         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
19385         early version of StatusStrip.  Not responsible for eaten
19386         application or firstborn children.
19387
19388 2006-11-06  Chris Toshok  <toshok@ximian.com>
19389
19390         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
19391         call GetTabRect with a -1 index.  Fixes #79847.
19392
19393 2006-11-06  Jackson Harper  <jackson@ximian.com>
19394
19395         * TreeNodeCollection.cs: Update scrollbars after clearing.
19396
19397 2006-11-06  Chris Toshok  <toshok@ximian.com>
19398
19399         * NumericUpDown.cs: fix the ToString method for some unit test
19400         love.
19401
19402 2006-11-06  Chris Toshok  <toshok@ximian.com>
19403
19404         * PropertyGrid.cs:
19405         - set the initial SelectedGridItem if we can.
19406
19407         - Exclude non-mergable properties only if we're merging > 1
19408         object.  Merging 1 object isn't really merging, obviously.
19409
19410         - Handle PropertySort.NoSort just like Alphabetical, which is
19411         wrong of course, but at least gets things on the screen.
19412         
19413         * PropertyGridView.cs:
19414         - Add method "FindFirstItem" which finds the first property grid
19415         item, so we can select it by default.
19416
19417         - make use of GridEntry.CanResetValue.
19418
19419         - Don't call RedrawBelowItemOnExpansion here anymore, the
19420         individual GridEntry's will do that.
19421
19422         - Remove the ITypeDescriptorContextImpl internal class.
19423         
19424         * GridEntry.cs:
19425         - this class needs to implement ITypeDescriptorContext, as it's
19426         what MS's PropertyDescriptorGridEntry does, which means we can
19427         remove the ITypeDescriptorContextImpl internal class from
19428         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
19429
19430         - keep a reference to our PropertyGridView, and move the call to
19431         RedrawBelowItemOnExpansion here from PGV.  This means
19432         programmaticly setting Expanded actually does something visible.
19433
19434         - add a CanResetValue() function which takes into account our
19435         possibly multiple "selected_objects" in the merged case.  Shifting
19436         PropertyGridView to use this method fixes another unreported
19437         crasher found running the test for #79829.
19438
19439         - when Top or Bounds is updated, make sure the PropertyGridTextBox
19440         is updated to reflect this.
19441
19442         * CategoryGridEntry.cs: the ctor takes the PGV now.
19443         
19444 2006-11-06  Jackson Harper  <jackson@ximian.com>
19445
19446         * TextControl.cs: These are 1 based.
19447         * TextBoxBase.cs: When setting the selected text, don't change the
19448         selected text tags, this is done by ReplaceText, just position the
19449         cursor at the end of the new text.
19450
19451 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
19452
19453         * ListView.cs: Allow label edit only when, when LabelEdit is
19454           set to true.
19455
19456 2006-11-06  Jackson Harper  <jackson@ximian.com>
19457
19458         * TextControl.cs: If a suitable wrapping position isn't found,
19459         just wrap right in the middle of a word.
19460
19461 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
19462
19463         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
19464           bug #79820.
19465
19466 2006-11-06  Jackson Harper  <jackson@ximian.com>
19467
19468         * TreeView.cs: Can't use the VisibleCount property when setting
19469         scrollbar heights, because this doesn't take into account whether
19470         or not the horz scrollbar just came visible.
19471
19472 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
19473
19474         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
19475         activated.  Fixes #79369, #79832.
19476
19477 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
19478
19479         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
19480           had to remove support for links that point to a directory. FileInfo
19481           returns no usefull information (means, the directory they point to)
19482           for such links. Replaced some empty string ("") with String.Empty.
19483
19484 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
19485
19486         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
19487         NullReferenceException when attempting to remove node that is not in
19488         collection. Throw NullReferenceException when null is passed to 
19489         Remove. Allow first element of the collection to be removed. Fixes
19490         bug #79831.  In GetEnumerator ().Current return null if positioned 
19491         before the first element of the collection. In GetEnumerator ().Reset,
19492         position before first element of the collection.
19493
19494 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
19495
19496         * PropertyGrid.cs: To match MS, remove default title and description
19497         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
19498         buttons.
19499
19500 2006-11-04  Chris Toshok  <toshok@ximian.com>
19501
19502         * Theme.cs: add a Clamp method, just for kicks.
19503
19504         * ThemeWin32Classic.cs: clamp all color components to [0..255].
19505
19506 2006-11-04  Chris Toshok  <toshok@ximian.com>
19507
19508         * Form.cs: if the form isn't visible, Close() does nothing.
19509
19510 2006-11-03  Chris Toshok  <toshok@ximian.com>
19511
19512         * Form.cs (Close): if the form is modal, don't Dispose of it, only
19513         Hide it.
19514         (WndProc): don't Dispose after handling the WM_CLOSE message.
19515
19516         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
19517         them as such, instead of using casts from Control to Form.  Also,
19518         don't Dispose of the modal dialog when we fall out of the loop -
19519         Close() it instead.
19520
19521         fixes bug #79813.
19522
19523 2006-11-03  Chris Toshok  <toshok@ximian.com>
19524
19525         * Control.cs (Dispose): only go through the dispose thing if we're
19526         @disposing, and we haven't already been disposed.  Fixes bug
19527         #79814.
19528
19529         * Form.cs: no reason to call "base.Dispose()" here instead of
19530         "Dispose()".
19531
19532 2006-11-03  Mike Kestner  <mkestner@novell.com>
19533
19534         * ComboBox.cs : use ToString instead of casts in AddItem for
19535         sorting functionality.  Fixes #79812.
19536
19537 2006-11-03  Chris Toshok  <toshok@ximian.com>
19538
19539         * Application.cs: pave the way for actually using the thread
19540         exception dialog.  it's ifdefed out at the moment.
19541
19542 2006-11-03  Chris Toshok  <toshok@ximian.com>
19543
19544         * ThreadExceptionDialog.cs: until we get a better layout, actually
19545         hide the details textbox and label when we shouldn't see them.
19546
19547 2006-11-03  Jackson Harper  <jackson@ximian.com>
19548
19549         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
19550         multiline textboxes anymore.  This method also determines the
19551         width/height of a textboxes canvas area.
19552         - Sorta a revert of the last patch.  For multiline just position
19553         the controls, then bail.  This way the scrollbar width won't be
19554         altered.
19555
19556 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
19557
19558         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
19559         it dont need.  Fixes #79537.
19560
19561 2006-11-02  Jackson Harper  <jackson@ximian.com>
19562
19563         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
19564         send the status after firing the DndOver event.
19565
19566 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19567
19568         * TrackBar.cs: Now orientation only switches height / width if
19569         the control's handle is created (Win32 does it like this). Also 
19570         fixed a typo in ToString() for a test to pass, changed the 
19571         exception thrown in set_LargeChange and set_SmallChange to 
19572         match Win32 behaviour, and added TrackBar tests to the unit 
19573         tests.
19574
19575 2006-11-02  Chris Toshok  <toshok@ximian.com>
19576
19577         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
19578         not _NET_WM_STATE_NO_TASKBAR.
19579
19580 2006-11-02  Jackson Harper  <jackson@ximian.com>
19581
19582         * TextControl.cs: Increment count by one, since in the update view
19583         count - 1 is used.
19584
19585 2006-11-02  Jackson Harper  <jackson@ximian.com>
19586
19587         * TextBoxBase.cs: Use client rectangle not bounds for checking if
19588         the mouse is in the client rectangle (duh).
19589
19590 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19591         
19592         * TrackBar.cs: Fixed trackbar jumping around when clicking
19593         on it - the trackbar was not detecting correctly at which
19594         side of the thumb the click was done. (fixes #79718)
19595
19596 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
19597
19598         * ListBox.cs: scroll visible area when change SelectedIndex to
19599         a non visible area.  Fixes #79481.
19600
19601 2006-11-01  Jackson Harper  <jackson@ximian.com>
19602
19603         * TextControl.cs: When replacing the selection move the selection
19604         start/end/anchor to the end of the new text.
19605
19606 2006-11-01  Jackson Harper  <jackson@ximian.com>
19607
19608         * XplatUIWin32.cs: When setting the parent change the controls
19609         visibility to it's visibility flag, not to it's old parents
19610         visibility (.Visible walks the parent chain).
19611
19612 2006-11-01  Chris Toshok  <toshok@ximian.com>
19613
19614         * XplatUIX11.cs: revert the #79790 fix, as the simple.
19615         XSetTransientForHint fix breaks paint .net's tool windows.  more
19616         work needed for that one.
19617
19618 2006-11-01  Chris Toshok  <toshok@ximian.com>
19619
19620         * ScrollBar.cs: throw ArgumentException instead of Exception in
19621         LargeChange/SmallChange setters.  fixes unit tests.
19622
19623 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
19624
19625         * ContainerControl.cs: reverted rev.67183 (which was itself
19626         a reversion of rev.66853... eh).
19627         
19628         * Control.cs: Fixes Reflector hang by changing Focus() call
19629         to what it was before rev.66643 (calling Select() here sets 
19630         ActiveControl, which in some situations calls back Focus and 
19631         eventually does a stack overflow). Temp fix.    
19632         Changes to GetNextControl() to not look for children to select when
19633         parent cannot be selectable (so it looks for siblings instead)  
19634         
19635 2006-10-31  Mike Kestner  <mkestner@novell.com>
19636
19637         * CheckedListBox.cs : off by one error in returned index from
19638         ObjectCollection.Add.  Fixes #79758.
19639
19640 2006-10-31  Chris Toshok  <toshok@ximian.com>
19641
19642         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
19643         calls for the textbox/spinner, to keep from recursing to the point
19644         where we crash.  Fixes #79760.
19645
19646 2006-10-31  Chris Toshok  <toshok@ximian.com>
19647
19648         * ListControl.cs (set_SelectedValue): don't throw exceptions on
19649         null/"" value, just return.  matches ms's behavior and fixes some
19650         failing tests.
19651
19652 2006-10-31  Chris Toshok  <toshok@ximian.com>
19653
19654         * Control.cs (set_Capture): make a logic a little easier to
19655         follow.
19656
19657         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
19658         if it's being destroyed.  A necessary fix surely, but a bandaid
19659         also, to fix the stuck capture problem in bug #78413.
19660
19661 2006-10-31  Chris Toshok  <toshok@ximian.com>
19662
19663         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
19664         convention of clearing hwnd.ClientRect when we set the
19665         width/height (so it'll be recalculated by Hwnd).
19666
19667 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
19668
19669         * ContainerControl.cs: reversed Contains check from
19670         ActiveControl due to hanging problems. This fix
19671         partly regresses #79667 (button does not have
19672         initial focus), so this might be a symptom for 
19673         a larger parenting problem (set_ActiveControl
19674         is being called but the child control does
19675         not have the parent set yet?)   
19676         
19677 2006-10-31  Mike Kestner  <mkestner@novell.com>
19678
19679         * MenuAPI.cs : fix keynav when menu is click activated.
19680
19681 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
19682
19683         * ToolStrip*: Version 0.2.
19684
19685         * MenuStrip.cs: Version 0.1.
19686
19687         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
19688
19689 2006-10-30  Chris Toshok  <toshok@ximian.com>
19690
19691         [ fixes the oversized notify icon issue in bug #79745 ]
19692         
19693         * NotifyIcon.cs: scale the icon down to the size we're given by
19694         the XplatUI layer (this would be faster if we did it once instead
19695         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
19696         since it's never invoked.
19697
19698         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
19699         pixels high by default, so let's hardcode our systray icon to that
19700         size.  The SYSTEM_TRAY protocol should really have a way for
19701         client apps to query for the correct icon size.. but oh well.  A
19702         couple of patches to deal with the screwy client_window ==
19703         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
19704         instance, and also make sure we don't XSelectInput twice).
19705
19706 2006-10-30  Chris Toshok  <toshok@ximian.com>
19707
19708         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
19709         recreating forms.  Control recreation is the bane of my existence.
19710         Fix it in a way that keeps everyone happy.
19711
19712 2006-10-30  Chris Toshok  <toshok@ximian.com>
19713
19714         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
19715         just non-CHILD ones.  otherwise sometimes scrollbars end up with
19716         client_windows not being resized to the proper size (ReportBuilder
19717         shows this extremely well).
19718
19719 2006-10-30  Chris Toshok  <toshok@ximian.com>
19720
19721         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
19722         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
19723         showing up in the gnome taskbar.  Fixes bug #79790.
19724
19725 2006-10-30  Chris Toshok  <toshok@ximian.com>
19726
19727         * ApplicationContext.cs: guard against a NRE.
19728
19729         * Application.cs: null out the old MainForm for the context, so we
19730         don't try to use it again once it's disposed.  Fixes bug #79783.
19731
19732 2006-10-30  Chris Toshok  <toshok@ximian.com>
19733
19734         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
19735         BindingContext, set the data source directly, otherwise do the
19736         lazy approach - the actual ListManager will be created when we get
19737         a BindingContext. Fixes bug #79700.
19738
19739 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
19740
19741         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19742           XplatUIX11.cs: Remove old 2 parameter SetVisible.
19743
19744         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
19745
19746 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
19747
19748         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
19749         of SetVisible that allows a window to be shown, but not activated.
19750         This is needed on Windows for MenuStrip, and can probably be used
19751         with MainMenu and ComboBox to fix the focus stealing issues on
19752         Windows.
19753
19754         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
19755
19756 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
19757
19758         * PictureBox.cs: Fix the output of the ToString method.
19759
19760 2006-10-29  Chris Toshok  <toshok@ximian.com>
19761
19762         * Control.cs (get_TopLevelControl): fix bug #79781.
19763
19764 2006-10-29  Chris Toshok  <toshok@ximian.com>
19765
19766         * ListControl.cs (set_DataSource): throw Exception here, not
19767         ArgumentException, to match MS behavior.
19768
19769 2006-10-29  Chris Toshok  <toshok@ximian.com>
19770
19771         * Form.cs: remove the try-catch's around calls to GetWindowState.
19772         We can just check the return value.
19773
19774         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
19775         Instead return -1.
19776
19777         * XplatUI.cs: Add note about additional return value for
19778         GetWindowState.
19779
19780 2006-10-29  Chris Toshok  <toshok@ximian.com>
19781
19782         * Control.cs (CreateHandle): when we create our handle, we also
19783         create the handles of our child controls.  Fixes one of the
19784         Control unit tests (CH11).
19785
19786 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
19787
19788         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
19789
19790 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
19791
19792         * ThemeClearlooks.cs: A little speedup.
19793
19794 2006-10-27  Chris Toshok  <toshok@ximian.com>
19795
19796         * Control.cs: implement Control.FromChildHandle in a way that
19797         matches the docs (and fixes the failed test.)
19798
19799 2006-10-27  Chris Toshok  <toshok@ximian.com>
19800
19801         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
19802         comments).
19803
19804         * DataGrid.cs: implement ResetForeColor such that the tests
19805         succeed.
19806         
19807 2006-10-27  Chris Toshok  <toshok@ximian.com>
19808
19809         * ToolBarButton.cs: setting text/tooltiptext to null results in it
19810         being set to "".  Fixes bug #79759.
19811
19812 2006-10-27  Jackson Harper  <jackson@ximian.com>
19813
19814         * TextControl.cs: We need to clear the entire selection area when
19815         setting the start, otherwise multiline selections are still
19816         visible.
19817
19818 2006-10-26  Chris Toshok  <toshok@ximian.com>
19819
19820         * PropertyGridView.cs: 
19821
19822         - ifdef all the code specific to the double
19823         buffer case, and provide some alternatives in the non-doublebuffer
19824         code, which makes heavy use of XplatUI.ScrollWindow to move things
19825         around without having to invalidate (and cause flicker).  There
19826         are still some drawing problems in the non-doublebuffered case, so
19827         DOUBLEBUFFER is defined by default.
19828
19829         - Fix the way dropdowns are handled.  now we explicitly watch for
19830         the events which might cause the dropdown to close, and break out
19831         of the nested event loop there.  This gets rid of all Capture
19832         code, at the expense of the Msg special casing.  Seems to work,
19833         though, and fixes bug #79743.
19834
19835 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
19836         * Control.cs: SetIsRecreating now recreates implicitly added
19837         child controls as well. Finally fixes #79629. The flag passed to 
19838         SetIsRecreating has also been removed since it wasn't used.
19839         
19840 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19841
19842         * PageSetupDialog.cs: Clean some code, fix some bits, 
19843         add some checks, and add a printer sub-dialog.
19844
19845 2006-10-26  Chris Toshok  <toshok@ximian.com>
19846
19847         * PropertyGrid.cs: make set_SelectedObject call
19848         set_SelectedObjects, and move the duplicate logic to the
19849         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
19850
19851         * PropertyGridView.cs: hide the textbox when we get a
19852         SelectedObjectsChanged event.
19853
19854         Fixes bug #79748.
19855
19856 2006-10-26  Chris Toshok  <toshok@ximian.com>
19857
19858         * PropertyGridView.cs: deal with the type converter not supporting
19859         GetStandardValues() or GetStandardValues() returning null, which
19860         is does in the default case.  Fixes #79742.
19861
19862 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
19863
19864         * CheckedListBox.cs: nunit no longer crashes when selecting 
19865         Project/Edit menu option
19866         
19867 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
19868
19869         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
19870         is no menu selected. fixes #79739
19871
19872 2006-10-25  Chris Toshok  <toshok@ximian.com>
19873
19874         * PropertyGridView.cs: factor out the splitter invalidation code
19875         into the SplitterPercent setter, and for kicks implement the
19876         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
19877         amount in either direction.
19878
19879 2006-10-25  Chris Toshok  <toshok@ximian.com>
19880
19881         * PropertyGridView.cs: do some cleanup of the brush used to draw
19882         text - read only fields should be grayed out.  not sure how to do
19883         this with the textbox, though.  but the textbox's should also be
19884         readonly now at least.  Also, hide/show the textbox when resizing
19885         the control.
19886         
19887         * CursorConverter.cs: use System.Reflection when getting the
19888         properties of Cursors, as TypeDescriptor.GetProperties isn't
19889         returning static properties.
19890
19891 2006-10-25  Chris Toshok  <toshok@ximian.com>
19892
19893         * PropertyGridView.cs: factor out the up/down handling, and reuse
19894         it for page up/down.  also add End/Home support.
19895
19896 2006-10-25  Chris Toshok  <toshok@ximian.com>
19897
19898         * PropertyGridView.cs:
19899
19900         - ensure the selected grid item is visible in the scrolled area,
19901         fixes bug #79572.
19902
19903         - fix Keys.Down handling when you're on the last item in the
19904         propertygrid.
19905
19906 2006-10-25  Mike Kestner  <mkestner@novell.com>
19907
19908         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
19909         clicks too.  Fixes #79725.
19910
19911 2006-10-24  Chris Toshok  <toshok@ximian.com>
19912
19913         * PropertyGrid.cs: use property.Converter instead of
19914         TypeDescriptor.GetConverter(property.PropertyType), so we catch
19915         TypeConverters declared on the property as well as on the
19916         PropertyType.  Fixes bug #79678.
19917
19918 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
19919
19920         * MimeIcon.cs, Mime.cs:
19921           Fallback to the default platform handler if no shared mime info
19922           stuff exists (fixes #79693).
19923
19924 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
19925         * ContainerControl.cs: Incorrect contains check in ActiveControl 
19926         from previous fix (duh).
19927
19928 2006-10-20  Chris Toshok  <toshok@ximian.com>
19929
19930         * PropertyGridView.cs: the dropdown should be MIN(number of items
19931         in list, 15).  Fixes #79551.
19932
19933 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
19934         Fixes #79384, #79394, #79652, #79667
19935         * Application.cs: 
19936         
19937         - Modal windows are now destroyed in the proper order for windows
19938         
19939         * ContainerControl.cs:
19940         
19941         - ActiveControl setter has more conditions on when to return:
19942                 - if we're reselecting the active control, but it actually
19943                 didn't have focus (window hidden or some such), it runs
19944                 - if the active control being selected doesn't actually 
19945                 exist in the container, it returns
19946         
19947         * Form.cs
19948         
19949         - The ShowDialog now gets the current form as the owner when
19950         invoking without parameters, and correctly activates the owner 
19951         when returning
19952         
19953         * MessageBox.cs
19954         
19955         - MessageBox now catches the Escape key to exit
19956
19957 2006-10-20  Chris Toshok  <toshok@ximian.com>
19958
19959         * PropertyGridView.cs: fix a number of issues (bug #78565, and
19960         most of bug #79676):
19961
19962         - you can navigate around the property grid with the arrow keys.
19963
19964         - the dropdown is sized properly when the pg has a vertical
19965         scrollbar.
19966
19967         - fix the indentation for subentries, and properly select the
19968         entire label rect.
19969
19970         - fix the gray bar's drawing (only draw it to the last element,
19971         not for the height of the control.  Also make sure we draw that
19972         last horizontal grid line.
19973
19974         - use the same mechanism the datagrid uses wrt the editing textbox
19975         when scrolling/resizing/etc.  Namely, we hide it first, do the
19976         operation, then show it again (if it's still visible).
19977         
19978         - aggressively remove a lot of unnecessary refreshes (and also
19979         calls to Invalidate(). call more limited variants, and only redraw
19980         what we need.)
19981         
19982         * PropertyGrid.cs:
19983
19984         - when we're populating the merged collection, fill in the UI
19985         parent with either the passed in item, or the category item we
19986         create.
19987
19988         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
19989
19990         * GridItem.cs: drop some fully qualified names.
19991         
19992         * GridEntry.cs: add a "UIParent", which is basically the parent
19993         treenode.
19994
19995         * GridItemCollection.cs: add an IndexOf method.
19996
19997 2006-10-20  Mike Kestner  <mkestner@novell.com>
19998
19999         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
20000         a working win32 NC invalidation mechanism, we can't invalidate
20001         menus.  [Fixes #79705]
20002
20003 2006-10-20  Mike Kestner  <mkestner@novell.com>
20004
20005         * ListBox.cs : don't update the VScrollbar if the list is empty,
20006         just hide it.  [Fixes #79692]
20007
20008 2006-10-20  Jackson Harper  <jackson@ximian.com>
20009
20010         * RichTextBox.cs: Handle some special chars better, and don't skip
20011         the entire group when we encounter a special char that we don't
20012         handle correctly.
20013
20014 2006-10-18  Chris Toshok  <toshok@ximian.com>
20015
20016         * PropertyGridView.cs: address a number of issues from bug #79676,
20017         mostly of the cosmetic variety.
20018
20019         - The highlight rectangle for indented items not extends all the
20020         way to the left.
20021
20022         - Indented items aren't indented so much.
20023
20024         - the dropdown is properly sized width-wise if the pg has a
20025         vertical scrollbar.
20026
20027 2006-10-18  Chris Toshok  <toshok@ximian.com>
20028
20029         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
20030         systray stuff is rather convoluted to begin with.
20031
20032         systray icons are a single window for some reason (that I haven't
20033         figured out yet), and for them, client_window == whole_window.
20034         Given the way the tests are structured elsewhere to determine
20035         which paints are pending (client vs. nc), that situation will
20036         always yield PAINT, not NCPAINT.  So, if we have a pending
20037         nc_expose and no pending expose, remove the hwnd from the paint
20038         queue, and also set nc_expose_pending to false, to keep us from
20039         blocking further expose's adding the hwnd to the paint queue.
20040
20041         phew.  like i said, a rather convoluted change.  Fixes the
20042         notifyicon repaint issues in bug #79645.
20043
20044 2006-10-18  Chris Toshok  <toshok@ximian.com>
20045
20046         * Form.cs: when getting the backcolor of the form, don't get
20047         base.BackColor, as this allows parents to influence the background
20048         color.  This breaks mdi forms.  Instead, if the background_color
20049         is empty, return the default.
20050
20051 2006-10-18  Chris Toshok  <toshok@ximian.com>
20052
20053         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
20054         to being private instead of internal static.
20055
20056         * Control.cs: remove all the stupid ParentWaitingOnRecreation
20057         crap, it wasn't working for more deeply nested controls anyway,
20058         and we already have the is_recreating flag - use that instead.
20059         Before calling DestroyHandle in RecreateHandle, recurse through
20060         the control tree setting it to true.  this returns the recreate
20061         code to much of its original simplicity, while now guaranteeing we
20062         actually recreate everything we're supposed to.  This change gets
20063         fyireporting actually showing mdi children.
20064
20065 2006-10-17  Chris Toshok  <toshok@ximian.com>
20066
20067         * Form.cs: remove some debug spew, and collapse some duplicate
20068         code at the end of SetClientSizeCore.
20069
20070         * XplatUIX11.cs: 
20071         - add some more debug spew here too wrt Destroy handling.
20072         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
20073         in Control's handling of WM_DESTROY.
20074         - Remove the handling of zombie window DestroyNotifies from the
20075         event loop - we don't need it.  Now the only DestroyNotifies we
20076         actually handle are ones generated by X.
20077         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
20078         match gtk's (functioning) handling of this. This keep metacity
20079         from leaving droppings in the form of wm borders with no window
20080         contents all over the place.
20081
20082         * Control.cs:
20083         - add a bunch of debug spew wrt control recreation.
20084         - fix a bug where we weren't tracking Visible properly on
20085         recreated hwnds.
20086         - fixed the WM_PAINT double buffer handling to support re-entrant
20087         calls (yes, i know it's gross, but it's happening to us).
20088
20089 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
20090         * ThemeWin32Classic.cs: changed drawing of selected days
20091         to make them look better.
20092
20093 2006-10-16  Chris Toshok  <toshok@ximian.com>
20094
20095         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
20096         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
20097
20098         * XplatUIX11.cs: move away from using hwnd.client_dc and
20099         hwnd.non_client_dc and on to a stack of dc's (and in window's
20100         case, PAINTSTRUCT's), so we can deal with nested Paint calls
20101         without puking or not disposing of Graphics objects.
20102
20103         * XplatUIOSX.cs: same.
20104
20105         * XplatUIWin32.cs: same.
20106
20107 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
20108
20109         * FileDialog.cs: Don't call on_directory_changed inside
20110           OnSelectedIndexChanged (it changes the SelectedIndex too).
20111           Instead move it to OnSelectionChangeCommitted.
20112
20113 2006-10-13  Chris Toshok  <toshok@ximian.com>
20114
20115         * XplatUIX11.cs: more Destroy work.  the current code does the
20116         following things, in order:
20117
20118         1. Enumerates all handles of all controls at or below the one
20119         being destroyed, in pre-order.  As it is doing this, it marks the
20120         handles as zombie and clears all references to them.
20121         
20122         2. calls XDestroyWindow on the window passed in.
20123
20124         3. SendMessage's WM_DESTROY to all he handles in the accumulated
20125         list.
20126
20127 2006-10-13  Chris Toshok  <toshok@ximian.com>
20128
20129         * XplatUIX11.cs: set hwnd.zombie to true before calling
20130         SendMessage (WM_DESTROY).  this keeps us from marking the new
20131         window a zombie, and also keeps us from calling sendmessage at
20132         all.
20133
20134 2006-10-13  Jackson Harper  <jackson@ximian.com>
20135
20136         * TextControl.cs: Do not show the caret and selection at the same
20137         time.  Reduces ugliness by 35%.
20138
20139 2006-10-13  Chris Toshok  <toshok@ximian.com>
20140
20141         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
20142         zombie after we do the recursive call, so we actually do call
20143         SendMessage on the children controls.
20144         (GetMessage): if we find a pending paint event for a zombie hwnd,
20145         remove the hwnd from the paint queue, or else it will always be
20146         there (and we'll effectively loop infinitely)
20147
20148 2006-10-13  Mike Kestner  <mkestner@novell.com>
20149
20150         * MenuItem.cs : add Selected format under keynav too.
20151         Fixes #79528.
20152
20153 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
20154
20155         * PropertyGrid.cs: Fixed some NRE's and small difference between our
20156         implementation and that of MS.
20157
20158 2006-10-13  Chris Toshok  <toshok@ximian.com>
20159
20160         * Control.cs (OnInvalidated) only futz with the invalid_region if
20161         the control is double buffered.  this fixes the apparent hang in
20162         the ListView unit tests.  Someone needs to make the
20163         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
20164
20165 2006-10-13  Chris Toshok  <toshok@ximian.com>
20166
20167         * PropertyGridView.cs:
20168
20169         - do a little refactoring so that only one place calls
20170         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
20171         else call that.  Also make it Refresh, since there are redraw bugs
20172         otherwise (we should take a look at that...)
20173
20174         - do a little more refactoring work to share the body of code
20175         involved with the drop down.  it was duplicated in the code
20176         dealing with the listbox handling and in the code dealing with the
20177         UITypeEditors.
20178
20179         - add a Capture to the dropdown form's control once it's
20180         displayed, and add a MouseDown handler that checks to make sure
20181         the position is inside the control.  If it's not, close the
20182         dropdown.  This fixes #78190.
20183
20184         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
20185         if the value is different than the initial value.
20186         
20187 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
20188
20189         * Control.cs: see #78650
20190         - Fixed GetNextControl for several cases:
20191                 - Changed FindFlatForward to return 
20192                 correct sibling control when more than one
20193                 control has same TabIndex as the currently 
20194                 focused one.
20195                 - Changed FindFlatBackward to loop children
20196                 from last to first and apply same logic as in
20197                 FindFlatForward
20198                 - Changed FindControlForward to search for
20199                 children when control is not a container
20200                 but has children, or search for siblings if
20201                 control is a container...
20202                 - Changed FindControlBackward   to continue
20203                 searching for child controls when hitting 
20204                 Panel-like parents
20205                 
20206         - Fixed Focus method to update ActiveControl
20207         (FocusTest.FocusSetsActive failure)
20208         
20209         * TabControl.cs:
20210         - Focus rectangle now refreshes when gaining
20211         or losing focus
20212         - Removed grab for Tab key on IsInputKey that 
20213         was keeping tab navigation from working (#78650)
20214
20215 2006-10-13  Chris Toshok  <toshok@ximian.com>
20216
20217         * PropertyGridView.cs:
20218         - Rewrite SetPropertyValue to loop over SelectedGridItem's
20219         SelectedObjects.
20220
20221         - Deal with GridItem.Value == null a few places.
20222
20223         * PropertyGrid.cs: 
20224         - replace the PopulateGridItemCollection with a pair of methods
20225         which compute the intersection of all the properties in the
20226         SelectedObjects array.  Fixes #79615.
20227
20228         - Throw ArgumentException from set_SelectedObjects if there's a
20229         null in the array.
20230
20231         - Add GetTarget method which can be used to traverse up the
20232         GridItem.Parent chain.  It depends on the assumption that
20233         selected_objects for different GridEntries are always in the same
20234         order (a safe assumption).  Use this method and loop over all the
20235         selected objects in the entry when calling RemoveValueChanged and
20236         AddValueChanged.
20237         
20238         * GridEntry.cs: Make this handle multiple selected objects.
20239         .Value returns null if not all the selected objects share the same
20240         value.
20241
20242 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
20243         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
20244           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
20245           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
20246           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
20247           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
20248         add additional functionality.
20249
20250 2006-10-12  Mike Kestner  <mkestner@novell.com>
20251
20252         * ErrorProvider.cs : new ToolTipWindow ctor sig.
20253         * HelpProvider.cs : new ToolTipWindow ctor sig.
20254         * ToolTip.cs : remove ToolTip param from Window sig since it is
20255         not used.
20256         * ToolBar.cs : add tooltip support.  Fixes #79565.
20257
20258 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
20259
20260         * ComboBox.cs: move the events in set_SelectedIndex to 
20261         after the call to HighlightIndex in order to avoid 
20262         possible recursion and subsequent problems with the call
20263         to HighlightIndex and include a range check in 
20264         set_HighlightIndex. Fixes #79588
20265         
20266 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
20267
20268         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
20269         to ui thread's settings instead of sunday. 
20270         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
20271
20272 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
20273
20274         * DateTimePicker.cs
20275         * MonthCalendar.cs
20276         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
20277         and implement missing functionality (selecting different parts 
20278         of the date and edit them individually with the keyboard).
20279         
20280 2006-10-11  Chris Toshok  <toshok@ximian.com>
20281
20282         * Control.cs (OnInvalidated): fix NRE relating to last change.
20283
20284 2006-10-11  Chris Toshok  <toshok@ximian.com>
20285
20286         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
20287         atoms in _NET_WM_STATE here if the window is maximized.  We need
20288         to do this because we're *replacing* the existing _NET_WM_STATE
20289         property, so those atoms will be lost otherwise, and any further
20290         call to GetWindowState will return Normal for a window which is
20291         actually maximized.  Fixes #79338.
20292
20293 2006-10-11  Jackson Harper  <jackson@ximian.com>
20294
20295         * TextControl.cs: Special case for setting selection end to
20296         selection start, we basically kill the anchor.
20297         - some todo comments.
20298
20299 2006-10-11  Chris Toshok  <toshok@ximian.com>
20300
20301         * Control.cs: switch to using an "invalid_region" to track which
20302         parts of the image buffer need updating.  This is more code than
20303         the simple fix from r66532.  That version just attempted to always
20304         fill the entire buffer on redraw, which turns out to be
20305         inefficient when invalidating small rectangles.  This version
20306         simply adds the invalid rectangle to the invalid region.  When we
20307         get any WM_PAINT message we see if it can be filled using the
20308         image buffer, and if it can't (if the paint event's clip rectangle
20309         is visible in the invalid region) we first fill the image buffer.
20310         So, the image buffer is still a cache, we just fill it lazily.
20311
20312         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
20313         need it any longer.
20314
20315 2006-10-11  Chris Toshok  <toshok@ximian.com>
20316
20317         * XplatUIX11.cs (SetWindowPos): we need to update both position as
20318         well as size after calling XMoveResizeWindow.  This keeps us from
20319         ignoring future SetWindowPos calls.  Fixes the disappearing
20320         DateTimePicker in the ToolBarDockExample from bug #72499.
20321
20322 2006-10-11  Chris Toshok  <toshok@ximian.com>
20323
20324         * TextBoxBase.cs: reorder things a bit when it comes to
20325         resizing-causing-recalculation.  we were recalculating the
20326         document when our position was changed, which shouldn't happen.
20327         We only care about size changes.  Clear up some more redundant
20328         recalculation calls while I'm at it.  This makes the toolbar dock
20329         example snappy when you're just dragging toolbars around (since it
20330         causes a relayout whenever you move one.)
20331
20332 2006-10-11  Chris Toshok  <toshok@ximian.com>
20333
20334         * ToolBarButton.cs (get_Rectangle): this only returns
20335         Rectangle.Empty if Visible == false, or Parent == null.
20336         Parent.Visible doesn't matter.
20337
20338 2006-10-10  Chris Toshok  <toshok@ximian.com>
20339
20340         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
20341         by .net 1.1, so switch to an internal method instead.
20342
20343 2006-10-10  Chris Toshok  <toshok@ximian.com>
20344
20345         * Control.cs (WM_PAINT): when a control is double buffered we draw
20346         initially to the ImageBuffer and then copy from there.  But when a
20347         parent control which has child controls is double buffered, the
20348         initial drawing doesn't encompass the entire ClientRectangle of
20349         the parent control, so we end up with uninitialized bits (this is
20350         easily seen by dragging the top toolbar in
20351         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
20352         manually set the ClipRectangle of the paint_event (only the one we
20353         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
20354         of the nastiness in bug #72499.
20355
20356         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
20357         which we use in Control.cs's WM_PAINT handling.
20358
20359 2006-10-10  Jackson Harper  <jackson@ximian.com>
20360
20361         * TextBoxBase.cs: Finish off the autoscrolling stuff.
20362
20363 2006-10-10  Chris Toshok  <toshok@ximian.com>
20364
20365         * Cursor.cs: Apply a slightly different patch to the one suggested
20366         in #79609.
20367
20368 2006-10-10  Jackson Harper  <jackson@ximian.com>
20369
20370         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
20371         not the parent form.
20372         * TextControl.cs: use difference in old line count vs new count to
20373         calculate how many lines were added, this takes into account soft
20374         line breaks properly.
20375
20376 2006-10-10  Chris Toshok  <toshok@ximian.com>
20377
20378         * LinkLabel.cs: don't call MeasureCharacterRanges against a
20379         rectangle located at 0,0 and the size of the text.  Use
20380         ClientRectangle instead.  This fixes rendering of non-left aligned
20381         link labels.
20382
20383 2006-10-10  Jackson Harper  <jackson@ximian.com>
20384
20385         * TextBoxBase.cs: When we set the selection start position the
20386         caret.
20387         * TextControl.cs: Need to update the caret when we decrement it to
20388         zero.
20389         - Make sure that the selection_visible flag gets reset to false if
20390         the selection isn't visible.  Before this you could get it set to
20391         visible by changing the selection start, then changing the end to
20392         equal the start.
20393
20394 2006-10-09  Jackson Harper  <jackson@ximian.com>
20395
20396         * TreeView.cs: Don't update scrollbars when we aren't visible.
20397         * TreeNodeCollection.cs: Only need to update scrollbars if being
20398         added to an expanded visible node or the root node.
20399
20400 2006-10-09  Chris Toshok  <toshok@ximian.com>
20401
20402         * XplatUIX11.cs (SendMessage): fix NRE.
20403
20404 2006-10-09  Jackson Harper  <jackson@ximian.com>
20405
20406         * TextBoxBase.cs: Implement horizontal autoscrolling.
20407         * TextControl.cs: Add a movement types that allows moving forward
20408         and backwards without wrapping.
20409
20410 2006-10-09  Mike Kestner  <mkestner@novell.com>
20411
20412         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
20413         with focus "expansion" of labels.  Fixes #79532 and then some.
20414         * ThemeWin32Classic.cs : add LineLimit to ListView label format
20415         when wrapping.
20416
20417 2006-10-09  Jackson Harper  <jackson@ximian.com>
20418
20419         * TextBoxBase.cs: Set the default max values to MaxValue since
20420         we use the scrollbar for autoscrolling and the default value is
20421         100.  If we don't do this the caret won't keep up with typing
20422         after about 18 characters.
20423         * TextControl.cs: Make sure the selection is offset by the
20424         viewport x.  This fixes selection when using auto scrolling.
20425
20426 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
20427         
20428         * Form.cs: The active control should be selected after the 
20429         OnLoad so that any child control initialization that affects
20430         the selection is done. Fixes #79406
20431
20432 2006-10-06  Chris Toshok  <toshok@ximian.com>
20433
20434         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
20435         to have no evil effects.
20436
20437         - Stop selecting StructureNotifyMask on non-toplevel windows.
20438
20439           The only way children should be resized is by using the SWF api,
20440           and we already send WM_WINDOWPOSCHANGED messages in those cases.
20441           Toplevel windows can be interacted with via the window manager,
20442           and so we keep the input mask there.
20443
20444           The other event StructureNotifyMask gives us (that we care
20445           about) is DestroyNotify.  The code is already structured such
20446           that it assumes we won't be getting a DestroyNotify event for
20447           the window we pass to XDestroyWindow (which is what
20448           StructureNotifyMask is supposed to guarantee.)  So, that code
20449           shouldn't be affected by this either.
20450
20451         - Stop selecting VisibilityChangeMask altogether.
20452
20453           We weren't doing anything with the resulting events anyway.
20454         
20455         This vastly reduces the number of X requests and events we see
20456         when resizing/laying out a large ui.
20457
20458 2006-10-06  Chris Toshok  <toshok@ximian.com>
20459
20460         * ScrollableControl.cs (DisplayRectangle): we need to take into
20461         account the DockPadding regardless of whether or not auto_scroll
20462         == true.  rework this slightly to this effect, and fix bug #79606,
20463         and part of #72499 (you can now see the drag handles and drag
20464         toolbars around).
20465
20466 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
20467
20468         * ListViewItem.cs: Collections of selected and checked items are now
20469         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
20470         we mark the collection "dirty".
20471         * ListView.cs: Marked collections readonly. Modified UpdateSelection
20472         to only clear SelectedItems when a new item is selected and MultiSelect
20473         is enabled. CheckedItems and SelectedItems now subscribe to Changed
20474         event of ListViewItemCollection, and mark its list dirty whenever
20475         that event is fire. This allows us to return selected/checked items 
20476         in the same order as they are in the Items collection. This matches
20477         the MS behavior.
20478
20479 2006-10-06  Chris Toshok  <toshok@ximian.com>
20480
20481         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
20482         right mouse clicks.  Fixes bug #79593.
20483
20484 2006-10-06  Chris Toshok  <toshok@ximian.com>
20485
20486         * Splitter.cs: doh, fix splitters that don't want to cancel the
20487         movement when you drag them.  Also, impose the limits on the
20488         values we send to the SplitterMovingEvent.  Fixes #79598.
20489
20490 2006-10-06  Jackson Harper  <jackson@ximian.com>
20491
20492         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
20493         since we use this for auto scrolling also.
20494
20495 2006-10-05  Chris Toshok  <toshok@ximian.com>
20496
20497         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
20498         beginning to think that most datagrid column types don't need this
20499         method.  Fixes bug #79392.
20500
20501 2006-10-05  Chris Toshok  <toshok@ximian.com>
20502
20503         * DataGrid.cs: move back to a more lazy scheme for creating the
20504         CurrencyManager, so we aren't updating it every time you set
20505         either DataSource or DataMember.  Also, don't call
20506         RecreateDataGridRows if the currency manager hasn't changed.
20507
20508 2006-10-05  Chris Toshok  <toshok@ximian.com>
20509
20510         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
20511         emitted, SelectedIndex should already be updated.  Fixes bug
20512         #78929.
20513
20514 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
20515
20516         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
20517           ToolStripTextBox.cs: Initial commit.
20518         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
20519
20520 2006-10-05  Jackson Harper  <jackson@ximian.com>
20521
20522         * TabControl.cs: We need to invalidate the tab control area when
20523         new ones are added (duh).
20524
20525 2006-10-03  Chris Toshok  <toshok@ximian.com>
20526
20527         * Form.cs (ProcessDialogKey): if the focused control is in this
20528         form and is a button, call its PerformClick method here.  Fixes
20529         #79534.
20530
20531 2006-10-04  Jackson Harper  <jackson@ximian.com>
20532
20533         * TabPage.cs: Ignore setting of Visible, and add an internal
20534         method for setting the controls visibility.  TabPage's Visible
20535         property is a little strange on MS, this seems to make us
20536         compatible, and fixes cases where people set all the tab pages to
20537         visible.
20538         * TabControl.cs: Use the new internal setting on tab pages
20539         visibility.
20540
20541 2006-10-03  Mike Kestner  <mkestner@novell.com>
20542
20543         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
20544
20545 2006-10-03  Mike Kestner  <mkestner@novell.com>
20546
20547         * ListView.cs : use is_visible instead of Visible to check if 
20548         scrollbars should be placed/sized.  Also some max_wrap_width
20549         love for LargeIcon view.  [Fixes #79533]
20550
20551 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
20552
20553         * TextControl.cs :
20554           Make set_TextAlign() do actually update the align. Fixed #78403.
20555
20556 2006-10-03  Chris Toshok  <toshok@ximian.com>
20557
20558         * DataGrid.cs: fix a crash when switching datasources if the
20559         vertical scrollbar is at someplace other than Value = 0.  Also,
20560         reduce the number of recalculation passes we do in SetDataSource
20561         from 2 to 1.
20562
20563 2006-10-03  Jackson Harper  <jackson@ximian.com>
20564
20565         * TextBoxBase.cs: Move the if value the same bail check up, we
20566         don't want to empty the document if it is already empty, this
20567         seems to severly mess up the caret.  TODO: I should probably fix
20568         the empty statement to update teh caret somehow.
20569
20570 2006-10-03  Chris Toshok  <toshok@ximian.com>
20571
20572         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
20573         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
20574         reflection, an internal row type, properties on said type, etc.)
20575         will work with our datagrid.  Fixes #79531.
20576
20577 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
20578
20579         * FileDialog.cs: Don't crash if a path is not accessible
20580           (System.UnauthorizedAccessException). Fixes #79569.
20581         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
20582           a ':' too. Return unknown icon for those paths/files.
20583
20584 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
20585
20586         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
20587         GetContainerControl returns null.
20588
20589 2006-10-02  Chris Toshok  <toshok@ximian.com>
20590
20591         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
20592         call to XGetWindowAttributes instead of "handle".  fixes an X
20593         error using notifyicon after the NotifyIconWindow to Form base
20594         class switch.
20595
20596 2006-10-02  Chris Toshok  <toshok@ximian.com>
20597
20598         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
20599         server grab and looping we need to do to get down to the most
20600         deeply nested child window.
20601         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
20602         QueryPointer again after the WarpPointer so we can generate a
20603         proper (fake) MotionNotify event to be enqueued in the destination
20604         window's queue.
20605         (GetCursorPos): call QueryPointer.
20606
20607         Fixes #79556.
20608
20609 2006-10-02  Jackson Harper  <jackson@ximian.com>
20610
20611         * NotifyIcon.cs: Derive the notify icon from a form, so things
20612         like FindForm work on it.
20613         - Swallow the WM_CONTEXTMENU message, since that is generated on
20614         mouse down, and context menu is a mouse up kinda guy.  I believe
20615         the correct fix here is probably to make the notify icon entirely
20616         NC area, but this seems to work fine for anyone not manipulating
20617         WndProc.
20618
20619 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
20620
20621         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
20622           ToolStripItemCollection.cs, ToolStripLabel.cs,
20623           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
20624           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
20625           Initial implementation.
20626         * TextRenderer.cs: Provide padding to MeasureText.
20627
20628 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
20629
20630         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
20631         of ButtonBaseAccessibleObject. Fix bug #79552.
20632
20633 2006-10-02  Jackson Harper  <jackson@ximian.com>
20634
20635         * MdiWindowManager.cs: When maximizing use the containers client
20636         rect, not it's bounds, so nc area is accounted correctly.
20637         - Use the parent form's size for the menu position, since the
20638         client isn't always the full form size.
20639
20640 2006-10-01  Chris Toshok  <toshok@ximian.com>
20641
20642         * ScrollableControl.cs: make sure neither right_edge or
20643         bottom_edge are < 0, since they're used as LargeChange for the
20644         horiz/vert scrollbars respectively.  Fixes #79539.
20645
20646 2006-10-01  Chris Toshok  <toshok@ximian.com>
20647
20648         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
20649         the xplatuix11 code can cause us to destroy/recreate our handle.
20650
20651         * XplatUIX11.cs
20652         (SystrayAdd):
20653         - this code can be invoked many times for the same Hwnd.  Make
20654           sure we only destroy the client window once (the first time this
20655           method is called).  This fixes bug #79544.
20656         - Remove the call to the improperly bound XSync.  why we had two
20657           bindings to this, I will never know, but this call resulted in
20658           events being discarded from the queue(!).
20659         - correct a misunderstanding of _XEMBED_INFO - the second atom is
20660           not our current state but the state we wish to be in.  So, 0 if
20661           we don't want to be mapped.  Change it to 1.
20662         (SystrayRemove): The XEMBED spec makes mention of the fact that
20663         gtk doesn't support the reparent of client windows away from the
20664         embedder.  Looking at gtksocket-x11.c seems to agree with this.
20665         The only avenue we have for removing systray icons is to destroy
20666         them.  We don't want the handle to go away for good, though, so
20667         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
20668         #79545.
20669         
20670 2006-10-01  Chris Toshok  <toshok@ximian.com>
20671
20672         * Form.cs (WndProc): inline the native_enabled variable usage into
20673         the cases in which it's used.  Fixes #79536.
20674
20675 2006-09-29  Mike Kestner  <mkestner@novell.com>
20676
20677         * ListView.cs : toggle the selection state for ctrl clicks in 
20678         multiselect mode. [Fixes #79417]
20679
20680 2006-09-29  Mike Kestner  <mkestner@novell.com>
20681
20682         * ListView.cs : kill CanMultiSelect and refactor the selection
20683         code to support multiselection in the absence of mod keys. Steal
20684         arrow/home/end keys by overriding InternalPreProcessMessage to
20685         restore regressed keynav behavior.
20686         [Fixes #79416]
20687
20688 2006-09-29  Jackson Harper  <jackson@ximian.com>
20689
20690         * MdiClient.cs: Repaint the titlebars when the active window is
20691         changed.
20692
20693 2006-09-29  Chris Toshok  <toshok@ximian.com>
20694
20695         * Application.cs: when entering a runloop with a modal, make sure
20696         the hwnd is enabled.  Fixes #79480.
20697
20698 2006-09-29  Chris Toshok  <toshok@ximian.com>
20699
20700         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
20701         when ListManager.CanAddRows == false, bump us back one.
20702
20703         * DataGridColumnStyle.cs (ParentReadOnly): remove the
20704         listmanager.CanAddRows check.  This makes ArrayLists uneditable
20705         using a datagrid, which is not right.
20706         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
20707         is an IEditable, but call property_descriptor.SetValue regardless.
20708         fixes #79435.
20709
20710 2006-09-29  Chris Toshok  <toshok@ximian.com>
20711
20712         * DataGridBoolColumn.cs: we need to test equality in the face of
20713         possible null values (as is the case with the default NullValue).
20714         This patch keeps us from crashing in that case.
20715
20716 2006-09-29  Jackson Harper  <jackson@ximian.com>
20717
20718         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
20719         here, since it will get called for every node collection in the
20720         tree. This is now done in the treeview once the sorting is
20721         finished.
20722         * TreeView.cs: Recalculate the visible order, and update the
20723         scrollbars after sorting, set the top nope to the root so that the
20724         recalc actually works.
20725
20726 2006-09-29  Chris Toshok  <toshok@ximian.com>
20727
20728         * LinkLabel.cs: more handling of the default link collection in
20729         the face of LinkArea manipulation.  The default link collection
20730         contains 1 element (start=0,length=-1).  If the user sets LinkArea
20731         to anything and the links collection is the default, clear it.
20732         Then only add the link if its nonempty.  Fixes #79518.
20733
20734 2006-09-29  Chris Toshok  <toshok@ximian.com>
20735
20736         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
20737         piece correctly when we hit a '\n'.  Fixes #79517.
20738
20739 2006-09-29  Chris Toshok  <toshok@ximian.com>
20740
20741         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
20742         change the binding of gdk_init_check to take two IntPtr's, and
20743         pass IntPtr.Zero for both of them.  Fixes #79520.
20744
20745 2006-09-29  Mike Kestner  <mkestner@novell.com>
20746
20747         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
20748         [Fixes #78779]
20749
20750 2006-09-28  Jackson Harper  <jackson@ximian.com>
20751
20752         * XplatUIX11.cs: When translating NC messages make sure we go from
20753         whole window to screen, not client window to screen.
20754         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
20755         method doesn't exist
20756         - Skip over controls that aren't forms when arranging.
20757
20758 2006-09-28  Jackson Harper  <jackson@ximian.com>
20759
20760         * XplatUIWin32.cs: Clip the rect to the parent window.
20761         * XplatUIStructs.cs: Add clipping modes struct.
20762         * InternalWindowManager.cs: New private method that factors title
20763         bar heights in when calculating the pos of an NC mouse message.
20764         - Use SendMessage to force a paint when the form's size is changed
20765         instead of painting the decorations immediately.
20766         - Don't let the NC button click messages get to DefWndProc,
20767         because they will attempt to handle windowing themself, and this
20768         messes up z-order (it will put them in front of the scrollbars).
20769         * XplatUIX11.cs: Make sure that we don't reset window managers if
20770         we already have one (ie the window is an MDI window).
20771
20772 2006-09-28  Chris Toshok  <toshok@ximian.com>
20773
20774         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
20775         menu code really needs going over.
20776
20777 2006-09-27  Chris Toshok  <toshok@ximian.com>
20778
20779         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
20780         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
20781         window is maximizable.  So, we need to make sure that even if we
20782         clear the border/wm frame of those functions, they're still
20783         available (basically, we remove the decoration without removing
20784         the function).  Half the fix for #79338.
20785
20786 2006-09-27  Chris Toshok  <toshok@ximian.com>
20787
20788         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
20789         Fixes bug #79515.
20790
20791 2006-09-27  Chris Toshok  <toshok@ximian.com>
20792
20793         * Splitter.cs: reorder things a bit so that we don't actually
20794         draw/move the splitter until after calling OnSplitterMoving.  This
20795         lets users cancel/disallow the movement by explicitly setting
20796         event.SplitX/SplitY.  Fixes #79372.
20797
20798 2006-09-27  Jackson Harper  <jackson@ximian.com>
20799
20800         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
20801         because it is most likely on a window being destroyed, and that
20802         will give us an X11 error.
20803
20804 2006-09-27  Chris Toshok  <toshok@ximian.com>
20805
20806         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
20807         the dropdown button now toggles between showing and hiding the
20808         dropdown.  Also, get rid of dropdown_form_showing and just use
20809         dropdown_form.Visible.  We still don't do a grab, but I'll leave
20810         that part to someone who has handled Capture-fu before.
20811
20812 2006-09-27  Chris Toshok  <toshok@ximian.com>
20813
20814         * DataGrid.cs: return false if alt isn't pressed when '0' is
20815         pressed.  this keeps the '0' key from being swallowed, and fixes
20816         bug #79350.
20817
20818 2006-09-27  Chris Toshok  <toshok@ximian.com>
20819
20820         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
20821         Calling Refresh (in response to a scrollbar event) screws up the
20822         scrollbar painting.  Fixes bug #78923.
20823
20824 2006-09-27  Chris Toshok  <toshok@ximian.com>
20825
20826         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
20827         then insert into hashtable" blocks threadsafe.
20828
20829 2006-09-27  Chris Toshok  <toshok@ximian.com>
20830
20831         * MessageBox.cs (CreateParams): the styles should be |'ed with our
20832         baseclass's, since otherwise the
20833         ControlBox/MinimizeBox/MaximizeBox assignments above have no
20834         effect.  This gets the close button back in messageboxes.
20835
20836 2006-09-27  Chris Toshok  <toshok@ximian.com>
20837
20838         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
20839         flag, not just != 0.  this makes flags that are actually multiple
20840         bits (like WS_CAPTION) work.  fixes bug #79508.
20841
20842 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
20843
20844         * PageSetupDialog.cs: add support for getting and settings the 
20845         paper size, source and orientation.
20846
20847 2006-09-26  Chris Toshok  <toshok@ximian.com>
20848
20849         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
20850         and caption == "", we need to remove the resize handles as well as
20851         the title bar.
20852
20853         * Control.cs (set_Text): turns out that setting Text on a form
20854         should change the WM styles on the window, since if ControlBox ==
20855         false, the only way to get a window border is to have a non-""
20856         Text property.  check winforms/forms/text.cs for an example.  so,
20857         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
20858         update both window styles and title.  This fixes a lot of dialogs
20859         (including the preferences dialog in MonoCalendar.)
20860
20861 2006-09-26  Chris Toshok  <toshok@ximian.com>
20862
20863         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
20864         control isn't a Form), call Win32ShowWindow to hide the window,
20865         but don't update the control Visible property.  When we reparent
20866         back to a parent control, call SetVisible in order for the
20867         window's visibility to be reinstated.
20868
20869         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
20870         the FosterParent.
20871
20872         * Control.cs (ControlCollection.Remove): remove that value.Hide()
20873         call for good, since it breaks MonoCalendar (and other things I'm
20874         sure.) Also, set all_controls to null *after* the owner calls,
20875         which end up regenerating it.
20876         (ChangeParent): allow new_parent to be == null, passing
20877         IntPtr.Zero down to XplatUI.
20878
20879         this fixes #79294 the right way.
20880
20881 2006-09-26  Mike Kestner  <mkestner@novell.com>
20882
20883         * GridEntry.cs : internal SetParent method.
20884         * PropertyGrid.cs : attach to property changed on the proper
20885         target if we have a hierarchical grid with subobjects. Setup
20886         GridItem.Parent for hierarchical items.
20887         * PropertyGridView.cs : Set value on the correct target for
20888         hierarchical grids. [Fixes #78903]
20889
20890 2006-09-26  Chris Toshok  <toshok@ximian.com>
20891
20892         * Control.cs (ChildNeedsRecreating): this should return true if
20893         either we're being recreated and the child is in our list, or our
20894         parent is waiting for our recreation.
20895
20896 2006-09-26  Chris Toshok  <toshok@ximian.com>
20897
20898         * Control.cs (ControlCollection.Remove): reinstate the
20899         value.Hide() call as suggested in bug #79294.
20900
20901 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
20902
20903         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
20904         coordinates (versus a relative move).
20905
20906 2006-09-26  Chris Toshok  <toshok@ximian.com>
20907
20908         * Control.cs: rework child recreation a little bit.  It turns out
20909         that we race between the DestroyNotify the WM_DESTROY message.  If
20910         the parent gets its DestroyNotify before the child gets the
20911         WM_DESTROY message, the child ends up not recreating (since the
20912         parent finishes its recreation on DestroyNotify, and the child
20913         checks ParentIsRecreating.)
20914
20915         So, instead we store off a list of all the child controls which
20916         need to be recreated when the parent control starts to recreate
20917         itself.  Then, when child controls get their WM_DESTROY message we
20918         check to see if they're in the parent's pending recreation list,
20919         and if so, we recreate.  This removes all dependency on ordering
20920         from the code and fixes the initial MonoCalendar upgrade dialog.
20921         
20922 2006-09-26  Jackson Harper  <jackson@ximian.com>
20923
20924         * TextControl.cs: Use the Line to get the length of the line,
20925         since soft line breaks can change the end line.
20926
20927 2006-09-26  Chris Toshok  <toshok@ximian.com>
20928
20929         * Control.cs (ControlCollection.AddImplicit): don't add the
20930         control again if it's already in one of our lists.  This keeps us
20931         from adding controls over and over again for comboboxes when their
20932         handle gets recreated (as the combobox adds implicit controls in
20933         OnHandleCreated).  Fixes the X11 errors in bug #79480.
20934
20935 2006-09-26  Jackson Harper  <jackson@ximian.com>
20936
20937         * TextControl.cs: When deleting characters make sure that any
20938         orphaned zero lengthed tags get deleted.
20939         - Fix ToString for zero lengthed tags.
20940
20941 2006-09-25  Jackson Harper  <jackson@ximian.com>
20942
20943         * TextControl.cs: When getting a tag at the location there can be
20944         multiple tags at the same spot, these are 0-lengthed tags that
20945         appear when extra formatting has been stuck in a location.  We
20946         need to pull out the last of these 0 lengthed tags.
20947
20948 2006-09-25  Jackson Harper  <jackson@ximian.com>
20949
20950         * TextControl.cs: Fix print out in debug method.
20951         * TextBoxBase.cs: When text is set bail if we are setting to the
20952         previous value.
20953         
20954 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
20955
20956         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
20957           It is now possible to change the selected index in a FontXXXListBox
20958           with the up and down arrow keys from the FontXXXTextBoxes.
20959           Also, send the FontXXXTextBox mouse wheel event to the corresponding
20960           FontXXXListBoxes to match ms.
20961
20962 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
20963
20964         * SystemInformation.cs: Return a clone of the theme's MenuFont because
20965         anyone can dispose it, anytime. All other properties returns enums, 
20966         structs or basic types so they don't need such tricks.
20967
20968 2006-09-22  Jackson Harper  <jackson@ximian.com>
20969
20970         * XplatUI.cs:
20971         * XplatUIWin32.cs:
20972         * Clipboard.cs:
20973         * DataFormats.cs:
20974         * XplatUIOSX.cs:
20975         * XplatUIDriver.cs: Update interface to add a primary selection
20976         flag, so the driver can use the primary selection buffer if
20977         needed.
20978         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
20979
20980         * RichTextBox.cs: We need to supply the data object to paste now
20981         (so we can choose to supply CLIPBOARD or PRIMARY).
20982         * TextBoxBase.cs: Supply data object to paste (see above).
20983         - Middle click uses the primary selection data object.
20984         
20985 2006-09-21  Chris Toshok  <toshok@ximian.com>
20986
20987         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
20988         of SetWMStyles.  It's still a rat's nest and is largely
20989         order-dependent which I dislike immensely.  This also fixes the X
20990         button disappearing from toplevel forms.
20991
20992 2006-09-21  Mike Kestner <mkestner@novell.com>
20993
20994         * ListBox.cs: move Jordi's click/dblclick raising code to the
20995         mouse up handler.
20996
20997 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
20998
20999         * ListBox.cs: Fixes 79450
21000
21001 2006-09-21  Mike Kestner <mkestner@novell.com>
21002
21003         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
21004         to deal with people updating the TreeNodeCollection after the tree
21005         is disposed.  "Fixes" 79330.
21006
21007 2006-09-20  Jackson Harper <jackson@ximian.com>
21008
21009         * TextControl.cs: Push the cursor record onto the undo stack
21010         before the delete action. This fixes 78651.
21011
21012 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
21013
21014         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
21015         CreateParams. Fixes 79329.
21016
21017 2006-09-19  Chris Toshok  <toshok@ximian.com>
21018
21019         * XplatUIX11.cs: a couple of blanket code massage passes to clean
21020         things up a bit.  First, get rid of the NetAtoms array (and the NA
21021         enum), and just embed the atoms as static fields.  Also, add a
21022         couple of functions (StyleSet and ExStyleSet) to clean up all the
21023         bitmask testing of styles.
21024
21025         * X11Structs.cs: remove the NA enum, not needed anymore.
21026         
21027 2006-09-19  Chris Toshok  <toshok@ximian.com>
21028
21029         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
21030         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
21031         added cleanup to get MessageBox titles appearing again, which were
21032         broken by my earlier fix for caption-less/ControlBox-less windows.
21033
21034 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
21035
21036         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
21037           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
21038           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
21039           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
21040           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
21041           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
21042           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
21043           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
21044           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
21045           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
21046           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
21047             Inital import.
21048         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
21049           ToolStripButton.cs: Stubs needed for above.
21050         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
21051
21052 2006-09-15  Chris Toshok  <toshok@ximian.com>
21053
21054         * XplatUIX11.cs:
21055         - make the MessageQueues hashtable Synchronized.
21056         
21057         - SendMessage: if the Hwnd is owned by a different thread, use the
21058         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
21059         thread.  Fixes bug #79201.
21060
21061 2006-09-15  Chris Toshok  <toshok@ximian.com>
21062
21063         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
21064         ControlBox == false, we disallow maximize/minimize/close.  If the
21065         form Caption is "" we also disallow move (and get rid of the Title
21066         decoration).  Unfortunately, regardless of how things are set,
21067         we're stuck with the Title and WM menu.
21068
21069 2006-09-15  Chris Toshok  <toshok@ximian.com>
21070
21071         * Application.cs: add locking around the static message_filters
21072         ArrayList, part of #79196.
21073
21074 2006-09-15  Chris Toshok  <toshok@ximian.com>
21075
21076         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
21077         Form.ControlBox == false, the window has no titlebar nor resize
21078         handles.  fixes bug #79368.
21079
21080 2006-09-15  Chris Toshok  <toshok@ximian.com>
21081
21082         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
21083         >= 0.  Fixes bug #79370.
21084
21085 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
21086         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
21087         * Control.cs:
21088             Add properties: LayoutEngine, Margin, DefaultMargin.
21089             Add method: GetPreferredSize.
21090             Move layout logic from PerformLayout to layout engines. 
21091
21092 2006-09-13  Chris Toshok  <toshok@ximian.com>
21093
21094         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
21095         fix for #79326 broke #78718, so this change addresses that.
21096
21097         - in SendWMDestroyMessages remove the call to
21098         CleanupCachedWindows, since we might be recreating the control and
21099         need to maintain the references to right Hwnd handles.  Also, set
21100         the zombie flag to true for each of the children in the hierarchy
21101         instead of calling hwnd.Dispose.  This will cause GetMessage to
21102         ignore all events for the window except for DestroyNotify.
21103
21104         - In GetMessage, ignore messages except for DestroyNotify for
21105         zombie hwnds.
21106         
21107         * Control.cs: revert the is_recreating fix from the last
21108         ChangeLog.  It's definitely "right", but it breaks switching from
21109         an MDI form to a non-MDI form.  Will need to revisit that.
21110
21111         * Hwnd.cs: add a zombie flag, which means "the
21112         client_window/whole_window handles are invalid, but we're waiting
21113         for the DestroyNotify event to come in for them".  Set the flag to
21114         false explicitly if setting WholeWindow/ClientWindow, and also
21115         when Disposing.
21116         
21117 2006-09-13  Chris Toshok  <toshok@ximian.com>
21118
21119         * XplatUIX11.cs: rework window destruction slightly.
21120
21121         - when destroying the windows associated with a control, we don't
21122         need 2 separate XDestroyWindow calls.  Just the one for the
21123         whole_window (or for client_window if whole_window is somehow
21124         IntPtr.Zero -- can this happen?) is enough.
21125
21126         - reworked SendWMDestroyMessages slightly, so we always dispose
21127         the child control hwnd's after sending the messages.
21128         
21129         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
21130         the two places it was used (one was even using hwnd.Handle and the
21131         other hwnd.client_window.  ugh), adding another call in
21132         SendWMDestroyMessages.  We need this new call because now the
21133         DestroyNotify events in the queue will be ignored for the child
21134         controls (as their hwnd's were disposed, and the window id's
21135         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
21136
21137         - this fixes bug #79326.
21138
21139 2006-09-13  Chris Toshok  <toshok@ximian.com>
21140
21141         * Control.cs: don't always set is_recreating to false at the end
21142         of RecreateHandle, since sometimes we're not done (and won't be
21143         until WndProc handles the WM_DESTROY message).  Also, set
21144         is_recreating to false in the WM_DESTROY handling code.  Part of
21145         the fix for bug #79326.
21146
21147 2006-09-13  Miguel de Icaza  <miguel@novell.com>
21148
21149         * X11DesktopColors.cs: Start the droppage of debugging messages.
21150
21151         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
21152
21153 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
21154
21155         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
21156
21157 2006-09-12  Chris Toshok  <toshok@ximian.com>
21158
21159         * DataGrid.cs (get_ListManager): if the list_manager is null, try
21160         to create it using SetDataSource.  Fixes bug #79151.
21161
21162 2006-09-11  Chris Toshok  <toshok@ximian.com>
21163
21164         * XEventQueue.cs: add a DispatchIdle property.
21165
21166         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
21167         either the queue is null, or the queue has DispatchIdle set to
21168         true.
21169         (DoEvents): set queue.DispatchIdle to false around the
21170         peek/translate/dispatch message loop in this method.  This keeps
21171         Application.Doevents from emitting idle events.  Part of the fix
21172         for #78823.
21173
21174 2006-09-11  Chris Toshok  <toshok@ximian.com>
21175
21176         * DataGrid.cs (set_DataSource): make this work for both the
21177         winforms/datagrid test and ReportBuilder.  It seems as though when
21178         we've created a ListManager (or maybe it's if we have a
21179         BindingContext?), when we set the DataSource it clears the
21180         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
21181         #79333.
21182
21183 2006-09-11  Chris Toshok  <toshok@ximian.com>
21184
21185         * XplatUIX11.cs: deal with queue being null, which happens in all
21186         the Clipboard functions.  Fixes one of the two problems mentioned
21187         in #78612.
21188
21189 2006-09-11  Chris Toshok  <toshok@ximian.com>
21190
21191         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
21192         button on various spots (including outside the menu) works closer
21193         to MS, and doesn't crash.  Fixes #79343.
21194
21195 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
21196
21197         * ListView.cs: Do not initialize item_sorter in init. To match MS,
21198         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
21199         and the internal comparer is set. When a new ListViewItemSorter is set,
21200         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
21201         was specified. No further processing is necessary if SortOrder is set
21202         to it's current value. If Sorting is modified to None, and View is
21203         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
21204         (either custom or our internal ItemComparer) to null, on 1.0 profile
21205         only set item_sorter to null if its our internal IComparer. If Sorting
21206         is modified to Ascending or Descending, then use our internal IComparer
21207         if none is set, and if the current IComparer is our internal one then:
21208         on 2.0 profile always replace it with one for new Sorting, and on 1.0
21209         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
21210         Enum.IsDefined to verify whether a valid View value is specified in
21211         its setter. Automatically sort listview items when listview is
21212         created. In Sort, do nothing if ListView is not yet created, or if
21213         no item_sorter is set (no Sorting was set, Sorting was explicitly set
21214         to None or ListViewItemSorter was set to null). Added Sort overload
21215         taking a bool to indicate whether the ListView should be redrawn when
21216         items are sorted (we use this in ListViewItemCollection to avoid double
21217         redraws). Modified our internal IComparer to take the sort order into
21218         account. In Add and AddRange methods of ListViewItemCollection, also
21219         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
21220         view), but use overload with noredraw option to avoid double redraw.
21221         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
21222         true when View is Tile, and do the same when attempting to set View to
21223         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
21224         for selected/checked indices, as it involves overhead when sorting is
21225         done while these collections are not used all that often. Instead
21226         we'll build the indices on demand. Modified IList implementation of
21227         CheckedIndexCollection to use public methods if object is int.
21228         Modified CheckedListViewItemCollection to hide checked items if
21229         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
21230         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
21231         IList implementation in SelectedIndexCollection to use public methods
21232         if object is int. Modified SelectedListViewItemCollection to hide
21233         selected items if listview is not yet created.
21234         * ListViewItem.cs: CheckedIndices list no longer needs to be
21235         maintained separately (see ListView changes). Also clone font, fixes
21236         test failure.
21237
21238 2006-09-11  Mike Kestner  <mkestner@novell.com>
21239
21240         * ComboBox.cs: if we are updating the contents of the currently
21241         selected index, refresh the control or the textbox selection.
21242         [Fixes #79066]
21243
21244 2006-09-11  Mike Kestner  <mkestner@novell.com>
21245
21246         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
21247         the 'specified' logic has been moved there.  This seems like a bug 
21248         in Control.cs, since our current SetBoundsCore completely ignores 
21249         the specified parameter.  Peter's commit seems to indicate that is 
21250         the way the MS control implementation works.  [Fixes #79325]
21251
21252 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
21253
21254         * XplatUI.cs: Set default_class_name to be composed
21255         of current domain id. This allows MWF to be loaded in multiple
21256         domains on Win32.
21257
21258 2006-09-09  Miguel de Icaza  <miguel@novell.com>
21259
21260         * X11Keyboard.cs: If we are unable to obtain the input method, do
21261         not call CreateXic to create the input context.   Should fix
21262         #78944/79276.
21263
21264 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
21265
21266         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
21267           Simplified gnome support by adding more pinvokes to get the
21268           icon for a file or mime type.
21269
21270 2006-09-08  Jackson Harper  <jackson@ximian.com>
21271
21272         * MenuAPI.cs: Deslect popup context menu items before closing the
21273         window, so that you don't see the previously selected item
21274         selected when you reopen the menu.
21275         * TextControl.cs: Update the cursor position even if we don't have
21276         focus.  This fixes typing in things like the ComboBox.  I'm not
21277         totally sure we should always set the visibility if we don't have
21278         focus, but couldn't find any corner cases where the cursor showed
21279         up when it shouldn't.
21280
21281 2006-09-08  Chris Toshok  <toshok@ximian.com>
21282
21283         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
21284         our arrays are length 256.  & 0xff before indexing.  Fixes the
21285         crash in bug #78077.
21286         
21287 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21288
21289         * ThemeWin32Classic.cs: 
21290         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
21291         is true. Handle that check box too.
21292
21293 2006-09-07  Chris Toshok  <toshok@ximian.com>
21294
21295         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
21296         79244.
21297
21298 2006-09-07  Chris Toshok  <toshok@ximian.com>
21299
21300         * Control.cs: in set_BackColor only do the work if
21301         background_color != value.
21302
21303         * XplatUIX11.cs: move the clearing of invalid areas (both client
21304         and nc) to the same block of code where we set (nc_)expose_pending
21305         to false.  That is, move it from PaintEventEnd to PaintEventStart,
21306         so things that cause invalidates from within OnPaint will trigger
21307         another call to OnPaint.  Fixes bug #79262.
21308
21309 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
21310
21311         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
21312         * FileDialog.cs: Fix typo
21313
21314 2006-09-07  Jackson Harper  <jackson@ximian.com>
21315
21316         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
21317         for tab pages if they have any.
21318
21319 2006-09-06  Mike Kestner  <mkestner@novell.com>
21320
21321         * Splitter.cs: use the "current" rect when finishing drag handle
21322         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
21323
21324 2006-09-06  Mike Kestner  <mkestner@novell.com>
21325
21326         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
21327         support offset splitters. [Fixes #79298]
21328
21329 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
21330
21331         * Mime.cs: Fixed a bug that could override the global mime type
21332           result.
21333
21334 2006-09-05  Jackson Harper  <jackson@ximian.com>
21335
21336         * TabControl.cs: Better calculation method for setting the slider
21337         pos. Prevents crashes on really wide tabs.
21338         - Draw Image on tab pages if an image list is used.
21339
21340 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21341
21342         * MonthCalendar.cs: When Font changes, the Size should be
21343         updated to fit the new font's space requirements.
21344
21345 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
21346
21347         * ListBox.cs: If the items are cleared with Items.Clear set
21348           top_index to 0.
21349
21350 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21351
21352         * MonthCalendar.cs: Handle arrow keys as input keys. Also
21353         fire DateChanged event instead of DateSelected event when
21354         the date was changed by keyboard interaction.
21355
21356 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21357
21358         * DateTimePicker.cs: Handle DateChanged for the associated
21359         month_calendar control, and set month_calendar.Font from 
21360         OnFontChanged method, as well as resize the height of the
21361         control when needed. Make PreferredHeight proportional.
21362
21363 2006-09-01  Chris Toshok  <toshok@ximian.com>
21364
21365         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
21366         properties.
21367
21368         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
21369
21370 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
21371
21372         * FileDialog.cs: Set ClientSize instead of window size, to allow space
21373           for decorations (Fixes #79219)
21374
21375 2006-09-01  Mike Kestner  <mkestner@novell.com>
21376
21377         * ComboBox.cs: first stab at sorting plus some selection handling
21378         fixes to bring us more in line with MS behavior.  Also switches back
21379         to index based selection.  Alternative patches for index-based 
21380         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
21381         and latency@gmx.de on bug 78848.  I assume they were similar to this
21382         code I've had simmering in my tree forever.
21383         [Fixes #78848]
21384
21385 2006-09-01  Chris Toshok  <toshok@ximian.com>
21386
21387         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
21388         when setting list position guard against ending up with a -1 index
21389         (the other part of the fix for #78812).  Should probably make sure
21390         we don't need the analogous fix in the ItemDeleted case.
21391
21392         * DataGrid.cs:
21393         - in SetDataSource, work around the fact that the way
21394         OnBindingContextChanged is invoked will cause us to re-enter this
21395         method.  I'll remove the hack once I investigate
21396         OnBindingContextChanged.
21397
21398         - fix the logic in set_DataSource and set_DataMember (basically
21399         what to do if the other of the two is null.)
21400         
21401         - in OnListManagerItemChanged, we need to take into account the
21402         edit row when deciding whether or not to call RecreateDataGridRows
21403         (part of the fix for #78812).
21404
21405 2006-09-01  Jackson Harper  <jackson@ximian.com>
21406
21407         * Splitter.cs: Don't do anything if there is no control to affect
21408         (prevents us from crashing in weird tet cases).
21409         * TreeView.cs: Bounding box for the mouse movement reverting
21410         focus/selection back to previously selected node.  This matches
21411         MS, and makes the tree a lot more useable.
21412         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
21413         use clipping so they are not drawn.  This fixes when the control
21414         is set to have a transparent background, or if it was over an
21415         image.
21416
21417 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
21418
21419         * MimeIcon.cs: Improved handling for reading default icons when
21420           using gnome (2.16 made it necessary). Check and read svg icons
21421           first, then 48x48 and then 32x32 icons.
21422
21423 2006-08-31  Chris Toshok  <toshok@ximian.com>
21424
21425         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
21426         visible.
21427
21428         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
21429         ProcessKeyPreview.  Fixes part of #77806.
21430
21431         * DataGrid.cs: big patch.
21432
21433         - revert the queueing up of DataSource/DataMember if inside
21434         BeginInit/EndInit calls.  That's not the way the datagrid achieves
21435         its delayed databinding.  Instead, call SetDataSource in
21436         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
21437         #78811.
21438
21439         - Also, it wasn't mentioned in #78811, but the test case exhibits
21440         behavior that was lacking in our datagrid implementation - Columns
21441         that have mapping names that don't exist in the datasource's
21442         properties aren't shown.  Yuck.  To fix this I added the bound
21443         field to the column style, and basically any calculation to figure
21444         out anything about columns uses a loop to find the bound columns.
21445         still need to investigate if I can cache an array of the bound
21446         columns or if the indices must be the same.
21447
21448         - When setting CurrentCell, we no longer abort if the cell being
21449         edited was in the add row.  This fixes the other part of #77806.
21450
21451         - The new code also fixes #78807.
21452         
21453         * ThemeWin32Classic.cs: perpetrate the same disgusting
21454         column.bound field hack, and only render bound fields.
21455
21456 2006-08-31  Chris Toshok  <toshok@ximian.com>
21457
21458         * DataGridColumnStyle.cs: add bound field.  this field is true if
21459         the datasource has a property corresponding to the mapping name.
21460
21461         * DataGridTableStyle.cs: set the bound field on the column styles
21462         depending on whether or not we have a column for that property.
21463
21464 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
21465
21466         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
21467           splitter control (fixes #79228)
21468
21469 2006-08-31  Chris Toshok  <toshok@ximian.com>
21470
21471         * DataGridColumnStyle.cs: we need to delay the assignment of
21472         property descriptor until the last possible moment due to the lazy
21473         databinding stuff in the datagrid.  Also, fix the exceptions
21474         thrown by CheckValidDataSource to match MS.
21475
21476 2006-08-31  Jackson Harper  <jackson@ximian.com>
21477
21478         * Form.cs: When activated select the active control, if there is
21479         no active control, we select the first control.
21480         * XplatUIX11.cs: If there is no focus control when we get a
21481         FocusIn event, find the toplevel form and activate it.  This
21482         occurs when you popup a window, it becomes the focus window, then
21483         you close that window, giving focus back to the main window.
21484
21485 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21486
21487         * MonthCalendar.cs: 
21488         * ThemeWin32Classic.cs: Cache Font in bold style, as well
21489         as StringFormat with Center alignments in MonthCalendar,
21490         instead of creating new ones when drawing the control. 
21491         Also, draw the month name in bold style.
21492
21493 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
21494
21495         * Control.cs:
21496           - PerformLayout(): It would seem MS performs the fill even if the 
21497             control is not visible (part of #79218 fix)
21498           - ResetBackColor(): Use the setter to reset the color, to allow
21499             overriders to catch the change.
21500         * Form.cs:
21501           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
21502           - CreateHandle(): dito (part of $79218 fix)
21503           - Don't set an icon if we have a dialog
21504         * ScrollableControl.cs:
21505           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
21506           - ScrollIntoView(): No need to scroll if control is already visible
21507             (resolves fixme and fixes #79218)
21508
21509 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21510
21511         * MonthCalendar.cs: Change proportions in SingleMonthSize
21512         to match the aspect of the original control.
21513
21514 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
21515
21516         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
21517           get updated when they get maximized.
21518
21519 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
21520
21521         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
21522
21523 2006-08-29  Chris Toshok  <toshok@ximian.com>
21524
21525         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
21526
21527 2006-08-29  Jackson Harper  <jackson@ximian.com>
21528
21529         * TreeView.cs: Need to track selected node and highlighted node,
21530         they aren't always the same thing, when the mouse is down on a
21531         node it is hilighted, but not selected yet.
21532         - Do the HideSelection stuff right
21533         - Need to focus on rbutton mouse down. And redraw selection when
21534         right click is mouse upped.
21535
21536 2006-08-29  Mike Kestner  <mkestner@novell.com>
21537
21538         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
21539         when SubItems.Count < Columns.Count.  [Fixes #79167]
21540
21541 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
21542
21543         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
21544
21545 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
21546
21547         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
21548           from X. Only send based on ConfigureNotify if we don't have the
21549           correct location in hwnd (if the window manager moved us)
21550
21551 2006-08-28  Mike Kestner  <mkestner@novell.com>
21552
21553         * ListView.cs: remove a TODO. 
21554         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
21555         [Fixes ListView part of #79166]
21556
21557 2006-08-28  Mike Kestner  <mkestner@novell.com>
21558
21559         * ListView.cs: move wheel handler to parent since it is focused
21560         instead of the item_control now.  [Fixes #79177]
21561
21562 2006-08-28  Mike Kestner  <mkestner@novell.com>
21563
21564         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
21565         when the control is focused. [Fixes #79171]
21566
21567 2006-08-28  Mike Kestner  <mkestner@novell.com>
21568
21569         * ListView.cs: size the item and header controls for empty and
21570         unscrollable views.
21571         * ThemeWin32Classic.cs: draw disabled backgrounds.
21572         [Fixes #79187]
21573
21574 2006-08-28  Chris Toshok  <toshok@ximian.com>
21575
21576         * Form.cs: remove unused "active_form" static field.
21577
21578         * Hwnd.cs: lock around accesses to static windows collection.
21579
21580         * Application.cs: lock threads in Exit ().
21581
21582 2006-08-28  Chris Toshok  <toshok@ximian.com>
21583
21584         * NativeWindow.cs: lock around accesses to window_collection.
21585         
21586 2006-08-28  Chris Toshok  <toshok@ximian.com>
21587
21588         * Control.cs: err, fix this the right way, by locking on controls
21589         when using it.  not by making it synchronized.
21590
21591 2006-08-28  Chris Toshok  <toshok@ximian.com>
21592
21593         * Control.cs: make the static "controls" field synchronized, as it
21594         gets updated from multiple threads.
21595
21596 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
21597
21598         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
21599           Prevent other threads from exiting when calling thread sets quit state.
21600         * XEventQueue.cs: Added PostQuitState property
21601
21602 2006-08-27  Chris Toshok  <toshok@ximian.com>
21603
21604         * AsyncMethodData.cs: add a slot for the window handle.
21605
21606         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
21607         window (the destination control's window, not the foster window).
21608
21609         * Control.cs (BeginInvokeInternal): store the window's handle in
21610         the AsyncMethodData.
21611         
21612
21613 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
21614
21615         * XplatUIX11.cs:
21616           - PostQuitMessage: Removed resetting S.D display handle, we might have
21617             another loop started after calling PostQuitMessage (Fixes #79119)
21618           - Created destructor to reset S.D handle
21619
21620 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
21621
21622         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
21623
21624 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
21625
21626         * TextControl.cs (Insert): Update the caret position even if we don't
21627           have a handle yet, just don't call the driver in that case.
21628         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
21629           to the end of the new selection text (Fixes #79184)
21630
21631 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
21632
21633         * Form.cs (Activate): Only activate if the handle is created)
21634         * Control.c:
21635           - Mark window as invisible when it's disposed
21636           - Check if window handle is created when setting window visible, 
21637             instead of relying just on the is_created variable
21638           - Check if object is disposed when creating the control (Fixes #79155)
21639
21640 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
21641
21642         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
21643           when allowing layout again. Otherwise we re-generate the anchoring 
21644           distance to the border again and actually alter what the user wanted
21645           This is ugly, it'd be better if we used DisplayRectangle instead of
21646           ClientRectangle for Control.UpdateDistances, but that causes us to
21647           have other problems (initial anchoring positons would be wrong)
21648           (Fixes #78835)
21649
21650 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
21651
21652         * Control.cs:
21653           - The size and location setters shouldn't go directly to 
21654             SetBoundsCore, but to SetBounds, which triggers layout on the
21655             parent, then calls SetBoundsCore. (Related to fix for #78835)
21656           - SetBounds: Moved actual location update code into this function
21657             from SetBoundsCore, to match MS. Added call to PerformLayout if
21658             we have a parent (to trigger resizing of anchored parents if the 
21659             child size has changed (see testcase for #78835) 
21660         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
21661           new control code
21662         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
21663
21664 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
21665
21666         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
21667           System.Drawing when a toplevel window gets closed; there might
21668           be other toplevel windows belonging to the same app (Fixes #78052)
21669
21670 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
21671
21672         * FileDialog.cs: After reading FileDialog settings from mwf_config
21673           use Desktop prefix only if a real folder doesn't exist anymore.
21674         * FontDialog.cs: Added char sets.
21675           It is now possible to select the font, size or style with the
21676           textboxes.
21677
21678 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
21679
21680         * PrintPreviewDialog.cs: Use assembly name constants.
21681
21682 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
21683
21684         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
21685           scrollbar from whacking it's buttons)
21686
21687 2006-08-24  Chris Toshok  <toshok@ximian.com>
21688
21689         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
21690         in this patch (aggregating setting Left/Top/Width/Height to
21691         setting Bounds on the scrollbars), but the crux of the fix is in
21692         Recalculate, where we scroll by the remaining scroll_position if
21693         we're hiding a scrollbar.  The 2*$5 reward in the comment is
21694         serious.
21695
21696 2006-08-24  Jackson Harper  <jackson@ximian.com>
21697
21698         * MdiClient.cs:
21699         * MdiWindowManager.cs: If the form is made a non-mdi window we
21700         need to remove the form closed event so that closing forms works
21701         correctly.
21702
21703 2006-08-24  Jackson Harper  <jackson@ximian.com>
21704
21705         * Control.cs: Make IsRecreating internal so that the driver can
21706         check it
21707         - Temporarily remove the Hide when controls are removed, its
21708         making a whole bunch of things not work because visibility isn't
21709         getting reset elsewhere correctly
21710         * Form.cs: Need to do a full handle recreation when the mdi parent
21711         is set.
21712         * XplatUIX11.cs: If we are recreating handles don't dispose the
21713         HWNDs.  What was happening is the handles were being recreated in
21714         SendWMDestroyMessages, but then flow continued on in that method
21715         and destroyed the new handles.
21716
21717 2006-08-23  Jackson Harper  <jackson@ximian.com>
21718
21719         * Form.cs: MdiClient is always at the back of the bus
21720         * Control.cs: When the order of items in the collection is changed
21721         we need to reset the all_controls array
21722         - do the same sorta setup thats done when adding a control when a
21723         control is set on the collection.
21724
21725 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
21726
21727         * TextBoxBase.cs (get_Text): Return an empty array if our document
21728           is empty (fixes #79052)
21729
21730 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
21731
21732         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
21733           on WM_SYSCHAR messages (fixes #79053)
21734
21735 2006-08-23  Chris Toshok  <toshok@ximian.com>
21736
21737         * DataGrid.cs: fix flickering when scrolling vertically.
21738
21739 2006-08-23  Chris Toshok  <toshok@ximian.com>
21740
21741         * DataGrid.cs (EndEdit): only invalidate the row header when we
21742         need to.
21743
21744 2006-08-23  Chris Toshok  <toshok@ximian.com>
21745
21746         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
21747         methods.  fixes the flicker when scrolling around.
21748
21749 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
21750
21751         * FileDialog.cs: Making sure the control is created before we get a 
21752           chance to use it with BeginInvoke (Fixes #79096)
21753
21754 2006-08-23  Chris Toshok  <toshok@ximian.com>
21755
21756         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
21757         width to use when painting the rows.
21758
21759 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
21760
21761         * TextBoxBase.cs:
21762           - Throw ArgumentException if a negative value is passed to SelectionLength
21763           - Update the selection end if start is moved. end needs to be always
21764             after start. (Fixes #79095)
21765           - Track selection length; MS keeps the selection length even if start
21766             is changed; reset on all other operations affection selection
21767
21768 2006-08-22  Jackson Harper  <jackson@ximian.com>
21769
21770         * TreeView.cs: Make sure both scrollbars get displayed and sized
21771         correctly when the other bar is visible.
21772         - Use the original clip rectangle for checking if the area between
21773         the two scrollbars is visible, not the viewport adjusted clipping
21774         rectangle.
21775
21776 2006-08-22  Jackson Harper  <jackson@ximian.com>
21777
21778         * Binding.cs: We don't use IsBinding because it requires the
21779         control to be created, which really shouldn't be necessary just to
21780         set a property on the control.
21781
21782 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21783
21784         * ComboBox.cs: Some CB.ObjectCollection methods must throw
21785         ArgumentNullReferenceException when the argument is null.
21786
21787 2006-08-21  Jackson Harper  <jackson@ximian.com>
21788
21789         * Timer.cs: Track the thread that the timer is started in (NOT
21790         CREATED), this way messages for it will only be triggered on its
21791         queue.
21792         * XEventQueue.cs: Track the timers here, this makes timers per
21793         thread, like MS.
21794         * XplatUIX11.cs: The timers are moved to the XEventQueue.
21795
21796 2006-08-19  Chris Toshok  <toshok@ximian.com>
21797
21798         * XplatUIX11.cs: after further communication with pdb, we get the
21799         best of both worlds.  SetZOrder working for un-Mapped windows, and
21800         no X errors for un-mapped windows.
21801
21802 2006-08-19  Chris Toshok  <toshok@ximian.com>
21803
21804         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
21805         as it was causing pdn toolbars to not have the correct stacking.
21806
21807 2006-08-18  Mike Kestner  <mkestner@novell.com> 
21808
21809         * ListView.cs : guard against negative ClientArea.Width in scrollbar
21810         calculation.  Not sure why control should ever be setting a negative
21811         width though.  Fixes #78931.
21812
21813 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21814
21815         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
21816         null items in ObjectCollection class.
21817         * ListBox.cs.: Likewise.
21818
21819 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
21820
21821         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
21822           as the base method in ThemeWin32Classic should work fine.
21823           Fixed bug #78607.
21824
21825 2006-08-18  Jackson Harper  <jackson@ximian.com>
21826
21827         * Binding.cs: When validating if the value entered doesn't convert
21828         properly reset to the old value.
21829         * RadioButton.cs: Don't fire click when we get focus.
21830
21831 2006-08-18  Jackson Harper  <jackson@ximian.com>
21832
21833         * FileDialog.cs: Paint the selection on the directory combobox the
21834         same way as on MS. 
21835
21836 2006-08-17  Jackson Harper  <jackson@ximian.com>
21837
21838         * ErrorProvider.cs: Don't allow the error control to be selected.
21839         * Control.cs: Don't send the SetFocus messages, the control
21840         activation will do this, and if we do it blindly here validation
21841         does not work.
21842
21843 2006-08-17  Jackson Harper  <jackson@ximian.com>
21844
21845         * Control.cs:
21846         * ContainerControl.cs: Make validation events fire in the correct
21847         order.  TODO: For some reason the first validation event is not
21848         getting fired.
21849
21850 2006-08-17  Mike Kestner  <mkestner@novell.com> 
21851
21852         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
21853
21854 2006-08-17  Mike Kestner  <mkestner@novell.com> 
21855
21856         * ComboBox.cs : implement scroll wheel support for popped-down
21857         state. Fixes #78945. 
21858
21859 2006-08-17  Jackson Harper  <jackson@ximian.com>
21860
21861         * TreeView.cs: Specify treeview actions (old patch that didn't get
21862         committed for some reason).
21863         - Don't let the mouse wheel scroll us too far.  Just want to make
21864         the bottom node visible, not scroll it all the ways to the top.
21865
21866 2006-08-17  Jackson Harper  <jackson@ximian.com>
21867
21868         * XplatUIX11.cs: Mouse wheel events go to the focused window.
21869
21870 2006-08-17  Mike Kestner  <mkestner@novell.com> 
21871
21872         * ComboBox.cs : don't do mouseover selection in simple mode.
21873
21874 2006-08-16  Jackson Harper  <jackson@ximian.com>
21875
21876         * Form.cs: Fire the closing events for all the mdi child windows
21877         when a window is closed.  If the cancel args are set to true, the
21878         main window still gets the event fired, but it doesn't not close.
21879         * MdiWindowManager.cs: Do this closing cleanup in a Closed
21880         handler, instead of when the button is clicked, so cancelling the
21881         close works correctly.
21882         * ComboBox.cs: Send the mouse down to the scrollbar.
21883
21884 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21885
21886         * ListBox.cs: When passing 'null' to SelectedItem,
21887         set SelectedIndex to -1, to unselect items. This is the
21888         observed behaviour in .Net.
21889
21890 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
21891
21892         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
21893           MS flags saying there won't be any. (fixes #78800)
21894         * Control.cs (HandleClick): Made virtual
21895
21896 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
21897
21898         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
21899           cultures. Fixed bug #78399.
21900
21901 2006-08-16  Jackson Harper  <jackson@ximian.com>
21902
21903         * Form.cs: Use the MdiClients MdiChildren property to access
21904         MdiChildren instead of creating the array from the child controls.
21905         * MdiClient.cs: Maintain a separate array of the mdi children, so
21906         that insertion order is maintained when the Z-order is changed.
21907
21908 2006-08-16  Mike Kestner  <mkestner@novell.com> 
21909
21910         * ListView.cs : add an ItemComparer and default to it for sorting.
21911         Fixes #79076, but sorting needs a complete overhaul to be compat with
21912         MS.
21913
21914 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
21915
21916         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
21917
21918 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
21919
21920         * Hwnd.cs (Mapped): Properly traverse the tree
21921
21922 2006-08-15  Chris Toshok  <toshok@ximian.com>
21923
21924         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
21925         pass manager.Current.GetType() to ParseData.  It has to be the
21926         property type.  So, hold off doing the ParseData until we're in
21927         SetPropertyValue where we know the type.  This fixes the crash in
21928         #78821 but the textbox is still empty.
21929
21930 2006-08-15  Chris Toshok  <toshok@ximian.com>
21931
21932         * DataGrid.cs:
21933         - when we're scrolling, only call Edit() again if the
21934         current cell is still unobscured. Fixes bug #78927.
21935         - when handling mousedown on a cell, ensure the cell is visible
21936         before calling Edit.
21937         - remove the properties from DataGridRow, and remove the
21938         DataGridParentRow class altogether.
21939         
21940
21941 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
21942
21943         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
21944           fire OnTextChanged by ourselves. There's no point calling base,
21945           we don't set the base value anywhere else. Fixes #78773.
21946
21947 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21948
21949         * ListBox.cs: Call CollectionChanged when modifying
21950         an item from Items indexer, to update the actual items
21951         in the list box.
21952
21953 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21954
21955         * PrintDialog.cs: Small fixes for focus and a pair of checks,
21956         to match .Net behaviour.
21957
21958 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
21959
21960         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
21961
21962 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
21963
21964         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
21965
21966 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
21967
21968         * MessageBox.cs: Prevent potential NRE exception.
21969         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
21970
21971 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
21972
21973         * MessageBox.cs: Calculate the owner of a messagebox, also make
21974           it topmost. Fixes #78753
21975
21976 2006-08-14  Chris Toshok  <toshok@ximian.com>
21977
21978         * XplatUIX11.cs: A couple of fixes so that metacity will let us
21979         programmatically move windows.  first, set the PPosition hint as
21980         well as the USPosition hint.  Second include some code from pdb
21981         that sets the window type to NORMAL when we set the transient for
21982         hint.  This is because, in the absence of a window type, metacity
21983         thinks any window with TransientFor set is a dialog, and refuses
21984         to let us move it programmatically.  fascists.
21985
21986 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
21987
21988         * XplatUIX11.cs: When setting normal hints, take into consideration
21989           an different hints previously set so we don't delete them (fixes #78866)
21990
21991 2006-08-12  Chris Toshok  <toshok@ximian.com>
21992
21993         * ToolBarButton.cs: make Layout return a boolean, if something to
21994         do with the button's layout changed.
21995
21996         * ToolBar.cs:
21997         - add another parameter to Redraw, @force, which all existing
21998           calls set to true.
21999         - make the Layout function return a boolean which is true if the
22000           layout has actually changed.  Redraw now uses this (and @force)
22001           to determine when to invalidate.  At present the only place
22002           where @force can be false is the call from OnResize, when
22003           background_image == null.  So, resizing a toolbar when the
22004           layout doesn't change results in no drawing.
22005
22006 2006-08-12  Chris Toshok  <toshok@ximian.com>
22007
22008         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
22009         the VScrollBar and HScrollbar reversed.  oops.
22010
22011         * DataGrid.cs: fix the logic that assigns sizes to the implicit
22012         scrollbars.  we were assigning them twice (once in
22013         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
22014         therefore causing two scrollbar resizes (and redraws?) to happen
22015         per grid resize.
22016
22017 2006-08-12  Chris Toshok  <toshok@ximian.com>
22018
22019         * ToolBarButton.cs: redraw the entire button if the theme tells us
22020         to.
22021
22022         * Theme.cs: add ToolBarInvalidateEntireButton.
22023
22024         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
22025         buttons, just the border.
22026
22027         * ThemeNice.cs: redraw the entire toolbar button since we need to
22028         draw the highlight image.
22029
22030         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
22031         we need to redraw the entire button (not just the border).
22032
22033 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
22034
22035         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
22036           for vertical bars. Fixes the mismatches shown by #78513
22037
22038 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
22039
22040         * FileDialog.cs: If a saved/remembered path doesn't exist
22041           anymore, fall back to "Desktop".
22042
22043 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
22044
22045         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
22046           parent. It's apparently legal to not have one
22047         * XplatUIX11.cs:
22048           - SetZOrder: Don't try to set Z-Order on an unmapped window
22049           - CreateWindow: 0,0 are legal coordinates for a window. don't move
22050             it unless the coordinates are negative
22051
22052 2006-08-10  Mike Kestner  <mkestner@novell.com>
22053
22054         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
22055         when setting to null per msdn docs.  Fixes #78854.
22056
22057 2006-08-10  Chris Toshok  <toshok@ximian.com>
22058
22059         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
22060         flickering by setting a clip rectangle on the Graphics when we
22061         need to redraw just a particular menuitem.  Also, rename "OnClick"
22062         to "OnMouseDown" to reflect what it actually is.
22063         
22064         * Form.cs: track the OnMouseDown change.
22065
22066 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
22067
22068         * CommonDialog.cs: Properly inherit the CreateParams from the form
22069           and only change what we need. Fixes #78865
22070
22071 2006-08-10  Chris Toshok  <toshok@ximian.com>
22072
22073         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
22074         flickering in flat mode (and most of the flickering in general) by
22075         only invalidating the button border (and not the entire rectangle)
22076         when the state changes.  A couple of cases still flicker:
22077         ToggleButtons, and the dropdown arrow case when the user mouse
22078         ups.
22079
22080 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
22081
22082         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
22083           for german keyboards. Numlock state shouldn't affect the behaviour
22084           of the Del key. Fixes bug #78291.
22085
22086 2006-08-10  Chris Toshok  <toshok@ximian.com>
22087
22088         * ListControl.cs: remove the items.Clear line from BindDataItems,
22089         as this is the first thing done by both subclasses in their
22090         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
22091         passed -1, refresh the list.  This gets databinding working when
22092         the datasource is set on the list before the datasource is
22093         populated (as in wf-apps/ReportBuilder.)
22094
22095         * ComboBox.cs: remove the argument to BindDataItems.  This call
22096         should really go away, and be initiated by the ListControl code.
22097
22098         * ListBox.cs: same.
22099
22100 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
22101
22102         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
22103           if no data is in the document when the control is displayed
22104
22105 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
22106
22107         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
22108           yes (fixes #78806)
22109         * TextControl.cs: 
22110           - PositionCaret: Allow positioning of caret but don't call methods 
22111             requiring a handle if the window isn't created yet
22112           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
22113           - owner_HandleCreated: Don't position the caret, just update it's 
22114             location. User might have already set a different position
22115
22116 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
22117
22118         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
22119           windows. Screws up the returned coordinates for child windows. 
22120           Fixes #78825. I'm hoping this doesn't break something, since the
22121           code was explicitly put in 8 months ago, but no bug was attached.
22122           Menus still seem to work properly.
22123
22124 2006-08-08  Chris Toshok  <toshok@ximian.com>
22125
22126         * DataGrid.cs: make BeginInit/EndInit actually do what they're
22127         supposed to do - delay data binding until the EndInit call.  Also,
22128         make the table style collection's CollectionChangeAction.Refresh
22129         work properly.
22130
22131         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
22132         (with action = Refresh) when a consituent table's MappingName is
22133         changed.
22134
22135 2006-08-08  Chris Toshok  <toshok@ximian.com>
22136
22137         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
22138         Invalidate, since changing the text can change the size of the all
22139         toolbar buttons.
22140
22141 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
22142
22143         * Form.cs (AddOwnedForm): Still need to add the form to our listif
22144           we don't have it yet
22145
22146 2006-08-08  Chris Toshok  <toshok@ximian.com>
22147
22148         * PrintControllerWithStatusDialog.cs: don't .Close() the status
22149         dialog, as this causes X errors later on, since we actually
22150         destroy the window.  Instead, .Hide() it.
22151
22152 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
22153
22154         * ComboBox.cs: Added focus reflection for popup window
22155         * XplatUIX11.cs: 
22156           - Removed transient setting for non-app windows for now, not sure it
22157             was needed
22158           - Fixed logic checking if we have captions when deciding 
22159             override_redirect, WS_CAPTION is two bits and a 0 check was not
22160             sufficient
22161           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
22162             complicated
22163         * Form.cs: 
22164           - AddOwnedForm: Don't just add the form to the list, call the property
22165             to ensure the driver is informed about the ownership as well
22166           - CreateHandle: Set the TopMost status in the driver if we have an owner
22167         * XplatUI.cs: Fixed debug statement
22168
22169 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
22170         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
22171           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
22172           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
22173           TrackBarRenderer.cs: Make constructor private.
22174         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
22175         * ProfessionalColorTable.cs: Make properties virtual.
22176
22177 2006-08-06  Duncan Mak  <duncan@novell.com>
22178
22179         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
22180         is not changing.
22181
22182 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
22183         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
22184           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
22185           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
22186           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
22187           Initial import of new 2.0 classes.
22188
22189 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
22190         * Application.cs: Add 2.0 VisualStyles properties.
22191
22192 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
22193         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22194           XplatUIX11.cs: Create property to allow access to existing private
22195           variable "themes_enabled"
22196
22197 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22198
22199         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
22200         file size, as otherwise our class libraries fail using windows. Fixes
22201         bug #78759.
22202
22203 2006-08-04  Jackson Harper  <jackson@ximian.com>
22204
22205         * Form.cs:
22206         * XplatUIX11.cs: Move the toolwindow window manager creation into
22207         the X11 driver, this way on win32 we can let windows create/handle
22208         the toolwindows.
22209
22210 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22211
22212         * PrintDialog.cs: Remove some redundant checks, add some others,
22213         clean some code, and move the focus to the text boxes when the
22214         values are incorrect.
22215
22216 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
22217
22218         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
22219
22220 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
22221
22222         * NumericUpDown.cs: Setting the Minimum and Maximum is now
22223           handled correctly. Fixes bug #79001.
22224
22225 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22226
22227         * PrintDialog.cs: The "Copies" numeric up down must have
22228         set the Minimum property to 1; only if the value is bigger
22229         than 1, activate "Collate" check box. This is the behaviour of .Net.
22230         Also modify the Document elements only if it is not null.
22231
22232 2006-08-03  Jackson Harper  <jackson@ximian.com>
22233
22234         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
22235         length. (We have a larger array then actual node count).
22236                 
22237 2006-08-03  Jackson Harper  <jackson@ximian.com>
22238
22239         * ComboBox.cs: Don't show selection by default.
22240         - The SelectAll isn't needed here, since the focus code should do
22241         that
22242         - DDL style lists to manual selection drawing, so when they
22243         get/lose focus they have to invalidate.
22244
22245 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
22246
22247         * TextBoxBase.cs: Don't always show all selections by default.
22248
22249 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
22250         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
22251           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
22252           Fixed various typos.
22253
22254 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
22255
22256         * Control.cs: Removing the controls in a ControlCollection with
22257           Clear now hides the controls as expected. Fixes bug #78804. 
22258
22259 2006-08-03  Jackson Harper  <jackson@ximian.com>
22260
22261         * Control.cs: Revert previous focus patch, it breaks reflector.
22262
22263 2006-08-03  Jackson Harper  <jackson@ximian.com>
22264
22265         * ComboBox.cs: Cleanup selection and focus with the combobox.
22266         This also eliminates some duplicated keyboard code, since now
22267         everything is handled by the main class.
22268         - Make list selection work on mouse up instead of down, to match
22269         MS.
22270
22271 2006-08-02  Jackson Harper  <jackson@ximian.com>
22272
22273         * Control.cs: Setting focus needs to go through the whole
22274         selection mechanism.
22275
22276 2006-08-02  Chris Toshok  <toshok@ximian.com>
22277
22278         * PrintPreviewDialog.cs: change MinimumSize to use
22279         base.MinimumSize so it works.
22280
22281 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
22282
22283         * TextControl.cs:
22284           - UpdateCaret: Added sanity check in case caret isn't defined yet
22285           - Line.Delete: Now updating selection and caret markers if we're
22286             transfering a node (Properly fixes #78323)
22287           - SetSelectionEnd: Added sanity check
22288         * TextBoxBase.cs: Removed broken attempt to fix #78323
22289
22290 2006-08-01  Chris Toshok  <toshok@ximian.com>
22291
22292         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
22293         Close() call is handled in Form, not here.
22294
22295 2006-08-01  Chris Toshok  <toshok@ximian.com>
22296
22297         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
22298         layout/rendering.
22299
22300         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
22301         for sizes < 100% zoom.  The code now aggressively attempts to keep
22302         from calling document.Print (), and tries not to use the scaling
22303         g.DrawImage whenever possible (it still does if you scale to >
22304         100%, since usually that involves huge images).
22305
22306         * PrintPreviewControl.cs: hook up the close button.
22307
22308 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
22309         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
22310           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
22311           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
22312           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
22313           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
22314           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
22315           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
22316           Removed [Serializable] for 2.0 Event Handlers.
22317
22318 2006-07-31  Jackson Harper  <jackson@ximian.com>
22319
22320         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
22321         * TextControl.cs: Uncomment out the body of this method.
22322
22323 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
22324
22325         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
22326           standard cursors.
22327
22328 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
22329
22330         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
22331           that embed TextBox and need selections visible even if textbox is not
22332           focused to enforce that behaviour.
22333         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
22334           selection drawing
22335
22336 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
22337
22338         * TextControl.cs:
22339           - Added new SetSelectionStart/SetSelectionEnd overloads
22340           - Fixed viewport width assignment to be accurate
22341           - Adjusted alignment line shift calculations to allow cursor on right
22342             aligned lines to be always visible at the right border (like MS)
22343         * TextBoxBase.cs:
22344           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
22345           - TextBoxBase_SizeChanged: recalculating canvas on size changes
22346           - CalculateScrollBars: Use ViewPort size instead of window size, to
22347             properly consider space occupied by the border and scrollbars 
22348             (Fixes #78661)
22349           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
22350             calculations; no longer leaves artifacts
22351           - CaretMoved: Adjusted window scrolling to match MS and fixed several
22352             calculation bugs (Still missing right/center align calculations)
22353
22354 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
22355
22356         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
22357           use of both scroll rect and clip rect, as they do the same.
22358
22359 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
22360
22361         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
22362           in the event handler (fixes #78912)
22363
22364 2006-07-31  Chris Toshok  <toshok@ximian.com>
22365
22366         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
22367         grid.ListManager.Count, since grid.ListManager might be null.
22368         This of course begs the question "why are we drawing rows for a
22369         grid with no list manager (and therefor no rows)?"  Fixes the
22370         crash in bug #78929.
22371
22372 2006-07-31  Chris Toshok  <toshok@ximian.com>
22373
22374         * RelatedPropertyManager.cs: Don't always chain up to the parent
22375         ctor.  instead, call SetDataSource if the parent's position is !=
22376         -1.  Fixes the crash in #78822.
22377
22378 2006-07-31  Chris Toshok  <toshok@ximian.com>
22379
22380         * DataGrid.cs (get_ListManager): use field instead of property
22381         accessors for datasource and datamember.
22382         (RowsCount): make internal again.
22383         (OnMouseDown): end edits before resizing columns/rows.
22384         (OnMouseUp): restart edits after resizing columns/rows.
22385
22386 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
22387
22388         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
22389           This fixes the situation where the last set cursor is displayed
22390           whenever the mouse is over scrollbars.
22391
22392 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22393
22394         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
22395         Document properties, as well as initial values.
22396
22397 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
22398
22399         * XplatUIWin32.cs (SetBorderStyle): Setting both border
22400           and ClientEdge results in a 3-pixel border, which is
22401           wrong.
22402
22403 2006-07-28  Jackson Harper  <jackson@ximian.com>
22404
22405         * TreeNodeCollection.cs: Fix the clear method.
22406         - Fix the Shrink also
22407
22408 2006-07-27  Jackson Harper  <jackson@ximian.com>
22409
22410         * TreeView.cs: Make sure the visible order is computed when we
22411         attempt to size the scrollbars (for trees that mess with the
22412         scrolling when they shouldn't.
22413         - Make sure to give the scrollbars valid values.
22414
22415 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
22416
22417         * XplatUIX11.cs: Move motion compression code to where it
22418           has less performance impact
22419
22420 2006-07-26  Jackson Harper  <jackson@ximian.com>
22421
22422         * UpDownBase.cs: When the control is selected make the child
22423         controls non selectable, so that a click on them won't do a
22424         focus/unfocus cycle.
22425         - Don't give focus to the text box when the spinner is selected.
22426         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
22427
22428 2006-07-26  Chris Toshok  <toshok@ximian.com>
22429
22430         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
22431         satisfied with this solution.  If the bitmaps are small, we should
22432         just cache them in the PrintPreviewDialog and draw them here.
22433         Also, the layout is broken for the 2-up and 3-up cases.
22434
22435         * Theme.cs: add PrintPReviewControlPaint.
22436
22437         * PrintPreviewDialog.cs: first pass implementation.
22438
22439         * PrintPreviewControl.cs: first pass implementation.  No
22440         scrollbars yet.
22441
22442         * PrintDialog.cs: only validate fields if that particular portion
22443         of the UI is enabled.  Also, set the document's controller to a
22444         PrintControllerWithStatusDialog wrapping the document's print
22445         controller.
22446
22447         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
22448         bring up a SaveFileDialog (i hope we don't want to match the
22449         behavior of the crappy windows file entry) and set the
22450         PrinterSettings.PrintFileName accordingly.
22451
22452 2006-07-26  Jackson Harper  <jackson@ximian.com>
22453
22454         * ContainerControl.cs: Add a field that disables auto selecting
22455         the next control in a container when the container is activated.
22456         * UpDownBase.cs: Don't select the text box when the up down is
22457         selected.
22458
22459 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
22460
22461         * XEventQueue.cs: Added methods for peeking (used for compression
22462           of successive events)
22463         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
22464           mouse move events (fixes #78732)
22465
22466 2006-07-25  Jackson Harper  <jackson@ximian.com>
22467
22468         * UpDownBase.cs: Use an internal class for the textbox so that we
22469         can control focus.  the updown control should always have focus,
22470         if either the text area or the buttons are clicked.
22471         - Send the key messages to the textbox, since it never actually
22472         has focus
22473         - Activate and decativate the textbox caret.
22474
22475 2006-07-24  Jackson Harper  <jackson@ximian.com>
22476
22477         * Control.cs: Use the directed select when selecting a control,
22478         this way the container controls override will get called and the
22479         whole ActiveControl chain will get triggered.  TODO: probably need
22480         to make sure this gets done everywhere instead of the old
22481         Select(Control).
22482         * ContainerControl.cs: Implement the directed Select method to
22483         find and activate the correct child control.    
22484         
22485 2006-07-22  Mike Kestner  <mkestner@novell.com>
22486
22487         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
22488         menu handling code so that clicks without a grab work too.
22489         [Fixes #78914]
22490
22491 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
22492
22493         * FileDialog.cs: Enable the BackButton when dirstack has one element.
22494           Added some small optimizations.
22495
22496 2006-07-21  Matt Hargett  <matt@use.net>
22497
22498         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
22499
22500 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
22501
22502         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
22503           tests pass and match MS in some strange border cases.
22504
22505 2006-07-21  Chris Toshok  <toshok@ximian.com>
22506
22507         * ThemeWin32Classic.cs: handle drawing of the relation links and
22508         parent row buttons.
22509
22510         * Theme.cs: change args to DataGridPaintParentRow.
22511
22512         * DataGrid.cs: Don't use controls for the relation links and
22513         parent buttons, so we have to handle all their interactions in
22514         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
22515         when we're navigating through child tables, so we can reinstate
22516         selection, expanded state, current cell, etc.
22517
22518 2006-07-20  Chris Toshok  <toshok@ximian.com>
22519
22520         * ToolBar.cs: When we redraw a button, for whatever reason,
22521         there's no reason to redraw the entire toolbar.  Also, don't call
22522         Control.Refresh from within Redraw, as it's much heavier than
22523         Invalidate (which is really what we want).
22524
22525 2006-07-20  Chris Toshok  <toshok@ximian.com>
22526
22527         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
22528         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
22529         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
22530         traces from within a debug IBindingList datasource
22531         (in mono/winforms/datagrid) for *days*, I've finally gotten things
22532         to work in a similar fashion.
22533
22534 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22535
22536         * ListBox.cs: Don't call Sort () when setting 
22537         the Sorted property to false (avoid an unnecessary sort).
22538
22539 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22540
22541         * ListControl.cs: DataSource should throw an ArgumentException
22542         instead of a normal exception when the argument is not of the 
22543         correct type.
22544
22545 2006-07-20  Mike Kestner  <mkestner@novell.com>
22546
22547         * Control.cs: add InternalPreProcessMessage to allow us to steal
22548         key events before MWF gets its paws on them.  Adapted from a
22549         suggestion by eno.
22550         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
22551         up/down/left/right navigation. Override the new internal control
22552         method to steal the events since they never make it to WndProc.
22553         * ToolBarButton.cs: don't worry about pushed when setting hilight
22554         since the drawing code prefers pushed to hilight. Invalidate on 
22555         Hilight changes. Fixes #78547 and #78525.
22556
22557 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
22558
22559         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
22560           the canvas size. Fixes #78868
22561
22562 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
22563
22564         * Splitter.cs: Track requested split position until first layout
22565           is performed. Fixes #78871
22566
22567 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
22568
22569         * Application.cs: Removed code that forces 1.x for the version
22570           number if the version started with 0. Not sure why that code was
22571           there and I couldn't find any bugs that indicated we needed it.
22572           Fixes #78869
22573
22574 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
22575
22576         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
22577           ResetDefaults(), just write some output to the console until it's
22578           implemented. Fixes bug #78907 for now. Eliminated two warnings.
22579
22580 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
22581
22582         * PropertyGridView.cs: set StartPosition of drop down forms
22583         so they appear in correct initial spot.  Fixes #78190.
22584
22585 2006-07-19  Mike Kestner  <mkestner@novell.com>
22586
22587         * ThemeWin32Classic.cs: use parent background color when drawing
22588         flat toolbars.  Restructure the conditionals to make sure non-flat
22589         non-Divider toolbars are filled too.  Fixes #78837.
22590
22591 2006-07-19  Mike Kestner  <mkestner@novell.com>
22592
22593         * ListBox.cs: Sort on collection changes even if the handle
22594         isn't created yet.  Fixes #78813.
22595
22596 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22597
22598         * ListControl.cs: DisplayMember should never be null,
22599         and now we assign String.Empty when null is passed to it (this
22600         is the .Net way).
22601
22602 2006-07-17  Mike Kestner  <mkestner@novell.com>
22603
22604         * ListViewItem.cs: restructure Font and subitem Font handling 
22605         to hold a specific font and refer back to owner on null.
22606         Fixes #78761.
22607
22608 2006-07-17  Mike Kestner  <mkestner@novell.com>
22609
22610         * ToolBar.cs: bandaid for side-effect of previous patch which was
22611         discarding explicit heights for non-AutoSize toolbars.  Need to
22612         extend my format tester to deal with AutoSize=false. Fixes #78864.
22613
22614 2006-07-15  Jackson Harper  <jackson@ximian.com>
22615
22616         * LabelEditTextBox.cs:
22617         * TreeView.cs: Use a new LabelEdit class for node editing, this
22618         class automatically 'closes' itself when it gets the enter key or
22619         loses focus.
22620         - Use the client rectangle when setting the trees scrollbars, so
22621         border style is taken into account.
22622         
22623 2006-07-14  Jackson Harper  <jackson@ximian.com>
22624
22625         * TreeNode.cs:
22626         * TreeView.cs: Make the editing work similar to MSs, firing the
22627         events correctly and ending edits correctly.
22628
22629 2006-07-14  Mike Kestner  <mkestner@novell.com>
22630
22631         * ToolBarButton.cs:
22632         * ToolBar.cs: layout restructuring and redraw enhancements to support
22633         formatting changes gracefully, like setting TextAlign, ImageList, 
22634         ButtonSize, and Appearance.  Handles explicit button sizing quirks
22635         of the MS controls.  Things like flat toolbars ignoring button size
22636         but becoming constant sized at the largest button's size.  Normal
22637         toolbars with an image set cannot be shrunk smaller than the image,
22638         but text can be clipped/ignored.
22639         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
22640         is zero.  Seems like DrawString should be smart enough to not put
22641         anything on screen though. Also trim labels and ellipsize at the char
22642         boundary, not word.
22643         Fixes #78711 and #78483.
22644
22645 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
22646
22647         * FolderBrowserDialog.cs: Disable "New Folder" button and
22648           "New Folder" contextmenu menuitem if a folder like "My Computer"
22649           is selected.
22650
22651 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
22652
22653         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
22654         * FolderBrowserDialog.cs:
22655           - Use MWFConfig to store and read size and position settings
22656           - Added code to create a new folder (button or context menu).
22657             Use TreeView labeledit to change the name of the new folder.
22658
22659 2006-07-14  Jackson Harper  <jackson@ximian.com>
22660
22661         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
22662         when the tree is scrolled we end editing.
22663
22664 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
22665
22666         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
22667           Down arrows
22668
22669 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
22670
22671         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
22672         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
22673         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
22674         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
22675         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
22676         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
22677         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
22678         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
22679         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
22680         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
22681         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
22682         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
22683         ListViewItemSelectionChangedEventHandler.cs,
22684         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
22685         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
22686         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
22687         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
22688         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
22689         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
22690         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
22691         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
22692         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
22693         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
22694         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
22695         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
22696         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
22697         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
22698         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
22699         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
22700         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
22701         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
22702         WebBrowserNavigatingEventHandler.cs, 
22703         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
22704
22705 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
22706
22707         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
22708         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
22709         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
22710         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
22711         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
22712         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
22713         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
22714         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
22715         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
22716         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
22717         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
22718         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
22719         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
22720         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
22721         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
22722         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
22723         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
22724         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
22725         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
22726         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
22727         ListViewItemStates.cs, MaskFormat.cs: Added
22728
22729 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
22730
22731         * PropertyGridView.cs: Fix keyboard navigation of drop down.
22732         Patch from eno for bug 78558.
22733         
22734 2006-07-13  Jackson Harper  <jackson@ximian.com>
22735
22736         * TreeView.cs: When an edit is finished make sure that the
22737         selected node is visible.
22738         - When setting the top/bottom use the scrollbars is_visible, so
22739         everything will be set correctly even if the tree isn't visible
22740         yet.
22741
22742 2006-07-13  Jackson Harper  <jackson@ximian.com>
22743
22744         * ComboBox.cs: Revert the item->index part of my previous patch.
22745         * TreeView.cs: Use LostFocus instead of Leave for detecting when
22746         the edit box has lost focus (duh).
22747         - Just make the edit box not visible when we get return, that will
22748         take the focus, which will call EndEdit
22749         * TreeNode.cs When we start editing, notify the treeview.
22750
22751 2006-07-12  Jackson Harper  <jackson@ximian.com>
22752
22753         * ComboBox.cs: Clear out old items before setting the item list.
22754         This prevents databound controls from having their items added
22755         twice.
22756         - Switch the combobox to use indices whereever possible instead of
22757         using Item's.  This allows usto navigate through lists that have
22758         more then one item with the same string value (ie a, b, b, a).
22759         - Scroll the listboxes scrollbar when a non visible item is
22760         highlighted
22761         - Allow keypress to cycle through all the possible values. For
22762         example if you have b1, b2, b3 and hold down the B key all the
22763         values will be cycled through.
22764         
22765 2006-07-12  Jackson Harper  <jackson@ximian.com>
22766
22767         * TextBoxBase.cs:
22768         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
22769         this using the internal methods.
22770         * Control.cs: Add OnGotFocusInternal.  A new method that allows
22771         controls to "override" OnGotFocus and change focus behavior if
22772         needed.
22773         - Same thing for LostFocus
22774         * ComboBox.cs: Pass off focus to the text control properly.
22775
22776 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
22777
22778         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
22779         * FolderBrowserDialog.cs: Almost a complete rewrite.
22780           - Better support for Environment.Specialfolders
22781           - Added support for MWFVFS
22782           - Made setting SelectedPath work
22783
22784 2006-07-12  Jackson Harper  <jackson@ximian.com>
22785
22786         * Control.cs: Optimze getting all the controls.
22787
22788 2006-07-11  Jackson Harper  <jackson@ximian.com>
22789
22790         * ContainerControl.cs: Override SETFOCUS in the container control,
22791         so that it is not selected on mouse click.
22792
22793 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
22794
22795         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
22796           Hopefully we will have a better way once all of focus is complete.
22797
22798 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
22799
22800         * ThemeWin32Classic.cs: Commented out some debug code and fixed
22801           a compile error with csc.
22802
22803 2006-07-11  Jackson Harper  <jackson@ximian.com>
22804
22805         * Control.cs: When hiding a control only select the next control
22806         if the current control was focused.
22807         - Don't handle enter/leave when setting/killing focus, this is
22808         done by the container control.
22809         - Remove is_selected, it's not needed anymore.
22810         - Add utility methods for selecting a child control, and for
22811         firing the Enter/Leave events.
22812         * ContainerControl.cs: When a control is activated fire the
22813         enter/leave events.
22814         - Don't wrap when processing the tab key, so that focus can be
22815         moved outside of the container.
22816         - Use the correct active control
22817
22818 2006-07-11  Jackson Harper  <jackson@ximian.com>
22819
22820         * ComboBox.cs: Remove some debug code that was blinding me.
22821         * UpDownBase.cs: These controls actually aren't implicit, they are
22822         visible to the user.
22823
22824 2006-07-10  Chris Toshok  <toshok@ximian.com>
22825
22826         * DataGrid.cs: move back to the is_adding boolean field.  god i
22827         hate this is_editing/is_adding/is_changing stuff.
22828
22829 2006-07-10  Chris Toshok  <toshok@ximian.com>
22830
22831         * DataGridTableStyle.cs: just check if the property type is bool.
22832         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
22833         Don't use CanRenderType.
22834
22835         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
22836         if our text == NullText.  Remove CanRenderType.
22837
22838         * DataGridBoolColumn.cs: nuke CanRenderType.
22839
22840         * DataGrid.cs: reenable some code to end the current edit inside
22841         of set_CurrentCell.  This fixes the other 1.1.16 regression.
22842         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
22843         Also, remove the visible_row_count arg from CalcRowHeaders, since
22844         we don't need to worry about the actual height of the area.
22845
22846 2006-07-10  Chris Toshok  <toshok@ximian.com>
22847
22848         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
22849         mode, just return.
22850
22851         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
22852         the real sense of the IsInEditOrNavigateMode property (true =
22853         navigate, false = edit).  Also, update OnKeyPress to reflect this.
22854
22855         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
22856         column style exists, we still need to set its property descriptor
22857         to match up with our list manager.
22858
22859 2006-07-10  Chris Toshok  <toshok@ximian.com>
22860
22861         * ThemeWin32Classic.cs: implement the new row/header painting
22862         approach.  The parent row painting will likely go away and
22863         replaced with label controls, but the rest seems to work ok (and
22864         efficiently).
22865
22866         * Theme.cs: change the way we draw datagrid rows.  we don't draw
22867         the row headers as a block now.  Instead we draw them in the
22868         normal draw-row loop.  Add some calls for drawing parent rows and
22869         relation rows.
22870
22871         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
22872         a default table style.  Set the defaults from ThemeEngine.Current,
22873         not SystemColors.  Fix lots of misc issues with property setters.
22874
22875         * DataGrid.cs: move loads of style information out of this class
22876         as it's being duplicated with DataGridTableStyle.  keep track of a
22877         special DataGridTableStyle for the properties we used to mirror
22878         here.  Switch all the style properties to access this table style
22879         instead of instance fields of this class.  Also add a internal
22880         class to represent parent rows (more needs to be stored here, like
22881         the selection state from the parent table, as well as the
22882         expansion state.)  Also, for datasources with relations, do the
22883         right thing for collapse/expand, and add support for the
22884         navigation/parent row buttons.
22885
22886         Lastly, fix the crash in the 1.1.16 build.
22887
22888         * GridTableStylesCollection.cs: make the explicit interface
22889         implementations call the class's methods as opposed to duplicating
22890         them.
22891
22892         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
22893         0 so the text doesn't jump around when we move the cursor.
22894
22895 2006-07-10  Jackson Harper  <jackson@ximian.com>
22896
22897         * TextBoxBase.cs:
22898         * ListBox.cs: Match MS's ToString (this makes debugging focus
22899         stuff infinitely easier).
22900
22901 2006-07-10  Jackson Harper  <jackson@ximian.com>
22902
22903         * Control.cs (SelectNextControl): When checking the control's
22904         parent use this instead of ctrl.parent so that null can be passed
22905         to SelectNextControl. (I have unit tests for this).
22906         - Remove unused var.
22907
22908 2006-07-10  Chris Toshok  <toshok@ximian.com>
22909
22910         * CurrencyManager.cs: correct one regression, the removal of the
22911         finalType field.  Also, add a MonoTODO on CanAddRows, implement
22912         Refresh() correctly, and fix some event emission in
22913         ListChangedHandler.
22914
22915 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
22916
22917         * FileDialog.cs: Don't use brackets for new folders if they exist
22918           under *nix. Instead use -(number of existing folders +1).
22919
22920 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
22921
22922         * FileDialog.cs:
22923           - Fixed really nasty bug #78771
22924           - Don't block the whole GUI when reading directories with a lot of
22925             entries. Use an other thread instead and call BeginInvoke to
22926             update the ListView in MWFFileView
22927
22928 2006-07-07  Chris Toshok  <toshok@ximian.com>
22929
22930         * Control.cs (Dispose): release any Capture when disposing.
22931
22932 2006-07-07  Chris Toshok  <toshok@ximian.com>
22933
22934         * LinkLabel.cs (Select): if we chain up to the parent, set
22935         focused_index to -1 so we'll search for the first available link
22936         the next time the user tabs into us.  Also, if the direction is
22937         backward and focused_index == -1, start the search from the last
22938         element.
22939
22940 2006-07-07  Chris Toshok  <toshok@ximian.com>
22941
22942         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
22943         is beyond the end of the text, don't do anything.
22944         (CreateLinkPieces): set our ControlStyles.Selectable based on
22945         whether or not we have any links.
22946         (Link.Invalidate): use a loop instead of foreach.
22947         (Link.set_Start): null out owner.sorted_links so it'll be
22948         recreated by CreateLinkPieces.
22949
22950 2006-07-06  Chris Toshok  <toshok@ximian.com>
22951
22952         * LinkLabel.cs: revert the SetStyle change.
22953
22954 2006-07-06  Chris Toshok  <toshok@ximian.com>
22955
22956         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
22957         (OnEnableChanged): s/Refresh/Invalidate
22958         (OnGotFocus): if we have a focused index already, refocus it (so
22959         if we mouse out/in to the window it'll focus the right link).
22960         (OnKeyDown): move the tab handling out of here.
22961         (OnLostFocus): don't set focused_index to -1, so we can refocus it
22962         when we lose focus.
22963         (OnMouseDown): don't Capture here - Control handles it.  Also,
22964         focus the active link.
22965         (OnMouseUp): don't deal with Capture.
22966         (OnPaintBackgroundInternal): remove.
22967         (OnTextAlignChanged): CreateLinkPieces before calling the
22968         superclass's method.
22969         (OnTextChanged): call CreateLinkPieces before calling superclass's
22970         method.
22971         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
22972         move around.
22973         (Select): implement this, moving the selection between different
22974         links, and call parent.SelectNextControl if we don't have another
22975         link to focus in the given direction.
22976         (CreateLinkPieces): call Invalidate instead of Refresh.
22977         
22978 2006-07-06  Chris Toshok  <toshok@ximian.com>
22979
22980         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
22981         new LinkLabel internals.
22982
22983         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
22984         over pieces looking for active/focused/etc links.  also, deal with
22985         runs of text (and links) with embedded \n's in them, and use
22986         MeasureCharacterRanges instead of MeasureString to figure out the
22987         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
22988         two-step.
22989
22990 2006-07-04  Jackson Harper  <jackson@ximian.com>
22991
22992         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
22993         XKB or key auto repeat, do it manually.  Without key auto repeat,
22994         when a key is held down we get key press, key release, key press,
22995         key release, ... with auto repeat we get key press, key press, key
22996         press ..., and then a release when the key is actually released.
22997
22998 2006-07-03  Jackson Harper  <jackson@ximian.com>
22999
23000         * TabControl.cs:
23001         * ThemeWin32Classic.cs: Tabs do not obey normal background color
23002         rules, they are always control color regardless of the background
23003         color.
23004
23005 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
23006
23007         * FileDialog.cs: Added internal class MWFConfig.
23008           Removed Registry support and replaced it with support for the new
23009           MWFConfig class. See MWFConfig comments for more information.
23010
23011 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
23012
23013         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
23014           rectangle. Added some patches from eno from bug #78490 and fixed
23015           the arrow position for small up and down CPDrawScrollButtons.
23016
23017 2006-06-30  Jackson Harper  <jackson@ximian.com>
23018
23019         * InternalWindowManager.cs: Remove some debug code.
23020         * Form.cs: When an MdiParent is set to null, the window is
23021         "detatched" and becomes a normal window.
23022         * MdiClient.cs: Don't bring the new child form to the front until
23023         it is activated (setting it as active does this), this makes the
23024         previously active forms titlebar get redrawn as inactive.
23025
23026 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
23027
23028         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
23029           with later controls
23030
23031 2006-06-29  Mike Kestner  <mkestner@novell.com>
23032
23033         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
23034         arrow in keynav state.  Fixes #78682.
23035
23036 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
23037
23038         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
23039           order (fixes #78393)
23040
23041 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
23042
23043         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
23044           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
23045           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
23046           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
23047           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
23048           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
23049           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
23050           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
23051           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
23052           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
23053           enumerations (FlagsAttribute, SerializableAttribute, added/removed
23054           values)
23055
23056 2006-06-28  Mike Kestner  <mkestner@novell.com>
23057
23058         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
23059
23060 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
23061
23062         * PropertyGrid.cs,
23063           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
23064           item lines from other area (It also makes BackColor consistent and
23065           compatible with .NET). Fixed bug #78564.
23066
23067 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
23068
23069         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
23070         Patch from Eno for #78555.
23071
23072 2006-06-27  Chris Toshok  <toshok@ximian.com>
23073
23074         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
23075
23076         * DataGridColumnStyle.cs: same.
23077
23078         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
23079         
23080         * DataGridDrawingLogic.cs: nuke.
23081
23082 2006-06-27  Chris Toshok  <toshok@ximian.com>
23083
23084         * DataGridTableStyle.cs: clean up the constructors, and build the
23085         list of child relations for this table.  I have no idea if this is
23086         where we should be doing it (it probably isn't), but since we're
23087         already iterating over the properties..
23088
23089         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
23090         struct and array for keeping track of row information, similar to
23091         what's shown in a hack on
23092         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
23093
23094         * Theme.cs: be consistent about the naming of DataGrid methods,
23095         prefering ColumnWidths and RowHeights over columnsWidths and
23096         RowsHeights.
23097
23098         * ThemeWin32Classic.cs: same, and also add support for variable
23099         sized rows (and the +/- expansion icons for related rows).
23100
23101 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
23102
23103         * TextBoxBase.cs: Applied Eno's patch from #78660
23104
23105 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
23106
23107         * Form.cs (ScaleCore): We don't want to scale our form if it's
23108           state is minimized or maximized, but we still need to scale our
23109           child windows. Also, added try/finally block to ensure layout
23110           gets reset (Fixes #78697)
23111
23112 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
23113
23114         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
23115
23116 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
23117
23118         * Form.cs: Fixed c+p error and added check to resize form if minimum
23119           size is bigger than current size (Fixes #78709)
23120
23121 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
23122
23123         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
23124
23125 2006-06-26  Mike Kestner  <mkestner@novell.com>
23126
23127         * ComboBox.cs: only do Keypress handling in the combo when there  
23128         are items in the collection. Fixes #78710.
23129
23130 2006-06-26  Chris Toshok  <toshok@ximian.com>
23131
23132         * Binding.cs: make this work bi-directionally.  also, clear up
23133         other mixups between Push/Pull Data (e.g. we're supposed to pull
23134         data when validating).
23135
23136         * BindingManagerBase.cs: trim some fully qualified collection
23137         types.
23138
23139         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
23140
23141 2006-06-23  Chris Toshok  <toshok@ximian.com>
23142
23143         * PropertyManager.cs: It appears (according to the unit tests)
23144         that PropertyManager doesn't use
23145         PropertyDescriptor.AddValueChanged to track propery value changes
23146         in its datasource, but uses the same scheme as Binding, where it
23147         looks for a <Property>Changed event and binds to it.
23148
23149         Also, according to the docs, IsSuspended always returns false for
23150         a property manager with a non-null datasource.
23151
23152 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
23153
23154         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
23155           need to update the actual DialogResult. (Fixes #78613)
23156
23157 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
23158
23159         * Form.cs (ShowDialog): Release any captures before running the
23160           new message pump (fixes #78680)
23161
23162 2006-06-22  Mike Kestner  <mkestner@novell.com>
23163
23164         * ListView.cs: Layout column widths properly in details mode even 
23165         if HeaderStyle.None is set.  Fixes #78691.
23166
23167 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
23168
23169         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
23170
23171 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
23172
23173         * Control.cs (ContainsFocus): Using new driver method to get focused
23174           window, instead of trying to use internal tracking var, which can
23175           recursion issues (Fixes #78685)
23176         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
23177           XplatUIWin32.cs: Added GetFocus method to return focused window
23178
23179 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23180
23181         * ColorDialog.cs: when the mouse button is pressed inside the color
23182         matrix, don't let the cursor move out of it until the button is
23183         released, which is the behavior on windows. Changed 'colours' by
23184         'colors' to use the same word consistently.
23185
23186 2006-06-21  Chris Toshok  <toshok@ximian.com>
23187
23188         * DataGrid.cs: add in some basic navigation stuff (navigating to a
23189         child relation and back, using a stack).  Also, remove
23190         GetDataSource and the code that calls it - it's not needed.  Also,
23191         track CurrencyManager.ListName's removal.
23192
23193 2006-06-21  Chris Toshok  <toshok@ximian.com>
23194
23195         * CurrencyManager.cs: push some of the original type checking from
23196         BindingContext.CreateBindingManager to here, and remove some of
23197         the finalType stuff.  Need more tests to make sure I've got the
23198         ListName part right, and we might need more in SetDataSource.
23199
23200         * PropertyManager.cs: add a ctor that takes just the datasource,
23201         and no property name.  Make SetDataSource work with a null
23202         property_name, and make Current return the data_source if the
23203         property descriptor is null.  this makes 'string foo = "hi";
23204         BindingContext[foo].Current' return "hi" as it should.
23205
23206         * RelatedCurrencyManager.cs: make this code more generic - there's
23207         no reason the parent manager has to be CurrencyManager, and
23208         there's no reason to pass the DataRelation.  It suffices to use a
23209         BindingManagerBase and PropetyDescriptor.
23210
23211         * RelatedPropertyManager.cs: make a similar change here.
23212         
23213         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
23214         flower I knew it could be.
23215
23216 2006-06-20  Chris Toshok  <toshok@ximian.com>
23217
23218         * PropertyManager.cs: the PropertyChangedHandler is invoked when
23219         data in the source has changed and we need to update the control,
23220         so s/PullData/PushData.
23221
23222         * CurrencyManager.cs: Refresh is meant to update the control from
23223         data in the datasource.  So, s/PullData/PushData.
23224
23225         * BindingContext.cs: add more ugliness (we weren't handling the
23226         case where data_source = DataTable and data_member = column_name).
23227
23228         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
23229         from the perspective of the datasource.  PullData pulls from the
23230         control, PushData pushes to the control.
23231
23232 2006-06-20  Chris Toshok  <toshok@ximian.com>
23233
23234         * BindingContext.cs: rewrite the CreateBindingManager code to
23235         handle navigation paths more or less properly.  This could
23236         definitely stand some more work, in particular to push the
23237         recursion up to the toplevel.  But that relies on fixes in other
23238         places (System.Data comes to mind).
23239
23240         Also, move to a flat hashtable (and encode the twolevel nature of
23241         the dictionary into the hash key).  This lets us implement the
23242         IEnumerable.GetEnumerator method.
23243
23244         * RelatedCurrencyManager.cs: new class.  Update our view based on
23245         our relation and our parent CurrencyManager's position.
23246
23247         * CurrencyManager.cs: split out some logic from the ctor into
23248         SetView, so it can be called from the new RelatedCurrencyManager
23249         subclass.
23250
23251         * RelatedPropertyManager.cs: new class.  Update our datasource
23252         based on the position of our parent CurrencyManager.
23253
23254         * PropertyManager.cs: split out some logic from the ctor into
23255         SetDataSource, so it can be called from the new RelatedDataSource
23256         subclass.  Also, make the Current getter return the value
23257         of the PropertyDescriptor, not the data_source.
23258
23259         * Binding.cs: no need to duplicate the string splitting code here.
23260
23261 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
23262
23263         * Control.cs:
23264           - set_Enabled: OnEnabledChanged is not called if the inherited state 
23265             of the control is not altered, even though  we might be changing the
23266             internal state of the control (#78458)
23267           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
23268             OnEnabledChanged, to allow easy altering of any child window state
23269           - OnEnabledChanged: Added code to enable/disable driver window state
23270           - OnParentEnabledChanged: Instead of firing the event, call 
23271             OnEnabledChanged, which will fire the event and also a) set driver
23272             window state and pass the enabled state to any grandchildren (#78458)
23273
23274 2006-06-19  Jackson Harper  <jackson@ximian.com>
23275
23276         * InternalWindowManager.cs: We don't set the cursor explicitly
23277         thats done via the response to NCHITTESTs.
23278         - Don't need to adjust for titlebar heights anymore, the
23279         coordinates are coming in the correct coordinates now (see peters
23280         last patch).
23281
23282
23283 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
23284
23285         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
23286           being translated relative to whole window, instead of client window.
23287           That caused broken offsets on mouseclick (and caused gas for our
23288           InternalWindowManager)
23289
23290 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
23291
23292         * TextControl.cs:
23293           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
23294           - Undo(): Added replay of cursor move on DeleteChars action; added
23295             calling Undo() again if a recorded cursor move is invalid (to
23296             ensure that some action is performed on Undo)
23297         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
23298
23299 2006-06-16  Jackson Harper  <jackson@ximian.com>
23300
23301         * MdiClient.cs: Instead of just sizing maximized windows when
23302         there is a resize we also have to adjust the Y of minimized
23303         windows, so they stay pinned to the bottom of the mdi container.
23304         - Eliminate separate tracking of the active control, we can just
23305         get this from the controls collection.
23306         - Paint the decorations for the newly activated titlebar so we get
23307         a pretty blue bar.
23308         * InternalWindowManager.cs:
23309         * ThemeWin32Classic.cs: Minimized windows get all three buttons
23310         even if they are a tool window.
23311         
23312 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
23313
23314         * TextControl.cs (Undo): Handle non-existent cursor locations in the
23315           undo buffer, these can happen when text was deleted and the cursor
23316           was recorded first. Since we will also have a recorded cursor
23317           after the delete this is not an issue. (Fixes #78651)
23318
23319 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
23320
23321         * AccessibleObject.cs: Remove dependence on Control.is_selected;
23322           instead properly track control states internally (allows us to
23323           remove is_selected from Control)
23324
23325 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23326
23327         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
23328         whose width is not a multiple of 8.
23329
23330 2006-06-13  Jackson Harper  <jackson@ximian.com>
23331
23332         * MdiClient.cs:  Only maximize the next child if the current one
23333         is maximized.
23334
23335 2006-06-13  Chris Toshok  <toshok@ximian.com>
23336
23337         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
23338         modified.  Also, guard against grid or grid_drawing being null in
23339         Invalidate.
23340
23341         * DataGrid.cs: Reformat tons of getters/setters.  In the
23342         DataMember setter, just call SetNewDataSource instead of
23343         duplicating some of its functionality.  In SetNewDataSource, don't
23344         check ListManager for null, since the property getter creates the
23345         object if needed.
23346
23347         * DataGridTableStyle.cs: don't set TableStyle or call
23348         SetDataGridInternal on the column here, it's done in
23349         GridColumnStylesCollection.Add.
23350
23351         * GridColumnStylesCollection.cs: fix all the explicit interface
23352         implementations to just call our methods.  Nuke AddInternal() and
23353         move the body of it to Add().  Also, add a call to
23354         column.SetDataGridInternal to Add().
23355
23356         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
23357         base()+duplicate code.  Also, use the Format property instead of
23358         format to generate an Invalidate ala MS.  Lastly, create the
23359         textbox here, unconditionally.
23360         (set_Format): call Invalidate.
23361         (get_TextBox): no need to call EnsureTextBox.
23362         (Commit): remove the message box.
23363         (Edit) remove the call to EnsureTextBox.
23364         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
23365         (EnterNullValue): no need to check textbox for null.
23366         (HideEditBox): no need to check textbox for null.
23367         (SetDataGridInColumn): add the textbox to the grid's controls.
23368         (EnsureTextBox): nuke.
23369         
23370 2006-06-13  Jackson Harper  <jackson@ximian.com>
23371
23372         * MdiWindowManager.cs: Hook up to the maximized menus paint event
23373         and redraw the buttons when needed. Unhook when the window is
23374         unmaximized.
23375         * MainMenu.cs: Add an internal Paint event, the mdi window manager
23376         needs this so that it can redraw its buttons when the menu is
23377         repainted.
23378         * InternalWindowManager.cs:
23379         * Form.cs: The method order has changed for DrawMaximizedButtons,
23380         so that it can be a PaintEventHandler.
23381         
23382 2006-06-13  Jackson Harper  <jackson@ximian.com>
23383
23384         * MdiClient.cs: When we close a maximized mdi window, the next mdi
23385         window is activated and maximized, even if it wasn't before.
23386         - When  a new window is activated repaint the decorations of the
23387         old one, so that it no longer has the Active "look" (the blue
23388         titlebar).
23389         * InternalWindowManager.cs: Open up CreateButtons to base classes
23390         so they can recreate the buttons on state changes.
23391         - If a window is maximized give it all three buttons
23392         * MdiWindowManager.cs: Create the titlebar buttons when the state
23393         is changed, this is needed because a toolwindow will not have all
23394         three buttons until it is maximized.
23395
23396 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
23397
23398         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
23399           Fixed bug #78609.
23400
23401 2006-06-12  Jackson Harper  <jackson@ximian.com>
23402
23403         * KeysConverter.cs: Make sure we handle the Ctrl special case
23404         if its the only key.
23405         
23406 2006-06-12  Jackson Harper  <jackson@ximian.com>
23407
23408         * Theme.cs: Add a method to get the size of a managed window
23409         toolbar button.
23410         * InternalWindowManager.cs: Remove the ButtonSize property, this
23411         should be retrieved from the theme.
23412         * MdiWindowManager.cs: Get the button size from the theme
23413         * ThemeWin32Classic.cs: Make the method to get the managed window
23414         titlebar button size public.
23415         - Handle the different button sizes of maximized toolwindows
23416         (should match any maximized window).
23417         - Get the titlebar height from the theme, not the WM (which gets
23418         it from the theme).
23419
23420 2006-06-12  Jackson Harper  <jackson@ximian.com>
23421
23422         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
23423         event down to the mdi window manager.
23424         - Expose some extra stuff to base classes
23425         - Make sure to end the Capture on an NC Mouse up, so that we can
23426         get double clicks properly, and the sizing doens't stick.
23427         - When doing PointToClient contain it in the workable desktop
23428         area, this prevents windows from changing size when the cursor is
23429         pulled outside of the working area while sizing.
23430         * MdiWindowManager.cs: When we get a double click maximize the
23431         window.
23432         - Reset the cursor after handling mode changes.
23433
23434 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
23435
23436         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
23437           current desktop, instead of just assuming a 0, 0 origin. This
23438           is needed for our internal window manager, to know the top
23439           margin of the desktop
23440
23441 2006-06-12  Chris Toshok  <toshok@ximian.com>
23442
23443         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
23444         we need this to get rid of the selected background in the bool
23445         column.
23446         (CancelEditing): move the ConcedeFocus call to above the Abort
23447         call.  Also, set is_changing to false and invalidate the row
23448         header if we were changing before.
23449         (ProcessKeyPreviewInternal): remove, since noone outside this
23450         class calls it anymore.  Roll the code into ProcessKeyPreview.
23451         (EndEdit): remove the internal version.
23452         (InvalidateCurrentRowHeader): make private.
23453
23454         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
23455         Keys.Escape handling (and with it the last call to
23456         DataGrid.EndEdit from outside the class.)
23457
23458
23459 2006-06-12  Chris Toshok  <toshok@ximian.com>
23460
23461         * DataGridTextBox.cs (.ctor): isedit defaults to false.
23462         (OnKeyPress): set isedit to true.
23463         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
23464         already handled by the grid.
23465
23466         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
23467         right.  ugh.
23468         (set_DataSource): SetDataSource always returns true, so stop
23469         putting it in an if statement.
23470         (EndEdit): get rid of some {}'s
23471         (ProcessGridKey): return true in case Keys.Escape.
23472         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
23473         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
23474         PositionChanged, stopped connecting to CurrentChanged.
23475         (GetDataSource): simplify this a bunch.
23476         (SetDataSource): change return type from bool to void.
23477         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
23478         to this, and make sure we don't set ListManager.Position inside
23479         set_CurrentCell.
23480         (OnListManagerItemChanged): if we're passed an actual index,
23481         redraw that row.
23482
23483         * CurrencyManager.cs (set_Position): don't call PullData here.
23484
23485 2006-06-09  Jackson Harper  <jackson@ximian.com>
23486
23487         * TreeNode.cs:  Recalculate the visible order before doing the
23488         Expand/Collapse Below calls, because those calls generate an
23489         expose.
23490         - Reduce calls to the TreeView property, which is mildly expensive
23491         by using a local var.
23492         * Form.cs: Layout the MDI child windows when creating the parent
23493         form.
23494         - Don't use the internal constructor anymore
23495         * MdiClient.cs: use the parent form width/height (if available)
23496         when laying out the child windows, we do this because the
23497         mdiclient isn't docked yet when the initial layout is done.
23498         - Don't need an internal constructor anymore.
23499
23500 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23501
23502         * FileDialog.cs: handle access errors when trying to create a folder
23503         or changing to a directory. No need to initialize out parameters.
23504
23505 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
23506
23507         * FileDialog.cs: Append a number when creating a new folder if the
23508           folder already exists (use parenthesis instead of square brackets)
23509
23510 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
23511
23512         * FileDialog.cs:
23513           - Disabled registry support for windows and added better registry
23514             error checking for other systems (need to investigate why it
23515             works perfectly on my system)
23516           - If a folder already exist show an error MessageBox instead of
23517             trying to create an indexed name.
23518           - Fixed a non intentional typo.
23519
23520 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23521
23522         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
23523
23524 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
23525
23526         * FileDialog.cs: When creating a new folder don't crash if the
23527           folder already exists.
23528
23529 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
23530
23531         * FileDialog.cs: Allmost a complete rewrite.
23532           - added a "virtual" file system that handles the differences
23533             between unix and windows file systems (especially the directory
23534             structure). Moved most of the directory and file handling code
23535             into the vfs.
23536             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
23537             UnixFileSystem and FSEntry.
23538           - Recently used folder/directory, size, location and used file names
23539             (file name ComboBox) are now stored in the registry and get read
23540             before the dialog shows up (fixes part 6 of bug #78446).
23541           - Creation of new folders/directories is now possible (context menu
23542             or ToolBar). Added TextEntryDialog for this that fills in the gap
23543             until ListView.LabelEdit works.
23544           - Fixed cursor handling (bug #78527) and focus handling for
23545             PopupButtonPanel
23546           - Various "Search in" ComboBox enhancements. The content of the
23547             dropdown listbox now almost matches ms.
23548           - Changed the behaviour when the user switches to SpecialFolder
23549             Recent to show the ListView in View.Details.
23550           - Beside using the ToolBar to change the View property of the
23551             file ListView it is now possible to use the context menu too.
23552
23553 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
23554
23555         * ComboBox.cs: Don't create a new ObjectCollection when an item
23556           gets inserted. Just insert the item in the existing object_items
23557           ArrayList.
23558
23559 2006-06-08  Jackson Harper  <jackson@ximian.com>
23560
23561         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
23562         that the treeview and root node checks are done also, this fixes a
23563         regression i caused in the unit tests.
23564
23565 2006-06-07  Wade Berrier <wberrier@novell.com> 
23566
23567         * RichTextBox.cs: More ISO8859-1 -> unicode
23568
23569 2006-06-07  Mike Kestner  <mkestner@novell.com>
23570
23571         * ComboBox.cs : use items to hold highlight/selection so that
23572         collection insertions don't require synchronization.
23573
23574 2006-06-07  Jackson Harper  <jackson@ximian.com>
23575
23576         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
23577         routine.  We now always keep the sized edge at the cursor instead
23578         of computing movement and adjusting rects.  There is one buglet
23579         with this method though when the cursor is moved over area that
23580         the window can not expand too (such as the toolbars on the desktop).
23581
23582 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23583
23584         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
23585         here. Fixes crash on startup in AlbumSurfer.
23586
23587 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
23588
23589         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
23590           values
23591
23592 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23593
23594         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
23595         statement to avoid calling XNextEvent which will block if another thread
23596         took the event that we were expecting. Fixes bug #78605.
23597
23598 2006-06-07  Mike Kestner  <mkestner@novell.com>
23599
23600         * ListView.cs : isolated checkbox clicking from the selection logic.
23601         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
23602
23603 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
23604
23605         * Form.cs: Check that the value passed to Form.DialogResult
23606         is a valid enum value.
23607
23608 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23609
23610         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
23611         Computer'. Clicking it in the network view goes to 'My Computer'.
23612         Added CIFS filesystem type. Display the mount point of filesystems.
23613         Avoid duplicate mount points (happens for me with CIFS);
23614
23615 2006-06-06  Jackson Harper  <jackson@ximian.com>
23616
23617         * InternalWindowManager.cs: Draw the maximized windows buttons
23618         when resizing.
23619
23620 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23621
23622         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
23623         all other dialogs. Fixes bug #78585.
23624
23625 2006-06-06  Mike Kestner  <mkestner@novell.com>
23626
23627         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
23628         Only invalidate checkbox on checkstate changes to avoid flicker.
23629         * ListBox.cs : avoid unselect/select when clicking selected item.
23630         avoid reselection flicker for already multiselected items.
23631         Fixes #78382.
23632
23633 2006-06-06  Jackson Harper  <jackson@ximian.com>
23634
23635         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
23636         the parent form so that the menu is removed if needed.
23637
23638 2006-06-06  Mike Kestner  <mkestner@novell.com>
23639
23640         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
23641         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
23642
23643 2006-06-06  Mike Kestner  <mkestner@novell.com>
23644
23645         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
23646
23647
23648 2006-06-06  Jackson Harper  <jackson@ximian.com>
23649
23650         * Control.cs: Use the property (instead of the field) to get the
23651         default cursor so it is instantiated correctly.
23652         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
23653         resizes so we need to manually repaint the window decorations here.
23654         - Set the titlebar button locations as soon as they are created,
23655         otherwise they are not set correctly on win32.
23656         
23657 2006-06-06  Chris Toshok  <toshok@ximian.com>
23658
23659         * CurrencyManager.cs (set_Position): call PullData before
23660         OnCurrentChanged.
23661         (AddNew): after calling IBindingList.AddNew, update our
23662         listposition, and call OnCurrentChanged/OnPositionChanged (without
23663         calling PullData).
23664         (OnCurrentChanged): remove the call to PullData from here.
23665         (OnItemChanged): remove the call to PushData from here.
23666         (OnPositionChanged): change the test from == null to != null to
23667         match the other methods.
23668         (ListChangedHandler): the grossest part of the patch.  Implement
23669         this such that it passes the unit tests in CurrencyManagerTest and
23670         the output more or less matches that of MS's implementation.
23671  
23672 2006-06-06  Mike Kestner  <mkestner@novell.com>
23673
23674         * ListView.cs : only update check state on single click.
23675         * ThemeWin32Classic.cs : fix focus drawing for details view without
23676         fullrowselect.  Fixes #78454.
23677         * XplatUIX11.cs : fix for double click emission.
23678
23679 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
23680
23681         * PropertyGridView.cs : Applied Atsushi's patch to fix
23682         font dialog bug  (#78197).
23683
23684 2006-06-05  Jackson Harper  <jackson@ximian.com>
23685
23686         * TreeNode.cs: Compute the next node for expanding/collapsing
23687         correctly. We now factor in nodes without a NextNode
23688         correctly. (Fixes somes cases in nunit-gui).
23689         * InternalWindowManager.cs: Set the bounds when updating the
23690         virtual position of a tool window.
23691         
23692 2006-06-05  Chris Toshok  <toshok@ximian.com>
23693
23694         * DataGrid.cs: rename cached_currencymgr to list_manager.
23695         (set_CurrentCell): move SetCurrentCell code here, and clean it up
23696         some.
23697         (CurrentRow, CurrentColumn): single accessors so we can make the
23698         cursor movement code a lot easier to understand.
23699         (CurrentRowIndex): implement this in terms of CurrentRow.
23700         (BeginEdit): clean this up a bit.
23701         (CancelEditing): sort out the is_editing/is_changing/is_adding
23702         stuff a little.
23703         (EndEdit): minor changes.
23704         (OnKeyDown): add a comment about a (most likely) unnecessary
23705         check.
23706         (OnMouseDown): cancel editing when we click on a row header.  And
23707         use the CurrentRow setter, not CurrentCell.
23708         (ProcessDialogKey): directly call ProcessGridKey.
23709         (UpdateSelectionAfterCursorMove): factor out this common block of
23710         code (it's used everywhere that we move the cursor by updating row
23711         or column).
23712         (ProcessGridKey): pretty substantial overhaul.  Use the
23713         CurrentRow/CurrentColumn properties to make the code a lot more
23714         readable.  Only use the CurrentCell property when we have to
23715         modify both row and column at once.  Tab behavior is still broken,
23716         and Delete is untested.
23717         (Select): if we have no selected rows, set selection_start to
23718         @row.
23719         (EditCurrentCell): rename EditCell this.  It was only ever invoked
23720         with CurrentCell as the arg, so drop the arg and rename it.
23721
23722         * DataGridColumnStyle.cs: clean up the constructors a little, and
23723         drop CommonConstructor().
23724
23725         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
23726         actually get notified when the user hits it.
23727         (ProcessKeyMessage): *substantially* simplify this method.
23728         There's no reason (that I can see) for the textbox to be making
23729         calls into the datagrid at all.  Remove all of them but the ones
23730         for Enter handling.  those will take some more work.
23731
23732         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
23733         calling HideEditBox.
23734         (HideEditBox): if we have an active textbox, render it invisible
23735         without causing a re-layout of the datagrid.
23736
23737 2006-06-05  Mike Kestner  <mkestner@novell.com>
23738
23739         * ListView.cs : fix NRE crasher when focuseditem is cleared by
23740         collection changes by resetting it to Items[0].  Fixes #78587.
23741
23742 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23743
23744         * MessageBox.cs: if the height of the text is larger than the icon_size,
23745         use that. Fixes bug #78575.
23746
23747 2006-06-05  Jackson Harper  <jackson@ximian.com>
23748
23749         * TreeView.cs: Fix line drawing when scrolling.  To do this each
23750         node is basically responsible for drawing its entire horizontal
23751         area.  When drawing a node it draws its parent node lines if
23752         needed.
23753         - Adjust the clip area to the viewport rectangle
23754         - Fix Left/Right key handling to match MS. (It expand/collapses
23755         and moves to parents/first child but does not move selection to
23756         sibling nodes).
23757         - Fix SetTop to work with new bound calculation code
23758         - When scrollbars are no longer needed we need to reset scrolling
23759         vars and recalculate the visible order so the redraw is correct
23760         * TreeNode.cs: We can't expand/collapse nodes with no children.
23761
23762 2006-06-03  John Luke  <john.luke@gmail.com> 
23763
23764         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
23765         so the colors work without dev packages
23766         
23767 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
23768
23769         * Control.cs 
23770           - Select: Implemented to just use activate. Seems to match MS 
23771             behaviour closest. Documented to only do actual control walking 
23772             based on it's parameters if in a container control so I moved 
23773             the code there.
23774           - Removed selection check logic from our internal Select() method
23775         * ContainerControl.cs:
23776           - Select: Moved selection logic from Control here, since MS documents
23777             that containers obey the bool arguments. No longer calling base
23778
23779 2006-06-02  Jackson Harper  <jackson@ximian.com>
23780
23781         * TreeView.cs: If the selected node isn't changed when we get
23782         focus update the previously selected node so that we see the
23783         selection box.
23784
23785 2006-06-02  Mike Kestner  <mkestner@novell.com>
23786
23787         * ComboBox.cs: restructure grab and general mouse event handling.
23788         Make the composite control raise mouse events like it was a single
23789         control for leaves/enters/motion/up/down events.  fix dropdown list
23790         coordinate mangling and refactor it into the scrollbar subclass to
23791         reduce code duplication.  Fixes #78282 #78361 and #78457.
23792
23793 2006-06-02  Mike Kestner  <mkestner@novell.com>
23794
23795         * ScrollBar.cs: remove Capture setting/clearing, as it happens
23796         automatically in the Control.WndProc.
23797
23798 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23799
23800         * FileDialog.cs: fix crash when running SharpChess, which sets the
23801         FilterIndex to 2 with only one Filter.
23802
23803 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23804
23805         * ToolBar.cs: add SizeSpecified property.
23806         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
23807         try to figure out our real size, otherwise fallback to what the
23808         container says.
23809
23810 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
23811
23812         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
23813         * Control.cs (WndProc): MS always calls the DefWndProc to pass
23814           up the event
23815
23816 2006-06-01  Mike Kestner  <mkestner@novell.com>
23817
23818         * ListView.cs: revamp the focus management in ListView.  It still
23819         causes churn of LostFocus/GotFocus emissions on clicks, but it's
23820         better than not handling focus at all.  Will revisit when pdb feels
23821         the general focus handling is solid.  Fixes #78526.
23822
23823 2006-06-01  Jackson Harper  <jackson@ximian.com>
23824
23825         * TreeView.cs: Set the default border style in the constructor.
23826         - Move painting to use OnPaintInternal instead of capturing
23827         WM_PAINT, this is the correct way of doing things
23828         - UpdateBelow shouldn't invalidate the scrollbar area
23829         - Cap the top on update below in case the node was above the top
23830         of the viewport rectangle.
23831         - ExpandBelow and Collapse below need to obey Begin/End Update.
23832         * TreeNode.cs: Make is_expanded internal so the treenode
23833         collection can change it without firing the whole event chain.
23834         * TreeNodeCollection.cs: When clearing all the child nodes make
23835         sure to recalc the visible order.
23836         - Improve algo for remove the top node
23837
23838 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
23839
23840         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
23841           SendMessage directly calling window procedures, which in turn might
23842           call SetFocus()
23843
23844 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
23845
23846         * Control.cs: Don't handle WM_SETFOCUS if the same window already
23847           has focus (works around X11 sending a FocusIn after our SetFocus)
23848         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
23849
23850 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
23851
23852         * Mime.cs: Fix for the NET_2_0 build.
23853           NameValueCollection needs StringComparer now.
23854
23855 2006-05-31  Chris Toshok  <toshok@ximian.com>
23856
23857         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
23858         return (via an out parameter) the starting X of the column.
23859         (UpdateVisibleColumn): track change to FromPixelToColumn.
23860         (HitTest): add a ColumnResize case here.
23861         (DrawResizeLine): new function, probably poorly named.
23862
23863         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
23864         only need to keep one reference.
23865         (set_ListManager): same.
23866         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
23867         Also, add support for HitTestType.ColumnResize.
23868         (OnMouseMove): add column resize behavior here, and change the
23869         cursor to the correct one as we move around the datagrid.
23870         (OnMouseUp): terminate the column resize if we're resizing.
23871         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
23872         for the current cell.
23873         (ConnectListManagerEvents): use cached_currencymgr.
23874         (DisconnectListManagerEvents): fill this in, using
23875         cached_currencymgr.
23876         (SetCurrentCell): remove cached_currencymgr_events handling.
23877         (SetDataMember): only call DisconnectListManagerEvents if
23878         cached_currencymgr is != null.
23879         (SetDataSource): same.
23880         (OnListManagerCurrentChanged): cached_currencymgr_events ->
23881         cached_currencymgr.
23882
23883 2006-05-31  Jackson Harper  <jackson@ximian.com>
23884
23885         * BindingManagerBase.cs: Remove somedebug code that creeped into
23886         SVN.
23887         * TreeNode.cs: We get the indent level dynamically right now, so
23888         don't track it as a member.
23889         * TreeNodeCollection.cs: Make sure all nodes added to the list
23890         have parents, treeviews/topnodes setup properly.
23891         - Don't attempt to track indent level.
23892
23893 2006-05-30  Jackson Harper  <jackson@ximian.com>
23894
23895         * BindingContext.cs: Create the currency manager tables here.
23896         This allows us to more easily create null tables (when bad data
23897         members are used), and more easily create related currency
23898         managers.
23899         * CurrencyManager.cs: All the table creation stuff is done by the
23900         binding context now.
23901         - Current should throw an exception if listposition is -1.
23902         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
23903         been bound yet.
23904
23905 2006-05-30  Mike Kestner  <mkestner@novell.com>
23906
23907         * ListView.cs: allow reexpansion of zero-width column headers.
23908         Fixes #78528.
23909
23910 2006-05-28  Chris Toshok  <toshok@ximian.com>
23911
23912         * CurrencyManager.cs (get_Current): after the late binding
23913         listposition = -1 fix, we need to guard against it here and return
23914         null, otherwise we raise an exception (which is swallowed
23915         elsewhere, and breaks datagrid databinding.)
23916
23917 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
23918
23919         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
23920           than WM_SYSKEY, don't throw if get something unexpected (#78507)
23921
23922 2006-05-26  Jackson Harper  <jackson@ximian.com>
23923
23924         * ControlPaint.cs:
23925         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
23926         values, it's faster and it's all we care about (we don't care if
23927         the names aren't equal).
23928         * KeyboardLayouts.cs: Eliminate some dead code.
23929         - Lazy init things
23930         * X11Keyboard.cs: Lazy init keyboard detection.
23931         - Cleanup access modifiers a little.
23932
23933 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
23934
23935         * XplatUIX11.cs: Once again, attempting to get layout just right.
23936
23937 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
23938
23939         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
23940           the sizes of each link section, that will result in sizes that
23941           match DrawString's layout (Fixes #78391)
23942
23943 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
23944
23945         * FileDialog.cs: If AddExtension property is true autocomplete the
23946           extensions in SaveFileDialog correctly. Fixes bug #78453.
23947           Set MyNetwork and MyComputer to "C:\" for windows. This should
23948           fix part 8 of bug #78446 for now.
23949
23950 2006-05-26  Chris Toshok  <toshok@ximian.com>
23951
23952         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
23953         invalidate the current row header if we need to, but presumably
23954         we'll invalidate the row corrsponding to the bounds or
23955         editingControl.
23956         (GridHScrolled): switch back to this method, as it's part of the
23957         public api.  *sigh*.
23958         (GridVScrolled): same.
23959         (OnMouseWheel): hack up something that more or less works.  Call
23960         GridHScrolled/GridVScrolled directly, instead of duplicating much
23961         of their code here.
23962         (EnsureCellVisibility): reinstate a bunch of this code, since we
23963         can't just set the scrollbar Value and expect to do all the work
23964         in the ValueChanged handler.  Also, Call Update() after scrolling
23965         in one direction so the other XplatX11.ScrollWindow call has the
23966         proper stuff in the proper places.
23967         (EditCell): set is_editing to true before calling .Edit.
23968
23969         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
23970         don't bother comparing first.
23971         (OnKeyPress): call grid.ColumnStartedEditing before calling
23972         base.OnKeyPress.  this will set is_changing and invalidate the row
23973         header if necessary.
23974         (ProcessKeyMessage): for WM_CHAR messages, call
23975         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
23976         and WM_KEYDOWN.
23977         
23978         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
23979         it's done in the DataGrid.
23980         (NextState): call grid.ColumnStartedEditing, which takes care of
23981         invalidating the row header (and setting is_changing).
23982
23983         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
23984         here.  it's done in the DataGrid.
23985
23986 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23987
23988         * Control.cs: allow changing the cursor when the mouse position is
23989         out of bounds but Capture is set.
23990         * LinkLabel.cs: handle the case when the mouse button is pressed on the
23991         linklabel but released somewhere else.
23992
23993 2006-05-25  Jackson Harper  <jackson@ximian.com>
23994
23995         * TreeView.cs: When we get focus if there is no selected node make
23996         it the top node
23997         - Remove some uneeded setup code from Draw.
23998         * TreeNodeCollection.cs: If the tree doesn't have a top node when
23999         a new node is inserted make the new node the top.
24000         * XplatUIX11.cs:
24001         * Timer.cs: Use Utc time so that no local time zone stuff needs to
24002         be used (should be faster).
24003         
24004 2006-05-25  Chris Toshok  <toshok@ximian.com>
24005
24006         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
24007         problem with the last commit.
24008
24009 2006-05-25  Chris Toshok  <toshok@ximian.com>
24010
24011         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
24012         need the invalidate call here, while scrolling right-to-left via
24013         the left arrow key (i.e. moving the editing cell while scrolling).
24014
24015         * DataGrid.cs (.ctor): remove the initialization of
24016         ctrl_pressed/shift_pressed.  We no longer track them using key
24017         up/down handlers, but by using Control.ModifierKeys.  Also, switch
24018         to using ValueChanged handlers on the scrollbars instead of
24019         Scrolled event handlers.  This simplifies a bunch of the scrolling
24020         code.
24021         (GridHValueChanged): rename from GridHScrolled, and change it to
24022         work with the new event args.
24023         (GridVValueChanged): same.
24024         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
24025         (OnMouseWheel): actually scroll the datagrid.  Don't change the
24026         selected cell.
24027         (ProcessGridKey): correct all the keyboard navigation stuff I
24028         could find.  Ctrl up/down/left/right/home/end work now.
24029         (EnsureCellVisibility): correct method name spelling.  Also,
24030         simplify this a touch by not explicitly calling the
24031         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
24032         scrollbar value.
24033         (OnKeyUpDG): no need for this method now.
24034         
24035 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24036
24037         * LinkLabel.cs: display the OverrideCursor when hovering the label.
24038         Fixes bug #78392.
24039
24040 2006-05-25  Chris Toshok  <toshok@ximian.com>
24041
24042         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
24043         r61019.
24044
24045 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
24046
24047         * Application.cs: Moved setting of is_modal and closing to before
24048           we create the control, to allow the event handlers called as a
24049           result of creation affect closing. Also removed Gonzalo's previous
24050           change to setting DialogResult, the behaviour has been moved to 
24051           Form.ShowDialog()
24052         * Form.cs: 
24053           - ShowDialog(): Removed explicit creation of the form, let RunLoop
24054             handle it instead
24055           - ShowDialog(): If no dialog result is set, we need to return Cancel
24056           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
24057             the close is cancelled
24058
24059 2006-05-25  Jackson Harper  <jackson@ximian.com>
24060
24061         * StatusBar.cs: We only need to update the sizes of the other
24062         panels when we have auto size contents.  Also we are only updating
24063         the contents of the panel, not the borders, so compensate for the
24064         border width (TODO: get this width from the theme somehow).
24065         * TreeView.cs: Scrollable is true by default
24066         - Use invalidate instead of refresh where needed
24067         - Factor the scrollable value into scrollbar updating
24068         - Update the scrollbars if the Scrollable property is altered
24069         - Update the selected node if its ImageIndex is changed
24070         - Handle null nodes in UpdateNode (mainly so we don't have to
24071         check if selected is null when updating it
24072         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
24073         are factored into the visible count
24074         - Use VisibleCount for clarity in the code
24075         - When the font is changed we need to recurse through all the
24076         nodes and invalidate their sizes
24077         
24078 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24079
24080         * Application.cs: set the DialogResult to fixed when the main form is
24081         hidden or destroyed while being modal.
24082
24083 2006-05-25  Miguel de Icaza  <miguel@novell.com>
24084
24085         * Theme.cs: Use Tangoified messagebox icons. 
24086
24087         (GetSizedResourceImage): Also cope with width = 0 and do not
24088         trigger a warning in that case (0 means "give me your icon from
24089         the resouce, no special size needed).
24090
24091 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
24092
24093         * Application.cs: Leave runloop if the the main modal form is 
24094           hidden (fixes #78484)
24095
24096 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
24097
24098         * BindingContext.cs : reject null datasource in Contains() and
24099           Item[].
24100         * CurrencyManager.cs : check data_member validity when data_source
24101           is dataset. When it is late binding, the initial position is -1.
24102
24103 2006-05-24  Jackson Harper  <jackson@ximian.com>
24104
24105         * TreeNodeCollection.cs: Dont't recalculate the visible order on
24106         inserted nodes that aren't visible.  This changes the
24107         max_visible_order which confuses scrollbar settings.
24108         - Use the enumerator to get the prev node instead of duplicating
24109         code.
24110         * TreeView.cs: Use new method for setting scrollbar values
24111         - Don't set the bounds every time the scrollbar is updated
24112         - When updating below the root node use an invalidate instead of a
24113         refresh to prevent the child controls (scrollbars) from being
24114         refreshed. (UpdateBelow still needs to be reworked anyways).
24115         - Reenable SetBottom now that visible orders are set correctly,
24116         added some debug code incase we ever get bad values there again.
24117         - Set the scrollbar max to 2 less then the max value, this
24118         compensates for the max value being one above the node count, and
24119         for scrollbars adding one extra "notch".
24120         - When drawing image nodes if there is an imagelist we draw the
24121         first image in the list if the supplied image index is out of the
24122         image list's bounds.
24123         
24124 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
24125
24126         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
24127           we receive a size change from the WM (Fixes #78503)
24128
24129 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
24130
24131         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
24132           rectangle (Fixes #78501)
24133
24134 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
24135
24136         * ButtonBase.cs: 
24137           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
24138             as a bitfield.
24139           - Fixed MouseMove to no longer switch pressed state unless the left
24140             mouse button is pressed. Atsushi provided the original patch (#78485)
24141           
24142 2006-05-24  Jackson Harper  <jackson@ximian.com>
24143
24144         * ScrollBar.cs: New internal methods that allow us to change a
24145         couple values on the scrollbar (the most common case is maximum
24146         and large change) without getting multiple invalidates.
24147
24148 2006-05-24  Chris Toshok  <toshok@ximian.com>
24149
24150         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
24151         (Edit): save off the original state in oldState, and set
24152         grid.is_editing to true.
24153         (OnKeyDown): abort editing if escape is pressed.  also, call
24154         NextState if space is pressed.
24155         (OnMouseDown): call NextState.
24156         (NextState): factor out shared code from OnKeyDown and OnMouseDown
24157         here.  Also, only invalidate the row header once (on the initial
24158         is_changing switch) to save on redraws.
24159
24160 2006-05-24  Chris Toshok  <toshok@ximian.com>
24161
24162         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
24163         if the value in the cell is different than it was before.  This
24164         keeps us from triggering a layout when we move around a datarid
24165         with a highlighted cell.
24166         (Edit): suspend layout when creating/positining the text box, and
24167         resume passing false so we don't ever actually re-layout.
24168         (ReleaseHostedControl): same.
24169         (EnsureTextBox): reformat slightly, and set WordWrap to false.
24170
24171         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
24172         control-key sequences should go to the datagrid - remove that
24173         lock.  Also, modify the conditions under which we move between
24174         cells when moving the cursor within a cell, and remove the "this"
24175         and "base" from field accesses.  We weren't even consistent, given
24176         they all were in the base class.
24177
24178 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
24179
24180         * Binding.cs : (.ctor)
24181           An obvious NRE fix for BindingTest.CtorNullTest().
24182
24183 2006-05-23  Chris Toshok  <toshok@ximian.com>
24184
24185         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
24186         them between lines.  This fixes some quirks editing cells in the
24187         datagrid.
24188
24189 2006-05-23  Jackson Harper  <jackson@ximian.com>
24190
24191         * TreeView.cs: Use begin/end update when doing expand/collapse all
24192         so that we don't get flicker on the scrollbar.
24193
24194 2006-05-23  Jackson Harper  <jackson@ximian.com>
24195
24196         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
24197         treenode calculations to be independant of the painting code. To
24198         do this nodes track a visible order which is calculated by the
24199         treeview.
24200         - Call new methods for expanding/collapsing nodes.  These methods
24201         use scrollwindow so we don't have to update everything below the
24202         node.
24203         * TreeView.cs: Refactored drawing and scrolling code.  We don't
24204         need to update nodes when drawing anymore or calculate scrollbar
24205         stuff.
24206         - Added new methods for expanding/collapsing nodes. These methods
24207         use ScrollWindow so as to not have to redraw all the nodes below.
24208         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
24209         we add/remove nodes or sort.
24210         - Handle removing the selected and the top node properly.
24211
24212 2006-05-23  Chris Toshok  <toshok@ximian.com>
24213
24214         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
24215         maybe this should actually happen in the datagrid code?
24216         (EndEdit): no need to invalidate anything, given that
24217         ReleaseHostedControl causes the datagrid to relayout, which
24218         invalidates everything anyway.
24219
24220         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
24221         in SetCurrentCell).
24222         (set_SelectionBackColor): call InvalidateSelection instead of
24223         Refresh.
24224         (set_SelectionForeColor): same.
24225         (BeginEdit): Flesh this out a bit.
24226         (CancelEditing): only do any of this if we're editing/adding.
24227         (EndEdit): same.
24228         (OnMouseDown): there's no need to cancel editing here, it's done
24229         in SetCurrentCell.
24230         (SetCurrentCell): only invalidate the current row header if it's a
24231         different row than the new one.
24232         (ShiftSelection): fix this to work like MS does.
24233         (ResetSelection): factor out the invalidation of selected_rows to
24234         InvalidateSelection.
24235         (SetDataSource): cancel any editing that's going on.
24236
24237         * DataGridColumnStyle.cs
24238         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
24239         call the non-interface version.
24240
24241         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
24242         header rectangle with the clip rectangle so we don't redraw the
24243         entire header for just a small area.  Gets rid of the last flicker
24244         when horizontally scrolling.
24245         (DataGridPaintRow): same.
24246
24247 2006-05-23  Mike Kestner  <mkestner@novell.com>
24248
24249         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
24250         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
24251         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
24252         Critical bug report.
24253
24254 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
24255
24256         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
24257           and this fixes #78493
24258
24259 2006-05-23  Miguel de Icaza  <miguel@novell.com>
24260
24261         * Theme.cs (GetSizedResourceImage): Scale images if the proper
24262         size is not found.  
24263         
24264         * FileDialog.cs: Do not change the background for the side bar as
24265         it wont work nicely with the theme, and also reduces the artifacts
24266         in rendering the icons (which I want to fix too).
24267
24268         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
24269         resources, not resgen resources. 
24270
24271         (PlatformDefaultHandler): Pull images using the new API.
24272
24273 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
24274
24275         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
24276           a reference to the hwnd and will not remove it unless there are
24277           no pending exposures (fixes #78341)
24278         * XplatUI.cs: Improved debug
24279
24280 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
24281
24282         * MenuAPI.cs : don't handle OnClick event when it was not the left
24283           button. Fixed bug #78487.
24284
24285 2006-05-23  Mike Kestner  <mkestner@novell.com>
24286
24287         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
24288         prefer submenus to the top menu for item lookup, to avoid popping down
24289         top-row items.
24290
24291 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
24292
24293         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
24294           Graphics.FillRectangle as the visual results are really bad (even
24295           on win). We now draw perfect arrows (and perfect shadows when the
24296           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
24297           Pen.DashPattern to draw the dots of each line.
24298
24299 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
24300
24301         * FileDialog.cs: Update the filename combobox when navigating through
24302           the ListView with the cursor keys. Fixes part 7 of bug #78446.
24303
24304 2006-05-22  Mike Kestner  <mkestner@novell.com>
24305
24306         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
24307         Fixes #78463.
24308
24309 2006-05-22  Mike Kestner  <mkestner@novell.com>
24310
24311         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
24312         requests. Fix a misspelled parameter and a copy paste exception error
24313         in Select.
24314
24315 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
24316
24317         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
24318           to get the same width/height (5/13) on X11 as the default font has on
24319           win32. This means that our DefaultFont emSize is smaller than the 
24320           the MS SWF equivalent (even thought the width/height stays the same)
24321
24322 2006-05-20  Jackson Harper  <jackson@ximian.com>
24323
24324         * MdiClient.cs:
24325         * MdiWindowManager.cs:
24326         * InternalWindowManager.cs: Make sure to use the border width from
24327         the theme.
24328
24329 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
24330
24331         * PrintDialog.cs: Implements printer details
24332
24333 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
24334
24335         * FileDialog.cs: Added focus handling for PopupButtonPanel.
24336           Fixes part 1 and 2 of bug #78446
24337
24338 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
24339
24340         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
24341           instead of sticking to the first ever calculated value
24342
24343 2006-05-19  Mike Kestner  <mkestner@novell.com>
24344
24345         * ComboBox.cs: fix mouse motion selection to use MousePosition and
24346         PointToClient, since Capture is set. Fixes #78344.
24347
24348 2006-05-19  Mike Kestner  <mkestner@novell.com>
24349
24350         * ListView.cs: match MS behavior in Details view where items are not
24351         drawn if Columns.Count == 0. 
24352         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
24353         Use a separate pen to draw the check, since changing the width affects
24354         the box as well.  Fixes #78454.
24355
24356 2006-05-18  Miguel de Icaza  <miguel@novell.com>
24357
24358         * ListView.cs: ArgumentOutOfRangeException, single versions of the
24359         exception should throw the name of the invalid argument.
24360
24361         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
24362         there are no files listed. 
24363
24364 2006-05-18  Jackson Harper  <jackson@ximian.com>
24365
24366         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
24367         up.
24368
24369 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
24370
24371         * Control.cs: Brought back our old UpdateZOrder method as a private
24372           function and switched our calls from UpdateZOrder to the new one.
24373           This fixes the Paint.Net canvas disappearing bug.
24374
24375 2006-05-18  Jackson Harper  <jackson@ximian.com>
24376
24377         * Theme.cs:
24378         * ThemeWin32Classic.cs:
24379         * InternalWindowManager.cs: Move the drawing into the theme,
24380         expose everything the theme should need from the window manager.
24381
24382 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
24383
24384         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
24385           from the call to NativeWindow to avoid walking up the parent chain
24386           further than needed (speeds up setting cursors and avoids setting
24387           the wrong cursor if a parent has another cursor defined)
24388         * Cursor.cs: When loading an icon as cursor, MS uses the center of
24389           the icon as hotspot, not what's contained as hotspot in the icon
24390           file. This fixes the perceived drawing offset seen with Paint.Net
24391         
24392 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
24393
24394         * XplatUIX11.cs: 
24395           - Store the calculated rectangle in Hwnd object and use it when 
24396             setting the client size
24397           - Force Toolwindows to always be type Dock, to ensure they're on top
24398
24399 2006-05-18  Mike Kestner  <mkestner@novell.com>
24400
24401         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
24402         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
24403         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
24404         Substantial refactoring to remove confusing nested classes. Coding
24405         standard and Get+Set->property refactorings.  Shift to index based
24406         highlighting in ComboListBox instead of constantly using IndexOf and
24407         Items[]. Add invalidations on resize for DropDownList to fix ugliness
24408         in FileDialog growth.  Draw borders manually since Simple mode needs
24409         to look like two independent controls.  Make listbox border
24410         conditional to DropDownStyle.  Improved OwnerDraw support.
24411
24412 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
24413
24414         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
24415         Don't set the disposed graphics to null, so we can throw the "right"
24416         exception if the graphics is reused later (added a flag to avoid 
24417         double disposing). Some behaviours are different under 2.0 and are
24418         filled under bug #78448.
24419
24420 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
24421
24422         * Control.cs: When double-buffering is enabled, we need to reset
24423           our graphics context between paint calls. Otherwise, any 
24424           transformations and other alterations on the context will 
24425           become cumulative (#77734)
24426
24427 2006-05-18  Mike Kestner  <mkestner@novell.com>
24428
24429         * ListView.cs: do focused item selection like MS on clicks. 
24430         Rework focus handling for ItemControl so LostFocus invalidates as
24431         well.
24432         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
24433         the ListView ItemControl has focus.
24434
24435 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
24436
24437         * XplatUIX11.cs: If client_window ends up being width or height zero
24438           due to border settings, move it off window inside whole_window (#78433)
24439
24440 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
24441
24442         * Mime.cs: Shrink the mime file cache correctly.
24443
24444 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
24445
24446         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
24447
24448 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
24449
24450         * XplatUIX11.cs (AddExpose): More sanity checks
24451
24452 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
24453
24454         * XplatUIX11.cs:
24455           - AddExpose: Don't add expose ranges outside the size of our
24456             window
24457           - Cast opacity values to Int32 to avoid crashes with certain
24458             values
24459           - Added disabled code paths that protect against illegal cross-
24460             thread painting (Developers.exe)
24461
24462 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
24463
24464         * ProgressBar.cs: Invalidate the control when it's resized
24465           since block size is based on control size. (#78388)
24466
24467 2006-05-16  Miguel de Icaza  <miguel@novell.com>
24468
24469         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
24470         of setting the incoming argument to the "reset" value, we set the
24471         this.datamember to string.empty (before we were invalidating the
24472         incoming data).   
24473
24474         Fixes 78420
24475
24476 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
24477
24478         * Form.cs: Only apply transparency settings after the form
24479           is created. (Fixes #77800)
24480
24481 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
24482
24483         * ApplicationContext.cs: Grab the HandleDestroyed event so
24484           we know when to fire OnMainFormClosed 
24485
24486 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
24487
24488         * Application.cs: Introduced sub-class to allow tracking of
24489           threads and centralized triggering of the event mess for
24490           ThreadExit, AppExit, etc..  (#76156)
24491
24492 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
24493
24494         * MimeIcon.cs:
24495           - Do not return a null icon index value for a mime subclass.
24496             Instead try the main mime type class too.
24497           - Seems that some newer distributions don't have a link to some
24498             gnome default icons anymore. So check the default gnome dir too.
24499           
24500
24501 2006-05-16  Jackson Harper  <jackson@ximian.com>
24502
24503         * MdiClient.cs: Don't paint the parent background image if we have
24504         our own background image.
24505
24506 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
24507
24508         * Control.cs:
24509           - PerformLayout: Do not shrink space filled by DockStyle.Fill
24510             controls, all filled controls are supposed to overlap (#78080)
24511           - UpdateZOrder is supposed to update the control's z-order in the
24512             parent's z-order chain. Fixed to behave like that
24513           - BringToFront: Removed obsolete code
24514           - SendToBack: Simplyfied
24515           - SetChildIndex: Trigger layout calculations when Z-order changes
24516             since layout is done by z-order
24517
24518 2006-05-16  Chris Toshok  <toshok@ximian.com>
24519
24520         [ fixes bug #78410 ]
24521         * DataGrid.cs (set_AlternatingBackColor): use
24522         grid_drawing.InvalidateCells instead of Refresh().
24523         (set_BackColor): call grid_drawing.InvalidateCells.
24524         (set_BackgroundColor): use Invalidate instead of Refresh.
24525
24526         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
24527         invalidate the cell area.
24528
24529 2006-05-15  Chris Toshok  <toshok@ximian.com>
24530
24531         [ fixes bug #78011 ]
24532         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
24533         on to DataGridPaintRow.
24534         (DataGridPaintRow): take a clip argument, and only draw the cells
24535         which intersect it.  same with the not_usedarea.
24536
24537         * Theme.cs (DataGridPaintRow) add @clip parameter.
24538
24539         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
24540         XplatUI.ScrollWindow.
24541         (ScrollToRow): same.
24542
24543         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
24544         with last column which was causing a gray swath to appear with the
24545         XplatUI.ScrollWindow code.
24546
24547 2006-05-15  Chris Toshok  <toshok@ximian.com>
24548
24549         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
24550         use XplatUI.ScrollWindow.
24551         (VerticalScrollEvent): use XplatUI.ScrollWindow.
24552
24553 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
24554
24555         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
24556
24557 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
24558
24559         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
24560           file since there are no equivalent X11 cursors
24561
24562 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
24563
24564         * MonthCalendar.cs : DateTimePicker should reflect selected date
24565           on mouse*up*, not mouse*down*. Fixed originally reported part of
24566           bug #76474.
24567
24568 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
24569
24570         * TabControl.cs : When argument index is equal or more than tab
24571           count, just ignore. Fixed bug #78395.
24572
24573 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
24574
24575         * Control.cs: Dispose all child controls when control is diposed (#78394)
24576
24577 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
24578
24579         * ColorDialog.cs: Finally it is possible to select the color with
24580           the text boxes
24581
24582 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
24583
24584         * PrintDialog.cs: Fix typo
24585
24586 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
24587
24588         * PrintDialog.cs: PrintDialog is not resizable
24589         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
24590           color. Made some ToolBar drawing methods protected virtual.
24591
24592 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
24593
24594         * PrintDialog.cs: Implementation of the PrintDialog
24595
24596 2006-05-12  Chris Toshok  <toshok@ximian.com>
24597
24598         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
24599         thumb, instead use MoveThumb.  This has the side effect of making
24600         most of the other thumb moving machinery use MoveThumb as well.
24601         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
24602         need to actually invalidate the rectangle where the new thumb will
24603         go.
24604         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
24605         We force an Update() after, so it's not as fast as it could be,
24606         but at least there's zero flicker and no droppings.
24607         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
24608         (UpdateThumbPos): add another argument (dirty), which says whether
24609         or not to calculate/add dirty regions which we later invalidate.
24610         For cases where we know we're going to use MoveThumb, we pass
24611         false for this.  Otherwise, pass true.
24612
24613 2006-05-12  Jackson Harper  <jackson@ximian.com>
24614
24615         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
24616         the status bar.
24617         
24618 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
24619
24620         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
24621           and GetClipRegion methods and UserClipWontExposeParent property.
24622         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
24623           overriding UserClipWontExposeParent property, setting to false, since
24624           Win32 handles the required expose messages to draw our clipped parent
24625           areas internally
24626         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
24627           PaintEventStart to set the user clip region if set.
24628         * Control.cs: 
24629           - Now internally tracking the Region for the control since we need to
24630             store it if the handle is not yet created and only set it when it
24631             becomes created. Before setting the region forced handle creation
24632           - Added code to draw the parents underneath a user-clipped region
24633         * Hwnd.cs: Added UserClip property
24634
24635 2006-05-12  Chris Toshok  <toshok@ximian.com>
24636
24637         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
24638         (set_Maximum): same.
24639         (set_Minimum): same.
24640         (set_SmallChange): same.
24641         (OnMouseUpSB): remove the call to refresh when releasing the
24642         thumb.  We shouldn't need it.
24643         
24644 2006-05-12  Miguel de Icaza  <miguel@novell.com>
24645
24646         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
24647         AutoSize set to None, we do not need to relayout everything, we
24648         just need to invalidate the current region.
24649
24650         (Draw): Do not draw the entire ClientArea, just redraw the
24651         clip area being passed.
24652
24653         * MdiClient.cs: Make MdiClient constructor with the Form argument
24654         internal. 
24655
24656 2006-05-12  Jackson Harper  <jackson@ximian.com>
24657
24658         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
24659         parents background image,  but strangely not their own.
24660         - (DrawStatusBarPanel): Take into account horizontal alignment
24661         when drawing the strings and icons.
24662
24663 2006-05-12  Mike Kestner  <mkestner@novell.com>
24664
24665         * ListBox.cs: avoid invalidations for focus when the collection is
24666         empty. 
24667
24668 2006-05-12  Chris Toshok  <toshok@ximian.com>
24669
24670         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
24671         invalidate the entire thumb area.  Call InvalidateDirty which
24672         limits the redraw to the thumb itself and surrounding pixels.
24673
24674         * XplatUIX11.cs (ScrollWindow): optimize copying.
24675         
24676 2006-05-12  Chris Toshok  <toshok@ximian.com>
24677
24678         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
24679         Figure out the positioning/layout in a single pass instead of
24680         multiple recursive invocations.  Speeds up the initial display of
24681         the data grid.  Also, make many things private that were
24682         originally public but unused outside this class.
24683
24684 2006-05-11  Jackson Harper  <jackson@ximian.com>
24685
24686         * MdiClient.cs: Improved layout code.
24687
24688 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
24689
24690         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
24691           not SelectedObject.
24692
24693 2006-05-11  Chris Toshok  <toshok@ximian.com>
24694
24695         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
24696         union of that will always be {0,0,width,height}.
24697
24698 2006-05-11  Jackson Harper  <jackson@ximian.com>
24699
24700         * Form.cs: Match MS's DefaultSize for forms (they must have
24701         changed the size in sp2).
24702
24703 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
24704
24705         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
24706
24707 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
24708
24709         * TextControl.cs : Fixed bug #78109. This incorrect position
24710           comparison caused crash on automatic line split.
24711         * TextBoxBase.cs : reduce duplicate code.
24712
24713 2006-05-10  Jackson Harper  <jackson@ximian.com>
24714
24715         * MdiClient.cs: Active form is only sent to the back when using
24716         the Next form functionality, when a form is clicked the current
24717         active shouldn't be sent to the back.
24718         - Layout the mdi windows when the container is first made visible.
24719         * Form.cs: Give the MdiClient a ref to the containing form when we
24720         create it.
24721         
24722 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
24723
24724         * LinkLabel.cs : link_font could be uninitialized, so populate one
24725           before actual use. Fixed bug #78340.
24726
24727 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
24728
24729         * XplatUIX11.cs : clipboard format native value is IntPtr.
24730           Fixed bug #78283.
24731
24732 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
24733
24734         * Control.cs: 
24735           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
24736             which is passed up the parent chain by DefWndProc
24737           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
24738             to DefWndProc (#77956)
24739         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
24740
24741 2006-05-10  Jackson Harper  <jackson@ximian.com>
24742
24743         * MdiClient.cs: We need to remove the controls from the mdi
24744         collection, when we close the window.
24745         * MdiWindowManager.cs: Special handling of closing mdi windows.
24746         * InternalWindowManager.cs: Make the close method virtual so the
24747         mdi window manager can handle it specially.
24748
24749 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
24750
24751         * DataGrid.cs:
24752           - Recalculate grid when the data source has changed
24753           - Matches styles provided by user from all data sources types
24754         * DataGridTableStyle.cs: For columns that provided by the user set the
24755         with the preferred value is there was unassigned.
24756         * CurrencyManager.cs: throw OnItemChanged event
24757
24758 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
24759
24760         * PictureBox.cs: Don't animate until handle is created. Start animation
24761           when handle is created.
24762
24763 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
24764
24765         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
24766           current codebase.
24767         * XEventQueue.cs: We don't need to provide the extra info
24768
24769 2006-05-10  Jackson Harper  <jackson@ximian.com>
24770
24771         * MdiClient.cs: If the mdi clients parent form has a background
24772         image set, we draw that background image for the mdi area's
24773         background.
24774
24775 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
24776
24777         * TextBoxBase.cs: Set IBeam cursor (#78347)
24778
24779 2006-05-10  Mike Kestner  <mkestner@novell.com>
24780
24781         * ToolBar.cs: fix some text padding issues with ButtonSize
24782         calculation. Update the default size to match MS documentation.
24783         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
24784         button size. Fixes #78296.
24785
24786 2006-05-10  Mike Kestner  <mkestner@novell.com>
24787
24788         * ListBox.cs: use is_visible for scrollbar positioning in case the
24789         control isn't on screen yet.  Fix off by one with Right vs Width
24790         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
24791         
24792 2006-05-10  Jackson Harper  <jackson@ximian.com>
24793
24794         * X11Dnd.cs: Drop to a control with another control on top of it.
24795         * ToolBar.cs: Work on a copy of the buttons list, so that it can
24796         be modified in click handlers. TODO: Look for similar problems in
24797         other controls.
24798
24799 2006-05-09  Jackson Harper  <jackson@ximian.com>
24800
24801         * Form.cs: Window managers need the old window state when setting
24802         window state now.
24803         * InternalWindowManager.cs: Allow the base mdi window manager to
24804         handle more of the MDI only stuff (like maximize buttons).
24805         * MdiWindowManager.cs: Fix some snafus in changing the window
24806         state.  Add all the menu functionality, for both popup and
24807         maximized menus.
24808         * MdiClient.cs: When a new form is selected the currently
24809         activated form is sent to the back, this matches MS.
24810         - Implement a new method to activate the next mdi child window.
24811
24812 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
24813
24814         * Control.cs: 
24815           - Added new InternalCapture method to allow controls to prevent
24816             the capture behaviour on the click handlers
24817           - Switched to use InternalCapture
24818         * ComboBox.cs:
24819           - Using InternalCapture to prevent mouse captures from being released
24820             on mouse button release (Fixes #78100)
24821         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
24822           returns Form borders if a caption is present. (Fixes #78310)
24823
24824 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
24825
24826         * TreeNode.cs: Changed serialization .ctor to not require every field
24827           to be present. (#78265)
24828         * OwnerDrawPropertyBag.cs: Added serialization .ctor
24829
24830 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
24831
24832         * MimeIcon.cs: for is faster than foreach for strings.
24833
24834 2006-05-05  Mike Kestner  <mkestner@novell.com>
24835
24836         * CheckedListBox.cs: update check handling code to not use selected.
24837         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
24838         behavior for visual feedback, motion response, shift/ctrl handling,
24839         and properly deal with all 4 selection modes. Updates to bounds
24840         handling logic.  Add scroll wheel support. [Fixes #77842]
24841
24842 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
24843
24844         * ListView.cs:
24845           - Moved adding of Implicit controls into .ctor. That way, subsequent
24846             creation of the controls will not cause them to think they are 
24847             toplevel windows (fixes #78200 header problem)
24848           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
24849           - Switched visibility setting of header control to use internal field
24850             to avoid triggering handle creation
24851           - Now checking if handle is created before causing a refresh when items
24852             are added (This makes us now match handle creation time with MS)
24853         * Splitter.cs: Removed loading of private splitter cursor, switched to
24854           Cursors version now that that is loading the right ones
24855         * Cursors.cs: Load proper splitter cursors from resources
24856         * Cursor.cs: Added second method of loading resource cursors for the 
24857           VS.Net users amongst us
24858
24859 2006-05-05  Mike Kestner  <mkestner@novell.com>
24860
24861         * ListView.cs: give header_control a minimum size based on the
24862         ListView size.
24863
24864 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
24865
24866         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
24867           window seems to do that with metacity, so set that type. (#78120)
24868
24869 2006-05-05  Mike Kestner  <mkestner@novell.com>
24870
24871         * ListViewItem.cs: fix Details mode checkbox layout bug.
24872         * ThemeWin32Classic.cs: draw a ListView column header for unused space
24873         at the end of the header, if it exists. [Fixes for #78200]
24874
24875 2006-05-04  Jackson Harper  <jackson@ximian.com>
24876
24877         * MdiClient.cs: Add a helper property to get the container form.
24878         * MdiWindowManager.cs: We have to make sure to use the menu origin
24879         when drawing the icons and buttons, this fixes maximized window
24880         icons/buttons on win32.
24881         * InternalWindowManager.cs: Reset the restore captions when a
24882         window goes from Maximized to Minimized and vice versa. Move the
24883         DrawMaximizedButtons into the MdiWindowManager source, tool
24884         windows can't be maximized. NOTE: This could use a little
24885         refactoring if time ever permits.
24886         
24887 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
24888
24889         * TextBox.cs: Add MWFCategoryAttributes
24890         * TextBoxBase.cs: Add MWFCategoryAttributes
24891         * Form.cs: Add MWFCategoryAttributes
24892
24893 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
24894
24895         * Control.cs: Add MWFCategoryAttributes
24896         * ScrollableControl.cs: Add MWFCategoryAttributes
24897
24898 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
24899
24900         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
24901           Divider is true. Fix a little glitch in PropertyToolBar
24902           drawing code
24903
24904 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
24905
24906         * Control.cs:
24907           - Dispose: Call base.Dispose, this causes the disposed event
24908             to be fired (and probably other, more important stuff)
24909           - SetVisibleCore: Set is_visible to true after creating the
24910             window so that the window still gets created invisible (if
24911             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
24912             to generate a WM_ACTIVE message
24913         * Form.cs: Call Dispose when we want to destroy the window, instead of
24914           just destroying the handle (Dispose will do that for us)
24915         * XplatUIX11.cs:
24916           - RootWindow also needs a queue, so we can properly process the
24917             property change events from RootWindow (like Activate)
24918           - Generatic synthetic WM_ACTIVE message when the active window is
24919             being destroyed
24920
24921 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
24922
24923         * LinkLabel.cs: Trigger a recalc of our label dimensions when
24924           bounds are changed
24925
24926 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
24927
24928         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
24929           for determining width and height (image might not be assigned if
24930           we're drawing an imagelist)
24931
24932 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
24933
24934         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
24935         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
24936           height from system
24937         * Theme.cs: No longer returns hardcoded menu height, instead calls
24938           new driver method
24939         * Form.cs (OnLoad): Scaling happens before triggering Load events 
24940           on MS (# 78257)
24941
24942 2006-05-01  Mike Kestner  <mkestner@novell.com>
24943
24944         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
24945
24946 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
24947
24948         * TextBoxBase.cs: Removed Fixme
24949         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
24950
24951 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
24952
24953         * XplatUIX11.cs:
24954           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
24955             the rectangle relative to the parent, considering borders. We
24956             don't really want that.
24957           - ScrollWindow: Fixed warning to be more understandable
24958         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
24959           scrollbars and scroll only the visible area
24960         * RichTextBox.cs: Removed debug output
24961
24962 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
24963
24964         * NumericUpDown.cs (Text): Just use base
24965         * UpDownBase.cs: Ensure txtView is created before using it
24966
24967 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
24968
24969         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
24970           casting to IntPtr to avoid 64bit overflow errors
24971
24972 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
24973
24974         * Control.cs:
24975           - AllowDrop: Don't force handle creation.
24976           - CreateHandle: Added call to tell driver if we're allowed to drop
24977
24978 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
24979
24980         * FileDialog.cs: Remember the last directory not only for the
24981           current instance but also for new FileDialog instances.
24982
24983 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
24984         
24985         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
24986           broke sending async messages
24987
24988 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
24989
24990         * XplatUIX11.cs:
24991           - ScrollWindow: Fixed method. We finally generate expose events again
24992             for scrolled areas. This was causing 'garbage' when scrolling
24993             textbox and other controls that used ScrollWindow
24994           - Switched from using the regular queue for paint events to the MS 
24995             model of 'generating' paint events when the queue is empty.
24996             We use the new XQueueEvent.Paint subclass to store which windows
24997             need painting.
24998           - AddExpose now takes the x/y/width/height of the exposed area
24999             and inserts the window into the paint queue if not already there
25000           - InvalidateWholeWindow: Switched to use new AddExpose method
25001           - UpdateMessageQueue: Added which queue to monitor for paint events
25002           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
25003             the unlikely case nothing above handles it. We reset the expose
25004             pending states to get them off the queue.
25005           - GetMessage: Now pulls a paint event if no other events are in the
25006             queue
25007           - Invalidate: Switched to new AddExpose method
25008           - PeekMessage: Updated to understand pending paint events
25009           - UpdateWindow: Fixed logic bug. We were only updating if the window
25010             didn't need updating. Also switched to sending WM_PAINT directly,
25011             like MS does.
25012         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
25013           and random access Remove(). The random access is needed to handle
25014           UpdateWindow() where a WM_PAINT is sent directly without accessing
25015           the queue.
25016         * ScrollBar.cs: Added Update() calls to cause immediate updates to
25017           allow for better feedback when scrolling. Scrollbars are small and
25018           the immediate update should make it 'feel' more responsive without
25019           slowing things down. ScrollBar still needs it's invaliate logic
25020           updated to not always invalidate the whole bar on certain changes.
25021
25022 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25023
25024         * Control.cs:
25025         (BackColor): if the control does not support a transparent background,
25026         return the default backcolor when the parent backcolor is transparent.
25027
25028 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
25029
25030         * Application.cs: Updated to new StartLoop/GetMessage API
25031         * RichTextBox.cs: Provide some output on RTF parsing errors
25032         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
25033           new queue_id argument to GetMessage and PeekMessage to allow faster
25034           handling of per-thread queues in drivers.
25035         * Hwnd.cs: Added Queue tracking and property
25036         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
25037         * XEventQueue.cs: Added thread trackingA
25038         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
25039         * XplatUIX11.cs:
25040           - Implemented new per-thread queue
25041           - GetMessage: Fixed return/break behaviour on several cases. We were
25042             returning stale messages in some cases, instead of just processing
25043             the next message
25044
25045 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
25046
25047         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
25048
25049 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
25050
25051         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
25052           fixed off-by-one comparisons between Width/Height and Right/Bottom.
25053
25054 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
25055
25056         * PropertyGridView.cs: Fix drop down width.
25057
25058 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
25059
25060         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
25061           a mess in DrawToolBar, so I removed one of them.
25062
25063 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
25064
25065         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
25066           needed (clip). Otherwise we get artifacts.
25067
25068 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
25069
25070         * FixedSizeTextBox.cs: Added constructor to allow specifying which
25071           dimension is fixed
25072         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
25073           and switched FixedSizeTextBox to only be fixed vertical (#78116)
25074         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
25075           if it matches the scale base font (avoids unneeded scaling)
25076
25077 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
25078
25079         * X11DesktopColors.cs: One gtk_init_check should be enough
25080
25081 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
25082
25083         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
25084           match MS behaviour
25085
25086 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
25087
25088         * TextBoxBase.cs: 
25089           - Generate OnTextChanged for Backspace even if we're only deleting
25090             the current selection
25091           - When setting the Text property, only select all text if the
25092             control does not have focus when it is being set. Otherwise
25093             just place the cursor at the beginning of the control
25094
25095 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
25096
25097         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
25098           Added a little helper to draw PropertyGrid ToolBar with a different
25099           border and a different BackColor.
25100         * PropertyGrid.cs: Some background parts didn't get painted with the
25101           correct background color. Added a class that helps us to draw the
25102           correct border for PropertyGridView and a class that helps us to
25103           draw ToolBars with a different backcolor
25104         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
25105
25106 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
25107
25108         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
25109         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
25110
25111 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
25112
25113         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
25114           into the palette entries. Also, since we're working on a copy
25115           we needed to copy the palette back onto the bitmap.
25116         * Cursor.cs: Same fix as XplatUIWin32.cs.
25117
25118 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
25119
25120         * ImageListStreamer.cs: Need to read the var (or we're off)
25121
25122 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
25123
25124         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
25125           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
25126           TextBoxBase.cs: Unused var fixes
25127         * AxHost.cs: Small 2.0 fix
25128         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
25129           as it seems that is what at least Metacity expects. This will make
25130           icons show up on 64bit platforms. We still have some 64bit size
25131           issues, though, since the startup app window size still won't match.
25132
25133 2006-04-25  Mike Kestner  <mkestner@novell.com>
25134
25135         * *.cs: cleanup newly reported exception var unused warnings.
25136
25137 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
25138
25139         * ThemeWin32Classic.cs: Button image alignment now matches exactly
25140           ms
25141
25142 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
25143
25144         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
25145           image. The image position is always the same, no matter if the
25146           button is pressed or not.
25147
25148 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
25149
25150         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
25151           selection and set the correct filename for SaveFileDialog.
25152           Patch by Emery Conrad.
25153
25154 2006-04-24  Mike Kestner  <mkestner@novell.com>
25155
25156         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
25157         check for item.X outside the ClientRect instead of item.Y. Fixes
25158         #78151.
25159
25160 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25161
25162         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
25163         trust that value blindly and do some sanity check. Fixes bug #77814.
25164
25165 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25166
25167         * ImageListStreamer.cs: save the mask as a 1bpp image.
25168
25169 2006-04-21  Mike Kestner  <mkestner@novell.com>
25170
25171         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
25172         pass Checked and Indeterminate to the Theme Engine. Improve
25173         encapsulation with ListBox.
25174         * ListBox.cs: Keep a StringFormat instead of calculating it every item
25175         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
25176         nested types.  Move all CheckState functionality to CheckedListBox.
25177         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
25178         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
25179         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
25180         single base list. Fix scrollbar sizing and placement to mirror MS.
25181         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
25182         used.
25183         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
25184         for CheckedListBox by using new DrawItemState info.  Center the
25185         checkboxes on the items. Use new StringFormat property.
25186
25187 2006-04-18  Jackson Harper  <jackson@ximian.com>
25188
25189         * Form.cs: MdiChildren don't do default locations the same way as
25190         regular forms.  This prevents a crash when trying to position the
25191         mdi windows.
25192
25193 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
25194
25195         * PropertyGridTextBox.cs: Formatting, copyright
25196         * PropertiesTab.cs: Formatting
25197         * PropertyGrid.cs: Formatting
25198         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
25199           click toggling of values
25200           
25201 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
25202
25203         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
25204         * Control.cs (.ctor): verify_thread_handle is static, don't reset
25205           every time a control is created
25206         * Application.cs: Removed obsolete EnableRTLMirroring method
25207
25208 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
25209
25210         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
25211         SelectedIndex to -1. Fixes bug #78121.
25212
25213 2006-04-17  Jackson Harper  <jackson@ximian.com>
25214
25215         * Binding.cs: Handle null values for Current and BindingContext.
25216         This occurs when binding is a little delayed.
25217         * CurrencyManager.cs: return null for Current when there are no
25218         items in the list.
25219         - Hookup to the listchanged event on the DataView and update
25220         bindings when the list is changed.  This fixes late binding of
25221         controls.
25222
25223 2006-04-17  Jackson Harper  <jackson@ximian.com>
25224
25225         * X11Dnd.cs:
25226         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
25227         Ringenbach.
25228
25229 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
25230
25231         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
25232           place
25233         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
25234           with the correct ButtonState
25235
25236 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
25237
25238         * XplatUIX11.cs: Improved distinguishing between window types to
25239           tell the WM a type closer to what the app wants (Fixes #78107)
25240
25241 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
25242
25243         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
25244           GrabHandle
25245
25246 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
25247
25248         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
25249           drawing code to reflect the size grip changes
25250
25251 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25252
25253         * ImageListStreamer.cs: fix handling of the mask that follows the main
25254         bitmap when deserializing and serialize it properly. The generated mask
25255         should better be a 1bpp image, but I'll do that later.
25256
25257 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
25258
25259         * FileDialog.cs: Show something in the DirComboBox on *nix if the
25260           path doesn't fit into some of our Current.Places
25261
25262 2006-04-13  Jackson Harper  <jackson@ximian.com>
25263
25264         * ComboBox.cs: Use borders instead of drawing our own decorations,
25265         try to obey correct rules for heights.
25266         * Theme.cs:
25267         * ThemeNice.cs:
25268         * ThemeClearLooks.cs:
25269         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
25270         this is now handled by borders.
25271         - Remove unused DrawListBoxDecorationSize method.
25272         
25273 2006-04-13  Mike Kestner  <mkestner@novell.com>
25274
25275         * MenuAPI.cs: null guarding for the disbled click check fixes crash
25276         reported by Alex.
25277
25278 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
25279
25280         * ThemeWin32Classic.cs: 
25281           - Fixed CPDrawStringDisabled
25282           - Corrected drawing of disabled menu items
25283           - Fixed drawing of disabled radio buttons (bug #78095)
25284           - Draw check in a disabled CheckBox with color ControlDark 
25285
25286 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
25287
25288         * Form.cs: Use the provided width when calculating the menu size;
25289           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
25290           and ClientSize.Width won't be updated yet
25291         * Application.cs: Use Visible instead of Show() to make form visible,
25292           this way we create the handle later and menusize is considered
25293
25294 2006-04-12  Mike Kestner  <mkestner@novell.com>
25295
25296         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
25297         reporting.
25298
25299 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
25300
25301         * TextBox.cs: Implemented context menu
25302
25303 2006-04-12  Mike Kestner  <mkestner@novell.com>
25304
25305         * ListView.cs: implement box selection. fixes #77838.
25306         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
25307
25308 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
25309
25310         * XplatUIX11.cs: Added setting of window type when transient window
25311           is created (metacity would move it otherwise)
25312         * X11Structs.cs: Added WINDOW_TYPE atoms
25313         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
25314           background (the control is Opaque but still wants transparent
25315           backgrounds)
25316
25317 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
25318
25319         * Control.cs: Added OnPaintBackgroundInternal to allow controls
25320           that set Opaque but don't mean it (like all ButtonBase-derived
25321           controls) to still draw their background
25322         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
25323           the background
25324
25325 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
25326
25327         * Control.cs (PaintControlBackground): Set the graphics object
25328           on our PaintEvent to null to prevent it from being disposed
25329           when the PaintEvent gets disposed
25330
25331 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
25332
25333         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
25334         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
25335
25336 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
25337
25338         * Control.cs: 
25339           - Added transparency check to BackColor property. Transparent
25340             backgrounds are only allowed if the control styles permit it
25341           - Added recursive painting of parent control background and
25342             foreground if a control with a transparent backcolor is drawn
25343             (Thanks to Tim Ringenback for providing his 'hack' as a base
25344              for this patch) Fixes #77985 and #78026.
25345           - Added Opaque style check before calling OnPaintBackground, no
25346             need to draw the background if the control is opaque
25347           - Removed ControlAccessibleObject owner variable (inherited from
25348             base, no need to define again)
25349           - Added some documentation links explaining the drawing events
25350             and styles
25351
25352 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
25353
25354         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
25355           that the affected control is the located at the left border of our
25356           parent (Fixes #77936)
25357
25358 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
25359
25360         * TextBoxBase.cs: When rendering disabled or readonly controls,
25361           draw the background with 'Control' instead of 'Window' color as
25362           long as the user hasn't specifically set a color
25363
25364 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
25365
25366         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
25367           since that won't be updated if the user types text (only if it's
25368           programatically set)
25369
25370 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
25371
25372         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
25373           layout changes do to app-triggered resizes will have the proper
25374           display rectangle for layout
25375
25376 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
25377
25378         * ThemeWin32Classic.cs:
25379           - Make use of the SystemBrushes and SystemPens wherever possible
25380           - Corrected some highlight colors
25381           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
25382             drawing
25383         * Theme.cs: Added Empty field to CPColor struct
25384
25385 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
25386
25387         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
25388           is displayed when calculating the display rectangle. Thanks to Mike
25389           for teaching me the err of my ways.
25390
25391 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
25392
25393         * ScrollableControl.cs:
25394           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
25395             (instead of 0,0) and we now return the real width/height instead of
25396             just the clientrectangle, adjusted for padding. The rectangle is
25397             now cached and created by the new CalculateDisplayRectangle method.
25398           - Created new CalculateDisplayRectange method, which basically does
25399             what get_DisplayRectangle() did originally, but now using the 
25400             right edge instead of DisplayRectangle to determine the size of
25401             our scrollbars
25402           - get_Canvas(): Fixed it to properly calculate canvas for 
25403             right/bottom controls which seem to be placed to the right/bottom
25404             of any controls that have a fixed location
25405           - Removed TODO that's taken care of
25406           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
25407             and SetDisplayRectLocation according to new MSDN2 docs
25408           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
25409             event when that is called, this is added for compatibility
25410           - ScrollControlIntoView(): Implemented.
25411           - Switched scrollbars to be implicit, they shouldn't be selectable
25412         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
25413           call it when the active control is set/changed
25414         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
25415         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
25416           implicit_control variable (used for native Win32 message generation)
25417         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
25418           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
25419         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
25420         * XplatUIStructs.cs: Added ScrollBarCommands enum
25421
25422 2006-04-10  Jackson Harper  <jackson@ximian.com>
25423
25424         * ButtonBase.cs:
25425         * CheckedListBox.cs:
25426         * ComboBox.cs:
25427         * DataGrid.cs:
25428         * DataGridView.cs:
25429         * Form.cs:
25430         * GroupBox.cs:
25431         * ListBox.cs:
25432         * PrintPreviewControl.cs:
25433         * ProgressBar.cs:
25434         * PropertyGrid.cs:
25435         * Splitter.cs:
25436         * StatusBar.cs:
25437         * TrackBar.cs:
25438         * UpDownBase.cs: Fixup base event overrides.
25439         
25440 2006-04-06  Mike Kestner  <mkestner@novell.com>
25441
25442         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
25443         all user-initiated value changes to min <= value <= max-thumbsz+1.
25444         (set_Value): check for vert/horiz when calculating new thumb position.
25445         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
25446         like MS does.
25447         (OnMouseMoveSB): refactor the thumb dragging code and refine
25448         invalidation logic to reduce flicker.
25449         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
25450         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
25451         (UpdateThumbPosition): small code readability cleanup
25452
25453 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
25454
25455         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
25456           different
25457
25458 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
25459
25460         * ThemeNice.cs: Use a better graphics effect when a button is pressed
25461
25462 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
25463
25464         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
25465         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
25466           This dramatically reduces the number of Pen.Dispose calls. 
25467           Where possible call ResPool methods only once instead of calling it
25468           over and over again (for example for the same color).
25469
25470 2006-04-06  Mike Kestner  <mkestner@novell.com>
25471
25472         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
25473         Also remove an unused private field on the collection. Fixes #77972.
25474
25475 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
25476
25477         * ThemeNice.cs: Added ToolBar drawing code
25478
25479 2006-04-06  Mike Kestner  <mkestner@novell.com>
25480
25481         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
25482         I'm assuming that means we need to look up the toplevel for the
25483         provided control. Fixes the crash trace in #77911 but exposes another
25484         crash in some strange reflection usage in NDocGui.
25485
25486 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
25487
25488         * ThemeNice.cs: Gave it a little silver touch and added Images
25489           method
25490         * FontDialog.cs: FontDialog is not resizable
25491         * FileDialg.cs: Added SizeGripStyle.Show
25492
25493 2006-04-05  Jackson Harper  <jackson@ximian.com>
25494
25495         * KeyboardLayouts.cs: Remove warning.
25496
25497 2006-04-05  Jackson Harper  <jackson@ximian.com>
25498
25499         * Control.cs: Enable OnPaintInternal so we can use it for drawing
25500         all of our controls instead of Paint +=.
25501         * ListBox.cs:
25502         * ListView.cs:
25503         * MenuAPI.cs:
25504         * MessageBox.cs:
25505         * NotifyIcon.cs:
25506         * ProgressBar.cs:
25507         * ScrollBar.cs:
25508         * Splitter.cs:
25509         * StatusBar.cs:
25510         * TabControl.cs:
25511         * TextBoxBase.cs:
25512         * ToolBar.cs:
25513         * TrackBar.cs:
25514         * UpDownBase.cs:
25515         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
25516         use OnPaintInternal. Remove Width/Height and Visible checks in
25517         paint handler, this is done at a higher level now.
25518         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
25519         * PaintEventArgs.cs: Add a handled flag so controls that don't
25520         want anymore painting after OnPaintInternal can make sure OnPaint
25521         isn't called.
25522
25523 2006-04-05  Mike Kestner  <mkestner@novell.com>
25524
25525         * Form.cs: fix the menu WndProc hacks to respect the native enabled
25526         state of the form, so that we don't process events when Modal dialogs
25527         are up. Fixes #77922.
25528
25529 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
25530
25531         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
25532           checking is done.
25533
25534 2006-04-05  Mike Kestner  <mkestner@novell.com>
25535
25536         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
25537
25538 2006-04-05  Mike Kestner  <mkestner@novell.com>
25539
25540         * ListView.cs (HeaderMouseMove): null guarding for the over column
25541         when setting up the drag_to_index.  Fixes #78015.
25542
25543 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
25544
25545         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
25546           in the taskbar. Transient windows seem to accomplish that.
25547
25548 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
25549
25550         * Form.cs:
25551           - Re-enabled CreateParams.X/Y code for FormStartPosition
25552           - Added code for manual placement when creating the Control
25553           - Incomplete patch to treat MDI forms differently when
25554             setting the ClientSizeCore. (Still need to figure out handling
25555             x/y coords there)
25556         * XplatUIX11.cs:
25557           - When we're explicitly setting the X/Y position of a non-Child
25558             window, let the WM know. Metacity really wants this.
25559
25560 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
25561
25562         * ThemeNice.cs: Added CPDrawButton
25563
25564 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
25565
25566         * ThemeNice.cs: Changed the color for focused buttons and activated
25567           the arrows for small scroll buttons.
25568
25569 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
25570
25571         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
25572           anymore. Changed some method modifiers to protected (virtual)
25573         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
25574           changes
25575         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
25576           Updated drawing of menus, buttons and progressbars; added
25577           CPDrawBorder3D 
25578
25579 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25580
25581         * ImageListStreamer.cs: implemented serialization/deserialization
25582         of the images.
25583
25584 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
25585
25586         * ThemeWin32Classic.cs:
25587           - Removed all the DrawFrameControl stuff; CPDrawButton,
25588             CPDrawCheckBox and CPDrawRadioButton are now handled directly
25589             inside the methods
25590           - Updated and corrected the drawing code of CPDrawButton,
25591             CPDrawCheckBox and CPDrawRadioButton to better match ms
25592           - Updated theme checkbox and radiobutton code to use the CP*
25593             methods
25594
25595 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
25596
25597         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
25598           bug is fixed
25599
25600 2006-03-31  Jackson Harper  <jackson@ximian.com>
25601
25602         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
25603         sometimes.
25604         * UpDownBase.cs: Don't CreateGraphics manually, use a
25605         Refresh. Ideally we would invalidate the correct areas here.
25606
25607 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
25608
25609         * XplatUIX11.cs: 
25610           - We now track the mapping state of windows. If a window (or 
25611             one of it's parents) is not mapped we no longer permit
25612             WM_PAINT messages to be generated since we'd otherwise get 
25613             lots of BadMatch X errors. Jackson did all the work figuring
25614             out the problem.
25615           - Destroying the caret if the window it's contained in is 
25616             destroyed. Can't use regular DestroyCaret method since it
25617             might fall into a drawing function (trying to remove the
25618             caret) and with that generate new BadMatch errors. Again,
25619             Jackson tracked this down.
25620           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
25621             make sure we send the messages to all windows. (The old code
25622             would send the WM_DESTROY to the window, and then all child
25623             windows would be 'gone' because the WM_DESTROY handle lookup
25624             would no longer find the destroyed window)
25625         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
25626         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
25627
25628 2006-03-31  Jackson Harper  <jackson@ximian.com>
25629
25630         * ScrollableControl.cs: Dont recalc if we are not visible.
25631
25632 2006-03-31  Mike Kestner  <mkestner@novell.com>
25633
25634         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
25635         the visibility branch.
25636
25637 2006-03-31  Jackson Harper  <jackson@ximian.com>
25638
25639         * ScrollBar.cs: Cap values when incrementing/decrementing.
25640
25641 2006-03-31  Mike Kestner  <mkestner@novell.com>
25642
25643         * MenuAPI.cs: setup menu.tracker for popup/context menus.
25644         * ToolTip.cs: guard against timer expirations with no active control.
25645         Not sure why it happened.
25646
25647 2006-03-31  Mike Kestner  <mkestner@novell.com>
25648
25649         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
25650         text.
25651         * ToolTip.cs: Position the tooltip based on where the cursor is at
25652         popup time, not at MouseEnter time.  Add a Down state so that we don't
25653         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
25654         positioning offset. Lookup DisplaySize at positioning time, since it
25655         can theoretically change during invocation.
25656         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
25657         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
25658
25659 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
25660
25661         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
25662           Fixes behaviour when the Text property of the box is String.Empty
25663
25664 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
25665
25666         * XplatUIX11.cs: Only send mouseleave for our client windows, not
25667           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
25668           a window)
25669
25670 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
25671
25672         * FileDialog.cs: Visual enhancement for the popup buttons in 
25673           PopupButtonPanel
25674
25675 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
25676
25677         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
25678           code
25679
25680 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
25681
25682         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
25683           highlighted menu items to match ms
25684
25685 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
25686
25687         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
25688
25689 2006-03-30  Mike Kestner  <mkestner@novell.com>
25690
25691         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
25692         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
25693         go active to account for HotLight to Selected transition.
25694         * MenuItem.cs: add internal Selected prop. Fill out the Status
25695         property by calculating it from item info. Add HotLight,
25696         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
25697
25698 2006-03-30  Mike Kestner  <mkestner@novell.com>
25699
25700         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
25701
25702 2006-03-29  Jackson Harper  <jackson@ximian.com>
25703
25704         * Form.cs: Implement TODO.
25705
25706 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
25707
25708         * PrintPreviewDialog.cs: Implemented missing methods and events; still
25709           missing proper dialog setup in the constructor
25710
25711 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
25712
25713         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
25714         * Control.cs:
25715           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
25716           - Fixed ResetBindings and removed TODO
25717           - Added check for cross-thread calls to get_Handle()
25718           - Added Marshaller attribute for set_Font to satisfy class status
25719         * FontDialog.cs: Removed TODOs that seemed implemented
25720         * UpDownBase.cs: Removed unneeded TODO and Fixme
25721         * MessageBox.cs: Implemented support for Default button and removed TODO
25722         * FileDialog.cs: Removed obsolete TODO
25723         * DomainUpDown.cs: Removed obsolete TODO
25724         * ButtonBase.cs: Removed obsolete TODO
25725         * XplatUIWin32.cs: Removed obsolete TODO
25726         * Form.cs:
25727           - Removed obsolete TODO
25728           - Calling CheckAcceptButton when the acceptbutton is changed to allow
25729             internal status updates
25730           - Making sure the active control is selected when the control is created
25731         * CurrencyManager.cs: Removed obsolete TODO
25732
25733 2006-03-29  Mike Kestner  <mkestner@novell.com>
25734
25735         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
25736         of PrintPreviewDialog and RichTextBox.
25737
25738 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
25739
25740         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
25741           DarkDark, Light and LightLight colors for a specific color
25742         * ThemeWin32Classic.cs:
25743           - Use Button drawing code to draw RadioButtons and CheckBoxes with
25744             Appearance = Button 
25745           - Make use of the new ResPool helper CPColor
25746           - Draw ProgressBar and StatusBar with correct 3D borders
25747
25748 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
25749
25750         * ColorDialog.cs: Return selected color. Fixes bug #77940.
25751
25752 2006-03-28  Mike Kestner  <mkestner@novell.com>
25753
25754         * ListView.cs: fix Icon layout to plan for scrollbar widths when
25755         calculating col/row counts.
25756
25757 2006-03-28  Mike Kestner  <mkestner@novell.com>
25758
25759         * ColumnHeader.cs:
25760         * ListView.cs:
25761         * ListViewItem.cs:
25762         * Menu.cs: 
25763         switch to explicit interface method implementation for some methods
25764         corcompare identifies as inconsistent with MS.
25765
25766 2006-03-28  Mike Kestner  <mkestner@novell.com>
25767
25768         * MainMenu.cs: 
25769         * Menu.cs:
25770         add a few missing methods from the class status output.
25771
25772 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
25773
25774         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
25775           correct.
25776
25777 2006-03-28  Mike Kestner  <mkestner@novell.com>
25778
25779         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
25780
25781 2006-03-27  Mike Kestner  <mkestner@novell.com>
25782
25783         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
25784         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
25785
25786 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
25787
25788         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
25789
25790 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
25791
25792         * ThemeWin32Classic.cs:
25793           - GroupBox: Inserted a little gap between the text and the lines
25794             on the right side
25795           - Made the code in CPDrawBorder3D more readable
25796           - Corrected the drawing location of the up and down arrows in 
25797             CPDrawScrollButton
25798
25799 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
25800
25801         * ControlPaint.cs: Corrected line widths in DrawBorder for
25802           ButtonBorderStyle Inset and Outset
25803
25804 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
25805
25806         * ThemeWin32Classic.cs:
25807           - Rewrote the totally broken CPDrawBorder3D method. That was
25808             one of the main problems for the terrific ThemeWin32Classic
25809             look
25810           - Updated and corrected Button drawing
25811           - Correct the dimensions of the SizeGrip to match ms ones
25812           - Removed a small drawing glitch in DrawComboBoxEditDecorations
25813         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
25814           Border3DStyle.Sunken to match ms.
25815
25816 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
25817
25818         * ThemeWin32Classic.cs: First small part of the "de-uglify
25819           ThemeWin32Classic" effort, SizeGrip
25820
25821 2006-03-24  Jackson Harper  <jackson@ximian.com>
25822
25823         * XplatUIX11.cs: Give a max idle time of one second, this matches
25824         MS and forces an Idle event every second when there are no other
25825         events in the queue.
25826
25827 2006-03-24  Mike Kestner  <mkestner@novell.com>
25828
25829         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
25830         * ListView.Item.cs: fix layout issues with null image lists and images
25831         smaller than checkbox size.
25832         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
25833         mode like MS does.  It's weird, but consistent.  ;-)
25834         Fixes #77890.
25835
25836 2006-03-24  Mike Kestner  <mkestner@novell.com>
25837
25838         * ListView.cs: Scroll wheel support for the item control.  Fixes
25839         #77839.
25840
25841 2006-03-23  Jackson Harper  <jackson@ximian.com>
25842
25843         * ScrollableControl.cs: Special case negative sized areas, not
25844         zero.
25845         * MonthCalendar.cs: Save the rect of the clicked date so we can
25846         use it for invalidation.
25847         - Try to cut down on the number of invalidates
25848         - Invalidate the rect the mouse is over and was over when moving
25849         the mouse, so we get the focus box following the cursor.
25850
25851 2006-03-23  Mike Kestner  <mkestner@novell.com>
25852
25853         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
25854         focus rectangle drawing. Fixes #77835.
25855
25856 2006-03-23  Mike Kestner  <mkestner@novell.com>
25857
25858         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
25859         the if and else if and reverting back to the original == check on the
25860         None conditional.
25861
25862 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
25863
25864         * FontDialog.cs: Update the example panel if the selected index of
25865           the fontListBox changes.
25866
25867 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
25868
25869         * FileDialog.cs: Make FileDialog remember which directory it was in
25870           last in the same execution.
25871
25872 2006-03-22  Mike Kestner  <mkestner@novell.com>
25873
25874         * FileDialog.cs: make the DropDownMenu on the toolbar display
25875         RadioChecks since they are mutually exclusive and that's what MS does.
25876
25877 2006-03-22  Mike Kestner  <mkestner@novell.com>
25878
25879         * Theme.cs: add Color param to CPDrawMenuGlyph.
25880         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
25881         checks and radio marks and arrows are visible on highlighted items.
25882         * ControlPaint.cs: update to use new Theme signature.
25883
25884 2006-03-22  Mike Kestner  <mkestner@novell.com>
25885
25886         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
25887         is active. Fixes #77870.
25888
25889 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
25890
25891         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
25892           to be focused/selected after startup
25893
25894 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
25895
25896         * ColorDialog.cs: 
25897           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
25898             CustomColors and ShowHelp properties
25899           - Some internal rewrites to get better results when using the
25900             ColorMatrix
25901
25902 2006-03-22  Mike Kestner  <mkestner@novell.com>
25903
25904         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
25905         HoverSelection.  Fixes #77836.
25906
25907 2006-03-22  Mike Kestner  <mkestner@novell.com>
25908
25909         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
25910         ToggleButtons.  (De)Sensitize the Back button around a stack count of
25911         1, not 0.  Update ButtonSize based on a pixel count of the win32
25912         control.  Adjust the toolbar size/location for new button size.
25913
25914 2006-03-22  Jackson Harper  <jackson@ximian.com>
25915
25916         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
25917         true.
25918         * ScrollBar.cs: When doing increments and decrements we need to
25919         set the Value property so that ValueChanged gets raised. A
25920         possible optimization here would be to make an internal SetValue
25921         that doesn't invalidate immediately.
25922         * ToolTip.cs: Tooltips get added to their container (when
25923         supplied) so they get disposed when the container is disposed.
25924         - Don't create tooltips for String.Empty. This prevents all these
25925         little 2-3 pixel windows from showing up when running nunit-gui
25926         and driving me mad.
25927         * Form.cs: Don't set topmost when setting the owner if the handles
25928         haven't been created yet.  The topmost set will happen when the
25929         handles are created.
25930
25931 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
25932
25933         * XplatUIX11.cs:
25934           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
25935           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
25936             visible (to allow them to recalculate their sizes)
25937
25938 2006-03-21  Mike Kestner  <mkestner@novell.com>
25939
25940         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
25941         methods. Removed a ton of redundant code.  Still not really happy with
25942         the border rendering, but I think that's mainly because of the
25943         ControlDarkDark being black instead of a dark grey. Depending on how 
25944         close we want to be, we might want to revisit those color choices.
25945         Among the new features added during the refactor were DropDownArrow
25946         pressed rendering, Disabled image rendering.  Proper flat appearance
25947         boundary rendering.  Removed the Divider and Wrapping dividers since I
25948         can't figure out any combination of themes and conditions to make the
25949         MS control draw a horizontal line on a toolbar despite what the
25950         Divider property docs indicate.
25951         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
25952         conditions and incorrect layout.  Updated to coding standard.
25953         * ToolBarButton.cs: refactored layout and positioning code from
25954         ToolBar to here.  Invalidate wherever possible instead of forcing
25955         redraws of the whole toolbar. 
25956         (Known remaining issues: explicit ButtonSize smaller than provided
25957         images.)
25958
25959 2006-03-21  Mike Kestner  <mkestner@novell.com>
25960
25961         * ContextMenu.cs (Show): use the position parameter instead of just
25962         showing at the MousePosition.
25963
25964 2006-03-21  Jackson Harper  <jackson@ximian.com>
25965
25966         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
25967         control handle this.
25968         * TreeNodeCollection.cs: If we are clearing the root node we need
25969         to reset top_node so calcs can still happen.
25970         * ThemeWin32Classic.cs: This is a Flags so we need to check
25971         properly.
25972         
25973 2006-03-21  Jackson Harper  <jackson@ximian.com>
25974
25975         * DataGrid.cs: Create columns when the binding context has been
25976         changed.
25977         * X11Structs.cs: Keysyms are uints.
25978         - Add size to fix build.
25979
25980 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
25981
25982         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
25983           XplatUIOSX.cs: 
25984           - Added ResetMouseHover method to allow controls to retrigger
25985             hovering if they need it more than once
25986           - Implemented MouseHoverTime and MouseHoverSize properties
25987         * Timer.cs: Start() must reset the interval
25988         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
25989           properties
25990
25991 2006-03-21  Jackson Harper  <jackson@ximian.com>
25992
25993         * X11Keyboard.cs: improved layout detection. Move the nonchar
25994         tables into this file.
25995         * KeyboardLayouts.cs: Move the tables into resource files.
25996
25997 2006-03-21  Mike Kestner  <mkestner@novell.com>
25998
25999         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
26000
26001 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
26002
26003         * Mime.cs: Various speed optimizations. Looking up mime types
26004           is now 2 times faster than before
26005
26006 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
26007
26008         * CreateParams.cs: Added internal menu field
26009         * Control.cs: 
26010           - Switched call order for UpdateBounds; now we always call
26011             the one that also takes ClientSize, and we're calculating the 
26012             client size via driver method in the others. The previous
26013             method of tracking client size by difference wasn't working
26014             for forms where even the starting client size wouldn't match
26015             the overall form size (due to borders) (Part of fix for #77729)
26016           - CreateParams(): Do not use parent.Handle unless the handle is
26017             already created. Causes havoc with Nexxia and throws off our
26018             creation of controls
26019         * XplatUIX11.cs:
26020           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
26021           - Switched handling of ConfigureNotify over to new PerformNCCalc 
26022             method (consolidates code)
26023           - Changed RequestNCRecalc to use new PerformNCCalc method
26024           - Added calls to RequestNCRecalc when menus and borders are changed
26025             to allow app to set NC size. (Part of fix for #77729) This matches
26026             when MS send a WM_NCRECALC on Win32 windows.
26027           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
26028             (Part of fix for #77729). This matches what MS does, they also
26029             send that message when the form is made visible.
26030           - XException.GetMessage: Improved usability of X errors by including
26031             a translation of the window into Hwnd and Control class
26032           - Improved debug info for window creation, reparenting and destruction
26033           - Created helper method WindowIsMapped() [Currently not used]
26034         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
26035         * Form.cs:
26036           - CreateParams: Now setting our menu on the new internal menu field
26037           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
26038             avoid calculating the same property twice
26039         * Hwnd.cs:
26040           - Improved usability of ToString() for debugging purposes
26041           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
26042             determine the height of the menu, instead of just the font. This
26043             required to also create a graphics context and to keep a bmp 
26044             around (for performance reasons)
26045
26046 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
26047
26048         * MenuAPI.cs: Added OnMouseUp method
26049         * Form.cs:
26050           - Now remembering the requested client size, avoids size errors
26051           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
26052             instead of base if the menu is active. This is required due to
26053             control now capturing and releasing on down/up and it would
26054             prematurely release our menu capture
26055
26056 2006-03-17  Jackson Harper  <jackson@ximian.com>
26057
26058         * KeyboardLayouts.cs: Add the czech layouts.
26059
26060 2006-03-16  Jackson Harper  <jackson@ximian.com>
26061
26062         * Control.cs: Use the viewport space when sizing not the controls
26063         client size, so things like ScrollableControl that effect the
26064         viewport size (when scrollbars are added) are computed correctly.
26065         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
26066         of ManagerEntrys.
26067         - Handle creating BindingManagers for null data sources.
26068         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
26069         source, otherwise when rows are added they are added to the 'fake'
26070         datasource and we will crash when trying to set the position in
26071         those rows.
26072         - Use Implicit scrollbars on the datagrid so they arent
26073         selectable.
26074         
26075 2006-03-16  Jackson Harper  <jackson@ximian.com>
26076
26077         * Binding.cs:
26078         * InternalWindowManager.cs:
26079         * MdiWindowManager.cs:
26080         * X11Keyboard.cs: I really want Mike to love me again (fix
26081         compiler warnings).
26082
26083 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
26084
26085         * DataGrid.cs:
26086           - OnMouseDown: Switch to editing mode when clicking on the cell
26087                          even if we're clicking on the cell that's currently 
26088                          selected
26089           - ProcessGridKey: Left/Right now wrap like MS.Net does
26090           - ProcessGridKey: Tab now knows to add a new row when tab is
26091                             pressed in the cell of the last column of the 
26092                             last row
26093           - ProcessGridKey: Enter now adds another row  if pressed in the last
26094                             row and selectes the new row, same column cell
26095           - ProcessGridKey: Home/End navigate columns, not rows, like 
26096                             originally implemented
26097           - Broke ProcessKeyPreview code out into an extra Internal method
26098             so it can be called from the edit code
26099         * DataGridTextBox.cs (ProcessKeyMessage):
26100           - Switched to accept Tab keypresses
26101           - Added F2 handling to allow jumping to the end of the edited cell
26102           - Added logic to allow moving caret left/right inside edited cell
26103             and making the edited cell jump when the caret hits cell borders
26104           - Tab and Enter are now passed to the datagrid after being handled
26105         * TextBoxBase.cs:
26106           - Removed capture code now that Control handles it
26107           - set_SelectionStart now ensures caret is visible
26108
26109 2006-03-16  Jackson Harper  <jackson@ximian.com>
26110
26111         * TrackBar.cs: Debackwards the increment/decrement for handling
26112         mouse clicks on the bar with vertical trackbars.
26113         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
26114         bottom to match MS.
26115
26116 2006-03-16  Mike Kestner  <mkestner@novell.com>
26117
26118         * ListView.cs: make shift/ctrl keyboard and mouse selection 
26119         consistent with the MS control. Fix a bug in
26120         SelectedListViewItemCollection.Clear that was pissing me off for the
26121         better part of a day because the collection was being altered
26122         underneath us as we walked the list.
26123
26124 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
26125
26126         * Control.cs: Not sure how we could miss this so long, but it seems
26127           that MS.Net has Capture set all the way from before calling 
26128           OnMouseDown through sending the mouse events until after
26129           OnMouseUp. This will fix DataGrid's selection being set to end
26130           at the location of the MouseUp.
26131
26132 2006-03-15  Jackson Harper  <jackson@ximian.com>
26133
26134         * BindingContext.cs: Check the binding after its added so that it
26135           can initialize the binding managers and hookup to events.
26136         * Binding.cs: Data members seem to sometimes include rows/cols in
26137           the format Row.Column we now take this into account.
26138           - Hookup to the position changed event so we can update the
26139           control when the position has changed in the data set.
26140         * CurrencyManager.cs: Take into account the row/col naming
26141           convention when creating dataset tables.
26142         * BindingContext.cs: Using a newer better way of storing
26143           datasource/datamember pairs.  Hopefully this better matches MS for
26144           looking up binding managers.
26145
26146
26147 2006-03-15  Jackson Harper  <jackson@ximian.com>
26148
26149         * BindingContext.cs: The currency manager needs the data member
26150         name, if the member is a data set we use the name to find the
26151         correct table.
26152         * CurrencyManager.cs: When creating the list prefer an IList over
26153         an IListSource.
26154         - Attempt to create a DataTable from a DataSet (TODO: might need
26155         some better error checking here, although MS doesn't seem to have much)
26156         - If we have a DataTable create a view and use it as our list.
26157
26158 2006-03-15  Mike Kestner  <mkestner@novell.com>
26159
26160         * ListView.cs: keep a matrix of the icon mode layout to facilitate
26161         keyboard navigation. Support Up/Down/Left/Right selection correctly
26162         for all 4 View modes.
26163         * ListViewItem.cs: add internal row/col fields for icon layouts.
26164
26165 2006-03-15  Jackson Harper  <jackson@ximian.com>
26166
26167         * TabControl.cs: Redraw the tabs when we resize so their newly
26168         calculated sizes are drawn on screen.
26169         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
26170         composite characters.
26171         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
26172         - filter events so that composite characters can be created
26173         patches by peter
26174         * X11Structs.cs: Add XIMProperties enum.
26175
26176 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
26177
26178         * Control.cs (BringToFront, SendToBack): Don't use window or handle
26179           unless it's created
26180
26181 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
26182
26183         * Control.cs (PerformLayout): We don't need to consider visiblity
26184           for anchoring, only for docking. This fixes 'whacky' alignment
26185           in listbox and other controls that use implicit scrollbars after
26186           the previous PerformLayout patch
26187         * ListBox.cs: Switched to use implicit scrollbars
26188           
26189 2006-03-14  Mike Kestner  <mkestner@novell.com>
26190
26191         * ToolBar.cs: 
26192         * VScrollBar.cs:
26193         - chain up the "new event" overrides to base and use
26194         OnEvent to raise them.  Part of fix for bug #76509.
26195
26196 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
26197
26198         * FileDialog.cs: Do not select an item in the parent directory
26199           on backspace
26200
26201 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
26202
26203         * Control.cs (PerformLayout): It would seem that we considered
26204           invisible windows for our layout. Not quite the right thing
26205           to do. Now we don't any longer, thereby fixing bug #76889.
26206
26207 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
26208
26209         * Control.cs (CanFocus): I goofed. A control can have focus 
26210           even though it's not selectable. Made it match MS docs.
26211
26212 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
26213
26214         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
26215           center by default (fixes #76895)
26216         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
26217           all uses of Border3DSides.All with the explicit ORd together
26218           Left|Right|Top|Bottom because I assume that nobody was aware 
26219           that All also implies a center fill. Most places I checked had
26220           a fill right above.
26221         * ProgressBarStyle.cs: Added
26222
26223 2006-03-13  Mike Kestner  <mkestner@novell.com>
26224
26225         * ListView.cs: fix breakage in drag shadow header positioning 
26226         from Peter's csc compilation fix.
26227
26228 2006-03-13  Mike Kestner  <mkestner@novell.com>
26229
26230         * ListView.cs: fix NRE produced by backspacing twice in a focused
26231         FileDialog.
26232
26233 2006-03-13  Mike Kestner  <mkestner@novell.com>
26234
26235         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
26236
26237 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
26238
26239         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
26240           be changed
26241         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
26242           the allowed size before making programmatic size changes
26243
26244 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
26245
26246         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
26247           set, metacity is broken and will still use the emty sizes in 
26248           the struct. (Fix for #77089)
26249
26250 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
26251
26252         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
26253           WindowExStyles and marked both enums as Flags
26254         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
26255           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
26256           to match WindowStyles split
26257         * XplatUIX11.cs:
26258           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
26259           - Updated to match WindowStyles split
26260         * XplatUIWin32.cs:
26261           - Fixed FosterParent creation, was using ExStyle on the Style field
26262             (This should help with Popup focus issues)
26263           - Updated to match WindowStyles split
26264
26265 2006-03-13  Jackson Harper  <jackson@ximian.com>
26266
26267         * MdiWindowManager.cs: Use the system menu height. Fixes some
26268         strange sizing issues.
26269
26270 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
26271
26272         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
26273         * TextBoxBase.cs:
26274           - Scroll to caret after inserting text (#77672)
26275           - Make scroll range one pixel higher, fixes off-by-one error (and
26276             makes underlines visible on the last line)
26277
26278 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
26279
26280         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
26281           the keyboard state from being stuck with keys in 'pressed' state when
26282           focus is switched away via keyboard
26283         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
26284           reset the keyboard if no X11 KeyUp events are expected to come
26285         * X11Structs.cs: Switched type of Visible to bool to match driver
26286
26287 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
26288
26289         * TextControl.cs:
26290           - Switched caret to be just 1 pixel wide, matches MS and looks less
26291             clunky
26292           - Moved caret display 1 pixel down from the top of the control
26293             to improve view
26294           - InsertCharAtCharet: Update the selection start if moving the caret
26295             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
26296           - No longer always creating the caret when the caret methods are
26297             called. Only the actual ShowCaret/HideCaret will do that now
26298           - Only setting caret visible if the owner control has focus
26299           - UpdateView: Added invalidation-shortcut logic for center and right 
26300             aligned text. Previously we'd update all according to the left
26301             logic which caused drawing errors. Also fixed height of invalidated
26302             areas, now properly invalidating the whole area (was off-by-one)
26303           - owner_HandleCreated: Always generate the document when the
26304             handle is created; this ensures that 
26305         * TextBoxBase.cs:
26306           - Fixed situation where caret would disappear under the right
26307             window border, also improved scrolling behaviour on left-
26308             aligned textboxes
26309           - Fixed right-aligned textboxes to have a border to the
26310             right instead of the caret being under the right border
26311         * XplatUIX11.cs:
26312           - Switched from 'nested' to simple visible/not visible tracking 
26313             for caret (part of fix for #77671)
26314           - No longer passing through translated FocusIn/FocusOut messages
26315             since we were notifying too often and the wrong windows. Instead
26316             we just notify our focussed window of receiving or loosing focus
26317         * XplatUIWin32.cs: Switched from 'nested' show/hide 
26318           counting for caret to simple visible yes/no behaviour (part of 
26319           fix for #77671)
26320
26321 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
26322
26323         * Mime.cs: Remove debug code...
26324
26325 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
26326
26327         * MimeGenerated.cs: Removed
26328         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
26329           and subclasses) from /usr/(local/)share/mime and
26330           $HOME/.local/share/mime.
26331
26332 2006-03-10  Jackson Harper  <jackson@ximian.com>
26333
26334         * MdiWindowManager.cs: Recalc the NC area when a window is
26335         maximized/restored so that the menu area is drawn on forms that
26336         don't have a menu.
26337
26338 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
26339
26340         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
26341           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
26342           us to force a WM_NCCALCRESIZE message being sent. This is needed
26343           for MDI maximizing.
26344
26345 2006-03-10  Jackson Harper  <jackson@ximian.com>
26346
26347         * Form.cs: We need to use the ActiveMenu when calculating menu
26348         height.
26349         - Fix nullref when the window manager hasn't been created yet.
26350         * Control.cs: Fix nullref when we try to bring a control to the
26351         front that has no parent.
26352         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
26353         height.
26354         - Add a dummy item to the maximized menu so it always has the
26355         correct height. Otherwise when there are no menus we don't get our
26356         icon and buttons.
26357         
26358
26359 2006-03-10  Jackson Harper  <jackson@ximian.com>
26360
26361         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
26362         stuff.
26363         * Form.cs: Make the window_state internal so the window managers
26364         can track it.
26365         - When an MDI child is maximized let its window manager create the
26366         main menu (so it can add its icon).
26367         - Notify the window managers of state changes
26368         - Let the window manager paint its buttons and handle button
26369         clicks on the menu when it is maximized.
26370         * InternalWindowManager.cs: Move the prev_bounds into the mdi
26371         window manager, since tool windows don't use it, only mdi windows.
26372         - Tell the main form that we don't want it to handle NCPAINT
26373         itself to avoid extra painting.
26374         - Handle clicks on a maximized windows menu.
26375         - Handle window state changes
26376         - Handle minimize/maximize clicks correctly by setting the window state.
26377         * MdiWindowManager.cs: Add an icon menu that (the menu you get
26378         when clicking on the forms icon).
26379         - New method to create a forms maximized menu. This is its normal
26380         menu + an icon.
26381         - Handle window state changes.
26382         - Handle sizing of maximized windows.  Maximized windows are just
26383         drawn bigger then the parent visible area. All controls are still
26384         there, they are just outside the visible area (this matches windows).
26385         * MdiClient.cs: No scrollbars when a child window is maximized.
26386         - Let the children windows figure out how big they should be when
26387         sizing maximized windows.
26388         - Implement a version of ArrangeIconicWindows somewhat similar to
26389         Windows version.  There are some little differences, but I don't
26390         think any app will rely on the layout of minimized mdi windows.
26391
26392 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
26393
26394         * Padding.cs: Several fixes to allow compiling with csc 2.0
26395
26396 2006-03-09  Jackson Harper  <jackson@ximian.com>
26397
26398         * Menu.cs:
26399         * MenuItem.cs: Cheap hack so we can add items to the list without
26400         the events being raised.  This allows adding mdi items during
26401         drawing. TODO: Should probably find a better time to add the items.
26402
26403 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
26404
26405         * ThemeWin32Classic.cs:
26406           - CheckBox_DrawText: Added logic to not wrap if not enough space
26407             is available (Fix for bug #77727)
26408           - RadioButton_DrawText: Added logic not to wrap if not enough
26409             space is available (Fix for bug #77727). Also removed some
26410             duplicate code, DrawString always drawing the regular text
26411             before hitting the if statement.
26412
26413 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
26414
26415         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
26416
26417 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
26418
26419         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
26420         * ContainerControl.cs: Partial implementation of some 2.0 scaling
26421           methods. Moved the new 2.0 properties into alphabetical order with
26422           other properties and added MonoTODO tags
26423
26424 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
26425
26426         * AutoScaleMode.cs: Added. Fix build.
26427
26428 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
26429
26430         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
26431           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
26432           and was requiring premature handle creation for calls from above
26433         * Form.cs, Control.cs: Removed handle arguments from calls to
26434           CalculateClientRect()
26435
26436 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
26437
26438         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
26439           drag_column.column_rect is MarshalByRef and can't be used that way
26440
26441 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
26442
26443         * AxHost.cs: Added deserialization constructor for 
26444           AxHost+State (fixes 77743)
26445
26446 2006-03-09  Mike Kestner  <mkestner@novell.com>
26447
26448         * ListView.cs: 
26449         - Added column drag reordering for details view.
26450         - fixed behavior when mouse is dragged off column and
26451         AllowColumnReorder is false.
26452         * ColumnHeader.cs: clone the format too in Clone.
26453         * Theme.cs: add DrawListViewHeaderDragDetails method.
26454         * ThemeWin32Classic.cs:
26455         - impl new method for drawing drag column shadows and targets.
26456         - support column offset for details mode in DrawListViewItem.
26457
26458 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
26459
26460         * TextControl.cs: Reset the char_count when the document is cleared
26461           (Fixes bug reported on mono-winforms mailing list)
26462
26463 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
26464
26465         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
26466           of calling base we simply process the key ourselves, since both
26467           DefWindowProc and the handled method would set m.Result. 
26468           (Fixes #77732)
26469
26470 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
26471
26472         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
26473           method also moves the window; instead implemented a copy of
26474           Control.ScaleCore (Part of fix for #77456)
26475         * TextBoxBase.cs: 
26476           - Created new CreateGraphicsInternal method to allow providing
26477             a graphics context when no handle is created without triggering
26478             handle creation. (Part of fix for #77456)
26479           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
26480         * TextControl.cs: 
26481           - Switched Constructor to require TextBoxBase instead of Control (to
26482             allow uncast access to CreateGraphicsInternal)
26483           - Safeguarded use of owner.Handle property. No longer accessing it
26484             unless the handle is already created.
26485           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
26486           - Now triggering a recalc when owning control becomes visible
26487         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
26488           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
26489           premature handle creation (Part of fix for #77456)
26490         * Control.cs:
26491           - We now only destroy our double-buffering buffers when the
26492             control is resized or disposed, but not when visibility
26493             changes. (The code even re-created them twice every time)
26494           - Now requiring a redraw of the buffer on visibility changes
26495             (fixes bug 77654 part 2)
26496           - Not passing OnParentVisibleChanged up unless the control
26497             is visible
26498           - CanFocus: Fixed to match MS documentation
26499           - Focus: Fixed to return actual focus state and to check if
26500             setting focus is legal before setting it
26501
26502 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
26503
26504         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
26505           when to draw focus rectangle by looking at parent focus and
26506           selected state instead. This fixes TabPages on Linux sometimes
26507           having none or multiple focus rectangles.
26508         * XplatUIX11.cs (SetFocus): 
26509           - Don't set the focus if the same window already has focus
26510           - Use SendMessage instead of PostMessage (like it's Win32
26511             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
26512             to match MS behaviour
26513         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
26514           are not selectable.
26515
26516 2006-03-07  Jackson Harper  <jackson@ximian.com>
26517
26518         * PictureBox.cs: Revert line I accidently committed last week.
26519
26520 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
26521
26522         * Control.cs: 
26523           - Added new IsRecreating and ParentIsRecreating properties to
26524             allow testing if RecreateHandle has been called on ourselves
26525             or one of our parents
26526           - WndProc(WM_DESTROY): If our control handle is being recreated
26527             we immediately need to create the handle when receiving the
26528             destroy, that way our child windows find a valid parent handle
26529             when they themselves are being recreated upon WM_DESTROY receipt
26530             (fix for bug #77654 part 1)
26531         * XplatUIX11.cs:
26532           - DestroyWindow: WM_DESTROY must be sent to our own window before
26533             notifying any child windows. MS documents that child windows
26534             are still valid when WM_DESTROY is received. (Control now relies on
26535             this behaviour)
26536           - Added some fine-grain debug options
26537
26538 2006-03-06  Jackson Harper  <jackson@ximian.com>
26539
26540         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
26541         box and base calculations off this.
26542         * MdiChildContext.cs:
26543         * MdiWindowManager.cs: Don't need to ensure scrollbars here
26544         anymore.
26545         
26546 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
26547
26548         * Splitter.cs: In situations where the affected control is added
26549           to the parent's control list after the splitter, we would not
26550           populate affected. Now we try populating it on mousedown, if
26551           it's not already set, and force it to be re-set whenever our
26552           parent changes.
26553
26554 2006-03-03  Matt Hargett  <matt@use.net>
26555
26556         * Control.cs: implement Control.Padding
26557         * Padding.cs: -Padding.All returns -1 when constructing with the
26558         implicit default ctor
26559         -Padding.ToString() matches MS.NET
26560         * ContainerControl.cs: implement
26561         ContainerControl.AutoScaleDimensions
26562         * ListControl.cs: implement ListControl.FormattingEnabled
26563         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
26564         * ButtonBase.cs:
26565         * TabPage.cs: Implement UseVisualStyleBackColor.
26566         * PictureBox.cs: Implement PictureBox.InitialImage.
26567
26568 2006-03-03  Mike Kestner  <mkestner@novell.com>
26569
26570         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
26571         event declarations to proxy to base event.
26572         * ListViewItem.cs: update to use ItemControl.
26573         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
26574         * ThemeWin32Classic.cs: update to new ListView theme API and fix
26575         column header label rendering for 0 width columns.
26576
26577 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
26578
26579         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
26580           that causes the control to be created. Fixes #77476.
26581
26582 2006-03-02  Jackson Harper  <jackson@ximian.com>
26583
26584         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
26585         expose_pending.
26586
26587 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
26588
26589         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
26590           passed in for the EventArgs (fixes #77690)
26591
26592 2006-03-01  Jackson Harper  <jackson@ximian.com>
26593
26594         * ScrollBar.cs: Refresh afterbeing resized.
26595
26596 2006-02-28  Mike Kestner  <mkestner@novell.com>
26597
26598         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
26599         Clean up a tracker compile warning.
26600         * MenuItem.cs: add internal PerformPopup method.
26601         [Fixes #77457]
26602
26603 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
26604
26605         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
26606           implicit expose) when the text is set to null
26607
26608 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
26609
26610         * RichTextBox.cs (FlushText): When newline is true, we always
26611           need to split the line, even if no text is on it and we may
26612           never eat newlines. (Fixes #77669)
26613
26614 2006-02-28  Mike Kestner  <mkestner@novell.com>
26615
26616         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
26617         and set Selected instead.
26618         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
26619         collections.
26620
26621 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
26622
26623         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
26624
26625 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
26626
26627         * FontDialog.cs:
26628           - Got rid of the panel. All controls are now directly added to
26629             the dialog form
26630           - It is now possible to set a font with the Font property
26631           - MinSize and MaxSize property do now what they should
26632           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
26633           - Searching and selecting a font with the font textbox works now,
26634             the same applies to the style and size textbox
26635           - Draw the correct 3D border in the example panel
26636           - Fixed a little mem leak (unused fonts didn't get disposed)
26637           - Many other internal updates/rewrites...
26638           - Fix typo
26639
26640 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
26641
26642         * TextControl.cs: 
26643           - InsertRTFFromStream: Added 'number of characters inserted' argument
26644           - set_SelectedRTF: Now using the number of characters to calculate
26645             the new location for the selection and cursor (x/y cannot be used
26646             due to potentially already wrapped text)
26647
26648 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
26649
26650         * TextControl.cs: Added property and implemented means to allow 
26651           disabling recalculation of a document (can be used to speed up
26652           multiple inserts and is needed to make RTF inserts predictable, see
26653           bug #77659)
26654         * RichTextBox.cs: Using the new NoRecalc property of Document to
26655           keep x/y insert locations predictable. Also makes it faster inserting
26656           large chunks of RTF
26657
26658 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
26659
26660         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
26661           it's easier for a child control to handle the other messages without
26662           having to duplicate the special functionality
26663         * TextBoxBase.cs
26664           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
26665             code to handle processing the key ourselves, in order to get 
26666             access to the result of KeyEventArgs.Handled. We now only call 
26667             ProcessKey if they key hasn't been handled already. Fixes #77526.
26668           - set_Text: If null or empty string is given, just clear the 
26669             document. Fixes part of #77526
26670
26671 2006-02-27  Jackson Harper  <jackson@ximian.com>
26672
26673         * SizeGrip.cs: Paint the background color before painting the grip
26674         so things look right.
26675         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
26676
26677 2006-02-27  Mike Kestner  <mkestner@novell.com>
26678
26679         * ListView.cs:
26680           - Restructure layout and invalidation model to remove a ton of
26681           flicker from the control and speed up performance in general.
26682           - Add manual column resize, flickers like crazy, but I already have
26683           some ideas on how I'll fix that. (#76822)
26684           - Merge the three Icon-based views into a single layout method.
26685           - Move item selection interaction logic from the item since 
26686           interaction with the collections is more appropriate to the view.
26687           - Deselection on non-item clicks.
26688         * ListViewItem.cs:
26689           - Encapsulate most of the layout. Add some internal props to trigger
26690           layout.  Move to a model where Items invalidate themselves instead
26691           of just invalidating the whole control every time something changes.
26692           - Invalidate on Text/Caption changes.
26693           - switch to an offset based layout model to avoid having to absolute
26694           position every element on item moves.
26695           - correct checkbox layout to conform to MS layout.
26696         * ThemeWin32Classic.cs:
26697           - refactor some column header drawing code.
26698           - fix string justification for column headers (#76821)
26699           - make SmallIcon labels top justified for compat with MS impl.
26700         * ThemeClearlooks.cs:
26701           - adjust to new ListViewItem internal checkbox bounds api.
26702
26703 2006-02-27  Jackson Harper  <jackson@ximian.com>
26704
26705         * Control.cs:  Change where implicit controls fall in the zorder.
26706         They are now on top of all children.
26707         - Synced AddImplicit code with Add
26708         - Removed unused enumerator.
26709         * SizeGrip.cs: Remove the TODO as its been TODONE.
26710
26711 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
26712
26713         * TextControl.cs(Insert): Combine the last lines unless the insertion
26714           string ends with \n\n, otherwise we leave one line too many (Fixes
26715           something I noticed with the testapp for #77526; the bug itself was
26716           already fixed in the previous checkin)
26717
26718 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
26719
26720         * RichTextBox.cs:
26721           - SelectionColor and SelectionFont methods no longer set absolute
26722             styles. Instead, the keep font or color respectively (This 
26723             resolves a long-standing FIXME in the code)
26724           - When flushing RTF text, the insert code now considers text trailing
26725             behind the insertion point (Fixes the bug where when replacing
26726             the selected text via SelectedRTF the remainder of the line behind 
26727             the selection would stay on the first insertion line)
26728         * TextBoxBase.cs:
26729           - AppendText now updates the selection points after inserting text
26730           - AppendText now ensures that the last tag (sometimes 0-length) of
26731             the document is used for the style information (Fixes part of 
26732             bug #77220)
26733         * TextControl.cs:
26734           - Created new FontDefiniton class to allow describing partial style
26735             changes
26736           - StreamLine() now takes a lines argument, to allow it to decide
26737             whether an encountered zero-length tag is the last in the document
26738             (which must be kept to not loose the font/color contained in it,
26739             for later appends)
26740           - Created Combine() and Split() methods for Marker structs, to 
26741             support marker updates due to reformatted documents (soft line
26742             wraps)
26743           - Implemented Document.CaretTag setter
26744           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
26745             of the last line (Not the cause, but also exposed by bug #77220)
26746           - Added LineTag argument to InsertString method, to allow callers
26747             to force a certain tag to be used (required to force use of the
26748             trailing zero-length tag of a document)
26749           - Now updating markers in Combine(), to avoid stale tag markers
26750           - Added some method descriptions to aid maintenance
26751           - Implemented new FormatText concept, allowing additive/subtractive
26752             formatting by only specifying the components that are to be 
26753             changed. This was needed for resolving the RTB.SelectedColor/
26754             RTB.SelectedFont fixmes
26755           - Added Break() support method to allow breaking up linetags (used
26756             for partial formatting)
26757           - Added GenerateTextFormat() method. It is used for partial 
26758             formatting and allows to generate a full font/color from given
26759             attributes and an existing tag.
26760
26761 2006-02-26  Jackson Harper  <jackson@ximian.com>
26762
26763         * XplatUIX11.cs:  Use the correct caption height.
26764         - Translate hittest coordinates to screen coords to match MS.
26765         * XplatUIWin32.cs: When we create MDI windows we need to reset
26766         some of the style flags, so we get a nice blank window, and can
26767         draw all the decorations ourselves.
26768         - Set a clipping rectangle on the non client paint event, the
26769         window manager drawing code needs one.
26770         * Form.cs: The window manager needs to know when the window state
26771         has been updated.
26772         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
26773         don't need to factor in border and title sizes in these
26774         methods. TODO: Remove the args and fix the call points.
26775         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
26776         properly.
26777         - Let the driver set the cursors.
26778         - Improve active window handling
26779         - Correct sizes for title bars and buttons.
26780         - Match MS drawing better
26781         * MdiWindowManager.cs: We don't need to handle border style
26782         updates specially anymore.
26783         - Check for scrollbars when windows are done moving
26784         - Handle Active properly.
26785         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
26786         correctly. I am spewing the exception though, so we don't hide the
26787         bugs.
26788         
26789 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
26790
26791         * DataGridViewRowPostPaintEventArgs.cs,
26792           DataGridViewCellPaintingEventArgs.cs,
26793           DataGridViewRowCollection.cs,
26794           DataGridViewRowPrePaintEventArgs.cs,
26795           DataGridViewCell.cs: Clear a few warnings and implement a few
26796           exceptions that should be thrown.
26797
26798 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
26799
26800         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
26801           'inheriting' our parent's (non-default) cursor. (Part of
26802            the fix for #77479)
26803
26804 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
26805
26806         * XplatUIX11.cs: Fixed cast to make csc happy
26807
26808 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
26809
26810         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
26811           it's for the client area (part of fix for #77479 and needed
26812           for MDI window cursor handling)
26813         * XplatUIX11.cs
26814           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
26815             the appropriate default cursors and also passing the message
26816             up the parent chain 
26817           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
26818             for non-client areas
26819
26820 2006-02-15  Jackson Harper  <jackson@ximian.com>
26821
26822         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
26823         is a real MDI window
26824
26825 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
26826
26827         * X11DesktopColors.cs: Instead of checking the desktop session
26828           string for "KDE" check if it starts with "KDE"
26829
26830 2006-02-10  Jackson Harper  <jackson@ximian.com>
26831
26832         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
26833         systems).
26834
26835 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
26836
26837         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
26838           errors
26839         * ColorDialog.cs:
26840           - Got rid of the panel. All controls are now directly added to
26841             the dialog form
26842           - Changed to mono coding style
26843
26844 2006-02-10  Jackson Harper  <jackson@ximian.com>
26845
26846         * InternalWindowManager.cs: We don't need the set visibility to
26847         false hack anymore now that peter has written beautiful shutdown
26848         code.
26849
26850 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
26851
26852         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
26853           where already explicitly destroyed
26854
26855 2006-02-10  Jackson Harper  <jackson@ximian.com>
26856
26857         * MdiClient.cs: Handle the case where windows are too high or to
26858         the left and we need scrollbars.
26859
26860 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
26861
26862         * MimeIcon.cs: Added some icons
26863         * FileDialog.cs:
26864           - Fixed bug #77477
26865           - Got rid of the panel. All controls are now directly added to
26866             the dialog form
26867           - Changed to mono coding style
26868           - On Linux "My Computer" and "My Network" will now show some
26869             more usefull information. A new class, MasterMount, gathers
26870             this information from /proc/mount. Updated MWFFileView to make
26871             use of this information
26872           - Fixed a bug that caused FileDialog to crash when
26873             ".recently_used" file had a zero size
26874           - FilterIndex does now what it should
26875           - Some Refactoring
26876         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
26877             FileDialog changes
26878
26879 2006-02-09  Jackson Harper  <jackson@ximian.com>
26880
26881         * ComboBox.cs: Don't touch if null.
26882
26883 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
26884
26885         * Cursor.cs: 64bit safeness fix
26886         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
26887
26888 2006-02-09  Jackson Harper  <jackson@ximian.com>
26889
26890         * Form.cs: If a form is made into an MDI form update the styles so
26891         all the props can get set correctly.
26892         - Kill the mdi_container when we dont need it anymore.
26893         * InternalWindowManager.cs: Add missing NOT
26894
26895 2006-02-08  Jackson Harper  <jackson@ximian.com>
26896
26897         * InternalWindowManager.cs: Respek clipping when drawing MDi
26898         decorations.
26899
26900 2006-02-08  Jackson Harper  <jackson@ximian.com>
26901
26902         * Hwnd.cs: Add bits to track non client expose events.
26903         * XplatUIX11.cs: Track non client expose events on the hwnd. This
26904         gives us a proper invalid rect and will allow for some nice
26905         optimizations with NC client drawing
26906         - MDI windows are children windows, so move their style handling
26907         into the child window block.
26908         * InternalWindowManager.cs: Remove a state reset that was
26909         getting invoked at the wrong time. Fixes managed windows getting
26910         into a 'stuck' captured state.
26911
26912 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
26913
26914         * TextControl.cs (Document.ctor): Now initializing 
26915           selection_anchor. Fixes #77493
26916
26917 2006-02-07  Jackson Harper  <jackson@ximian.com>
26918
26919         * TrackBar.cs: The increment/decrements were backwards.
26920
26921 2006-02-07  Mike Kestner  <mkestner@novell.com>
26922
26923         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
26924         to the instance itself.
26925
26926 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
26927
26928         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
26929           on ulongs and pointers, the size differs between 32bit and 64bit
26930           systems. 
26931
26932 2006-02-07  Mike Kestner  <mkestner@novell.com>
26933
26934         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
26935         for 64 bit platforms to work around a metacity bug. 
26936
26937 2006-02-07  Jackson Harper  <jackson@ximian.com>
26938
26939         * TrackBar.cs: Process the input keys we need, and hookup to
26940         KeyDown instead of using WndProc, so we get key messages.
26941
26942 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
26943
26944         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
26945           machine we're on. 
26946         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
26947           we need to translate the XdndVersion atoms array before sending it
26948
26949 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
26950
26951         * XplatUIX11.cs: 
26952           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
26953             number of bits for the property, not the number of bytes. The
26954             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
26955             but would not crash since it specified 8 bits instead of 4 bits)
26956           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
26957             defined as XID -> long in the C headers)
26958           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
26959             references since those are now IntPtr to begin with
26960           - Switched all Atom.XXX 'int' casts to IntPtr casts
26961           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
26962           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
26963           - Added XChangeActivePointerGrab DllImport (for X11DnD)
26964         * X11Structs.cs:
26965           - Changed 'int' type for Atoms in XEvent structures to IntPtr
26966           - Changed atom in HoverStruct to be IntPtr
26967         * X11DnD.cs:
26968           - Removed local DllImports, switched code to use those from XplatUIX11
26969           - Removed/fixed casts related to the switch of Atom to be a IntPtr
26970
26971 2006-02-06  Mike Kestner  <mkestner@novell.com>
26972
26973         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
26974         method signatures in the import region.  There may still be some
26975         lingering struct marshaling issues, as I didn't drill down into those.
26976         Yet.
26977
26978 2006-02-06  Jackson Harper  <jackson@ximian.com>
26979
26980         * ComboBox.cs: Dont manually set the top_item, this is computed
26981         when the scrollbar position is set.
26982
26983 2006-02-06  Mike Kestner  <mkestner@novell.com>
26984
26985         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
26986         startup crashes on amd64.  There's other fixes needed.  All pinvoke
26987         usage of Atom needs to be mapped to IntPtr for example.  And there are
26988         likely other int/long issues to be addressed.
26989
26990 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
26991
26992         * FileDialog.cs: One more...
26993
26994 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
26995
26996         * FileDialog.cs: Next try
26997
26998 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
26999
27000         * FileDialog.cs: First part of fix for #77464
27001
27002 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
27003
27004         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
27005           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
27006           AcceptButton border drawing.
27007
27008 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
27009
27010         * Form.cs: Moved positioning of form after auto scaling is applied,
27011           otherwise it would possibly use wrong form size.
27012
27013 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
27014
27015         * Control.cs (RecreateHandle): No need to re-create any child
27016           controls, the child windows will get destroyed automatically by
27017           the windowing system or driver, and re-created when the handle
27018           is being accessed the first time. Fixes #77456
27019         * Form.cs: No longer setting the form to closing if the handle is 
27020           being recreated. This seems like the right thing to do, don't
27021           have a bug or testcase for this, though.
27022
27023 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
27024
27025         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
27026           controls to avoid unwanted side effects
27027
27028 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
27029
27030         * Control.cs: 
27031           - ScaleCore needs to scale the bounds, not the ClientSize of the 
27032             control. Fixes #77416.
27033           - DefaultSize is 0,0 for control
27034         * TextBoxBase.cs: 
27035           - DefaultSize is 100, 20
27036           - SetBoundsCore: Now enforcing the height, no matter if the provided
27037             height is more or less than the preferred one, as long as AutoSize
27038             is on
27039         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
27040
27041 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
27042
27043         * Control.cs:
27044           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
27045             call unless both performLayout is true *and* we have a pending
27046             layout change
27047           - ResumeLayout: MS does not completely nest Suspend and Resume,
27048             they bottom out at 0, fixed our code to match that.
27049           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
27050             SetBoundsCore, we were updating even when we shouldn't. This fixes
27051             swf-anchors mis-anchoring when resizing the app fast and lots.
27052           - UpdateDistances: Now only setting the left and top distance if 
27053             we have a parent and are not suspended, this is based on
27054             a suggestion by Don Edvaldson in bug #77355.
27055           - OnVisibleChanged: Fixed logic when to create the control. We may
27056             not create the control if we have no parent or if it's not visible;
27057             switched to using Visible property instead of is_visible field 
27058             since the property also considers parent states. This fixes a bug
27059             when starting Paint.Net
27060
27061 2006-02-02  Jackson Harper  <jackson@ximian.com>
27062
27063         * Form.cs: If the forms handle hasn't been created yet don't call
27064         into xplatui to make it top most, just set the topmost flag on the
27065         form in CreateParams
27066         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
27067
27068 2006-02-01  Jackson Harper  <jackson@ximian.com>
27069
27070         * ScrollableControl.cs: Refactored the Recalculate method a
27071         little, this wasn't handling all the variants of bottom and right
27072         bars needed to be added and added/removed based on their
27073         counterparts being added/removed (which changes the drawable
27074         size). Also we special case client widths and heights of 0 and
27075         don't add the scrollbar for those.
27076
27077 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
27078
27079         * XplatUIX11.cs: 
27080           - Added method to get AbsoluteGeometry(); currently unused, but might
27081             be used in the future, if we try again to figure out toplevel
27082             coordinates with some more crappy window managers
27083           - Added FrameExtents() method to retrieve the WM set decoration size
27084           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
27085             to deal with at least KDE, FVWM and metacity (Fixes #77092)
27086         * Hwnd.cs: 
27087           - Added whacky_wm tracking var for metacity
27088           - Added logic to have default menu height if the actual menu height
27089             has not yet been calculated (part of fix for #77426)
27090         * Form.cs: Keep track whether client size has been set and re-set 
27091           it if a menu is added/removed afterwards (Fixes #77426)
27092
27093 2006-01-31  Jackson Harper  <jackson@ximian.com>
27094
27095         * Control.cs: When a new Site is set on the component attempt to
27096         pull the AmbientProperties from it.
27097
27098 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
27099
27100         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
27101           in the background of the owning form. Fixes #77332
27102
27103 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
27104
27105         * MimeIcon.cs: Fix for #77409
27106
27107 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
27108
27109         * XplatUIX11GTK.cs: Initial import
27110
27111 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
27112
27113         * FixedSizeTextBox: fixes class signature
27114
27115 2006-01-30  Jackson Harper  <jackson@ximian.com>
27116
27117         * FixedSizeTextBox.cs: New internal class that represents a
27118         textBox that will not be scaled.
27119         * TreeView.cs:
27120         * ComboBox.cs:
27121         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
27122         standard TextBox.
27123                 
27124 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
27125
27126         * XplatUIX11.cs: Retrieve default screen number instead of
27127           assuming 0. Attempted fix for #77318
27128
27129 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
27130
27131         * XplatUIWin32.cs: 
27132           - GetWindowPos: When a window is parented by FosterParent, use 
27133             the desktop instead of FosterParent as the base to get coordinates
27134           - CreateWindow: Don't make FosterParent the parent window for Popups
27135             if we don't want a taskbar entry, Popups automatically don't get one
27136         * Hwnd.cs: Need to call remove to actually remove the key from the
27137           hash table
27138
27139 2006-01-30  Mike Kestner  <mkestner@novell.com>
27140
27141         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
27142
27143 2006-01-30  Jackson Harper  <jackson@ximian.com>
27144
27145         * TreeView.cs:
27146         * TreeNode.cs: Raise events no matter how the treenode is
27147         checked. Patch by Don Edvalson.
27148
27149 2006-01-30  Jackson Harper  <jackson@ximian.com>
27150
27151         * TreeNode.cs: Signature fix.
27152
27153 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
27154
27155         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
27156
27157 2006-01-20  Mike Kestner  <mkestner@novell.com>
27158
27159         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
27160         event forwarding when menus are active.
27161         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
27162         Most of the patch is pdb's with a little rework.
27163
27164 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
27165
27166         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
27167           Removed GetMenuDC and ReleaseMenuDC methods; replaced
27168           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
27169         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
27170         * InternalWindowManager.cs: Added use of PaintEventStart/End to
27171           handling of WM_NCPAINT message, now passing the PaintEventArgs to
27172           the PaintWindowDecorations method
27173         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
27174         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
27175         * MenuAPI.cs: Made tracker window invisible
27176         * XplatUIWin32.cs:
27177           - Removed GetMenuDC and ReleaseMenuDC methods
27178           - Implemented the client=false path for PaintEventStart and
27179             PaintEventEnd
27180
27181 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
27182
27183         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
27184         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
27185           styles
27186         * Form.cs: 
27187           - MaximizeBox, MinimizeBox: Recreate the handle when setting
27188             the style
27189           - CreateParams: Reworked the styles to match MS look'n'feel,
27190             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
27191             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
27192
27193 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
27194
27195         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
27196           window is not mapped, since otherwise every form that's being 
27197           created is considered minimized, which is wrong.
27198         * Form.cs: Catching the exception and returning our internal value
27199           instead
27200
27201 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
27202
27203         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
27204           SetWindowMinMax() to have means to tell the driver about the minimum,
27205           maximum and maximized state window sizes. (Part of the fix for #76485)
27206         * Form.cs:
27207           - Implemented tracking of minimum and maximum window size, now calling
27208             new SetWindowMinMax() driver method to tell the driver (Part of the
27209             fix for #76485)
27210           - Finished handling of WM_GETMINMAXINFO method, now setting all values
27211             (Completes fix for #76485)
27212           - Calling new SetWindowMinMax driver method when the handle for a 
27213             form is created, to make sure the driver knows about it even if
27214             the values have been set before the window was created
27215           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
27216             to avoid messing up our anchoring calculations (partial fix
27217             for #77355)
27218         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
27219         * XplatUIX11.cs:
27220           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
27221           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
27222             (and presumably other freedesktop.org compliant WMs). Left the
27223             assumption unmapped=minimized, needed for SetVisible to work.
27224           - Now setting the window state when creating windows
27225           - Fixed SetVisible to consider/set the window state when mapping
27226             a Form. We cannot set the state before it's mapped, and we cannot
27227             use Form.WindowState once it's mapped (since it would ask the
27228             driver and get 'normal'. Therefore, we grab the state before
27229             mapping, map, and then set state.
27230           - Implmemented SetWindowMinMax method; Metacity does not seem to
27231             honor the ZoomHints, though.
27232         * XplatUIWin32.cs:
27233           - Removed MINMAXINFO (moved to XplatUIStructs)
27234           - Added SetWindowMinMax stub (on Win32 the only way to set that
27235             information is in response to the WM_GETMINMAXINFO message, which
27236             is handled in Form.cs)
27237           - Added logic to SetVisible to set the proper window state when a 
27238             form is made visible (fixes #75720)
27239
27240 2006-01-26  Jackson Harper  <jackson@ximian.com>
27241
27242         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
27243         same way we handle them with Invoke.
27244
27245 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
27246
27247         * Form.cs:
27248           - Added tracking of window state so CreateParams can return
27249             the appropriate style
27250           - Moved setting of WS_CAPTION style in CreateParams to allow
27251             styles without caption
27252         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
27253           control if the TextBox property is accessed. Fixes #77345
27254         * Control.cs:
27255           - get_Created: now uses is_disposed and is_created to determine
27256             return value (suggested by Jackson)
27257           - CreateHandle: No longer exits if the handle is being recreated
27258           - RecreateHandle: If the handle is not yet created call the 
27259             appropriate method to create either control or handle. If the
27260             control is already created CreateHandle will simply exit instead
27261             of just creating the handle
27262         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
27263           now SendMessage WM_DESTROY directly to the control when DestroyWindow
27264           is called.
27265         * XplatUIX11.cs: 
27266           - When DestroyWindow is called, instead of waiting for the 
27267             DestroyNotification from X11, we directly post it to the WndProc
27268             and immediately dispose the hwnd object.
27269             Same applies to DestroyChildWindows, and this obsoletes the
27270             expose_pending tracking. Contrary to Win32 behaviour we destroy our
27271             child windows before our own, to avoid X11 errors.
27272           - Removed the direct sending of WM_PAINT on UpdateWindow
27273         * XplatUIWin32.cs:
27274           - Reworked DoEvents and GetMessage to allow access to internal queue
27275             even when trying non-blocking access to the queue.  Fixes #77335. 
27276             Based on a patch suggestion by Don Edvalson. The new private
27277             GetMessage can now also be used as a backend for a PeekMessage
27278             frontend version.
27279         * XplatUI.cs: Improved debug output for CreateWindow
27280
27281 2006-01-25  Jackson Harper  <jackson@ximian.com>
27282
27283         * Help.cs: Allow param to be null. Patch by Don Edvalson.
27284
27285 2006-01-24  Jackson Harper  <jackson@ximian.com>
27286
27287         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
27288         when we have a MaxDropItems lower then the selected index.
27289
27290 2006-01-24  Jackson Harper  <jackson@ximian.com>
27291
27292         * Control.cs: Don't allow selection of non visible controls, allow
27293         selection of controls without parents.
27294
27295 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
27296
27297         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
27298         * DataGridDrawingLogic.cs: Add editing row only when is necessary
27299
27300 2006-01-23  Jackson Harper  <jackson@ximian.com>
27301
27302         * UpDownBase.cs: Make the textbox handle all the selection and
27303         tabbing. This fixes tabing to updown controls.
27304
27305 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
27306
27307         * TextBoxBase.cs: fixes exception thown the object was null
27308
27309 2006-01-23  Jackson Harper  <jackson@ximian.com>
27310
27311         * ButtonBase.cs: Just use the base CreateParams. They set
27312         visibility and enabled correctly.
27313         * ComboBox.cs:
27314         * TrackBar.cs:
27315         * MonthCalendar.cs: Lets let the base set as much of the
27316         createparams as possible so we don't have duplicate code all over
27317         the place.
27318
27319 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
27320
27321         * ThemeGtk.cs: Added TrackBar and some experimental code to
27322           get double buffering back
27323
27324 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
27325
27326         * DataGrid.cs: Allows row number set internally higher than the last
27327         when creating a new row. Restores the editing functionality.
27328
27329 2006-01-20  Mike Kestner  <mkestner@novell.com>
27330
27331         * MimeIcon.cs: delay Image creation until the icons are accessed
27332         instead of creating 190 scaled images on GnomeHandler startup.
27333
27334 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
27335
27336         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
27337           first call base before processing the event. Fixes #77279
27338
27339 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
27340
27341         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
27342           that the stride for the GDI bitmap would match the stride of
27343           a DIB or a Cursor.
27344
27345 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
27346
27347         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
27348
27349 2006-01-19  Jackson Harper  <jackson@ximian.com>
27350
27351         * ComboBox.cs: Hookup the text controls keydown event so we get
27352         those when the text control has the focus.
27353
27354 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
27355
27356         * Label.cs: Now using the base events instead of defining new ones;
27357           this allows us to just call the base properties without having to
27358           duplicate all base property logic 
27359
27360 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
27361
27362         * Label.cs: A label by default is not a tabstop (Fixes one of our
27363           failing nunit tests)
27364
27365 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
27366
27367         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
27368         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
27369
27370 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
27371
27372         * Cursor.cs: Reimplemented creating cursor bitmaps without using
27373           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
27374           This fixes #77218
27375         * XplatUIWin32.cs: 
27376           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
27377             constructor creates images that can't be saved. Part of the fix
27378             for #76103
27379           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
27380           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
27381             bug fix for handling window state in forms properly)
27382
27383 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
27384
27385         * ThemeGtk.cs: Simplify ScrollBar drawing
27386
27387 2006-01-18  Jackson Harper  <jackson@ximian.com>
27388
27389         * Splitter.cs: Set the default dock style for the splitter control
27390         in the constructor.
27391
27392 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
27393
27394         * ThemeGtk.cs: Corrected StateType and ShadowType for
27395           gtk_paint_box
27396
27397 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
27398
27399         * Control.cs: Make use of Theme.DoubleBufferingSupported
27400         * ThemeGtk.cs:
27401           - Added drawing for flat style buttons
27402           - Added ScrollBar drawing
27403
27404 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
27405
27406         * ThemeClearlooks.cs: Removed some unneeded code.
27407         * ThemeGtk.cs: First part of ThemeGtk enhancements.
27408
27409 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
27410
27411         * LinkLabel.cs: We need to update the hover drawing when
27412           leaving the control as well.
27413
27414 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
27415
27416         * DataGrid.cs: Clicking on non empty areas in the columns
27417            area was giving an exception
27418
27419 2006-01-17  Jackson Harper  <jackson@ximian.com>
27420
27421         * ThemeWin32Classic.cs:
27422         * ListView.cs: Do not draw/clip the headers when the header style
27423         is None.
27424
27425 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
27426
27427         * DataGrid.cs: Fixes 77260
27428         
27429 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
27430
27431         * DataGrid.cs: Clicking on a column on a empty grid was giving
27432           an exception
27433
27434 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
27435
27436         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
27437           or any keypress will crash the grid.
27438
27439 2006-01-17  Mike Kestner  <mkestner@novell.com>
27440
27441         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
27442         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
27443         invisible/previously-visible items.
27444         [Fixes #76909]
27445
27446 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
27447
27448         * ThemeClearlooks.cs:
27449         - Added CL_Draw_Button method; now other theme controls that are 
27450           not derived from button or do not have a button can draw buttons
27451           too
27452         - Updated ComboBox drawing
27453         - Beautified RadioButton drawing
27454         - Corrected drawing of bottom and left tabs
27455         - Beautified DateTimePicker and MonthCalendar
27456         - Added CPDrawButton and CPDrawRadioButton
27457
27458 2006-01-16  Jackson Harper  <jackson@ximian.com>
27459
27460         * ComboBox.cs: Set the initial value of the scrollbar to the
27461         current index. Reduce the numbers of refreshs and IndexOfs called.
27462
27463 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
27464
27465         * FileDialog.cs: When the file listview is focused hitting the
27466           backspace key moves the fileview to the parent directory
27467
27468 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
27469
27470         * Form.cs: 
27471           - Added RecreateHandle call when changing taskbar visibility to 
27472             trigger reparenting in Win32 driver (Fixes #75719)
27473           - If a window has minimize or maximize buttons, it cannot have
27474             a help button
27475         * XplatUIWin32.cs:
27476           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
27477             the toplevel form with FosterParent (A toolwindow not on the
27478             taskbar) (Fixes #75719)
27479           - Made FosterParent a toolwindow
27480
27481 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
27482
27483         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
27484
27485 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
27486
27487         * ToolTip.cs: If SetToolTip is called from a control and the mouse
27488           is currently over that control, make sure that tooltip_window.Text
27489           gets updated
27490
27491 2006-01-13  Mike Kestner  <mkestner@novell.com>
27492
27493         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
27494
27495 2006-01-13  Jackson Harper  <jackson@ximian.com>
27496
27497         * TreeView.cs: On MS GetNodeAt never actually factors in the X
27498         value passed.  Also redraw the selected node when we recieve
27499         focus, so tabbing between trees works correctly.
27500
27501 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
27502
27503         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
27504           ~/.gconf/%gconf-tree.xml, so use
27505           .gconf/desktop/gnome/interface/%gconf.xml
27506
27507 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
27508
27509         * TextControl.cs: Draw text in gray if control is disabled
27510
27511 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
27512
27513         * TreeView.cs: Draw the focus rectangle outside the highlight, to
27514           make sure it's always visible. Fixes #76680.
27515
27516 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
27517
27518         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
27519
27520 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
27521
27522         * PageSetupDialog.cs: Added.
27523         * PrintDialog.cs: Attributes.
27524         * PrintPreviewControl.cs: Updates.
27525         * PrintPreviewDialog.cs: Updates.
27526         
27527 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
27528
27529         * Control.cs: Undid my selection check fix, since it's not needed
27530         * TextBoxBase.cs:
27531           - Now considering the presence of hscroll/vscroll when sizing
27532             vscroll/hscroll respectively. Fixed bug #77077
27533           - Added Left/Up/Down/Right to IsInputKey list to prevent
27534             ContainerControl from stealing them. This fixes what I broke
27535             with my last checkin.
27536
27537 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
27538
27539         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
27540           I finally understand how the property can be set without a setter :-)
27541
27542 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
27543
27544         * Application.cs:
27545           - Switched RunLoop to use static Message.Create to create a 
27546             Message object
27547           - Added PreProcessMessage call in runloop for keyboard events; this
27548             is part of the fix for #77219, I overlooked this originally in the
27549             MSDN doc for PreProcessMessage
27550         * Control.cs:
27551           - Removed call to PreProcessMessage from handling of keyboard 
27552             messages; it's supposed to be done in the message pump
27553           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
27554             per MSDN documentation.
27555           - IsInputChar: All chars are input chars by default; removed the 
27556             parent calling chain, MS does not document that
27557           - PreProcessMessage: If IsInputChar is true, we want to return false
27558             to allow dispatching of the message
27559           - When selecting the next control, now also check that we're not
27560             selecting ourselves again and therefore return a false positive.
27561         * TextBoxBase.cs:
27562           - Tried to match return values for IsInputKey and ProcessDialogKey
27563             to what MS returns; moved processing of our special keys outside
27564             ProcessDialogKey since MS does not seem to return true on those.
27565           - Moved code that previously was in ProcessDialogKey into new private
27566             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
27567           - Reworked handling of WM_CHAR to not have to duplicate code from
27568             Control.cs anymore, instead we simply call down to base.
27569            
27570 2006-01-12  Jackson Harper  <jackson@ximian.com>
27571
27572         * ComboBox.cs: We always need to refresh the text area when
27573         EndUpdate is called. Fixes the combobox in the file dialog.
27574         * Control.cs: Don't create the creator_thread until the controls
27575         handle is created.  Also in InvokeRequired we check if the
27576         creator_thread is null. This gives the effect of InvokeRequired
27577         returning true if the controls handle is not created yet, and
27578         matches MS.
27579
27580 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
27581
27582         * XplatUI.cs:
27583           - Added StartLoop() driver method. This is used to allow drivers to
27584             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
27585             loop for a particular thread
27586           - Added EndLoop() driver method. This is called once the message
27587             pump for the thread is shut down
27588           - Added SupportsTransparency method to allow the driver to indicate
27589             opacity support for windows
27590         * Form.cs:
27591           - Removed TODO attribute, completed AllowTransparency property
27592           - Added documented logic to Opacity
27593         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
27594           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
27595           versions of CompatibleTextRendering
27596         * X11Structs.cs: Added opacity atom to our atom enumeration
27597         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
27598           of a form might be set before it's reparented by the WM, and we need
27599           the opacity value without calling up to Form)
27600         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
27601           SupportsTransparency() driver methods
27602         * Application.cs: Now calling StartLoop and EndLoop driver methods
27603         * XplatUIX11.cs:
27604           - Added opacity atom registration
27605           - Added StartLoop()/EndLoop() methods. They're empty right now but
27606             will need to get implemented when we switch to a per-thread queue
27607           - Implemented SupportsTransparency() method
27608           - Implemented SetWindowTransparency() method
27609           - Added support for setting the opacity value when a window is
27610             reparented (since the opacity needs to be set on the WM frame)
27611         * XplatUIOSX.cs, XplatUIWin32.cs:
27612           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
27613
27614 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
27615
27616         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
27617
27618 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
27619
27620         * FileDialog.cs: Added ToolTip for MWFFileView
27621         * MimeIcon.cs: Rewrote GnomeHandler.
27622           - Get currently used gnome icon theme from
27623             ($HOME)/.gconf/%gconf-tree.xml
27624           - Make use of inherited icon themes
27625           - Support SVG icon themes like Tango via librsvg
27626
27627 2006-01-12  Miguel de Icaza  <miguel@novell.com>
27628
27629         Revert's Jackson's revert which broke 2.0 builds.   Fix both
27630         builds. 
27631         
27632         * Application.cs: Move the use_compatible_text_rendering outside
27633         the NET_2_0 define.  If we ever need to use the
27634         use_compatible_text_rendering on the individual controls they will
27635         access the variable from the common shared code paths.
27636
27637 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
27638
27639         * XplatUI.cs:
27640           - Added more granular debug options
27641           - Added method to print both window text and id
27642           - Switched debug output to use new Window() debug method
27643           - Added IsEnabled() driver method
27644           - Added EnableWindow() driver method
27645         * Form.cs:
27646           - Removed end_modal; no longer needed, new loop handles termination
27647             via 'closing' variable
27648           - If form is modal, setting DialogResult will now initiate loop
27649             termination via 'closing' variable
27650           - Added support for is_enabled/WS_DISABLED to CreateParams
27651           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
27652             does all the work
27653           - Removed code that's now in RunLoop from ShowDialog()
27654           - Added various documented sanity checks to ShowDialog()
27655           - Added handling of WM_DESTROY message; we set 'closing' on getting
27656             the message to indicate the message pump to terminate
27657           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
27658             send by the Application.ExitThread method. (We send the message
27659             to destroy the window after all other events have been
27660             processed through the queue, instead of destroying the handle 
27661             directly)
27662           - Moved code from Close() method to WM_CLOSE handler; added logic
27663             to only send close-related events if the form is not displayed
27664             modal
27665         * Splitter.cs (..ctor): Fixed typo in resource name
27666         * Control.cs:
27667           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
27668             brush now
27669           - set_Cursor: Now only setting calling into XplatUI if the handle for
27670             the control is already created; this avoids implict handle creation
27671             or crashes if it's not created
27672           - set_Enabled: Now setting the enabled state via the new driver method
27673             instead of just tracking it
27674           - CreateParams: Added logic to set WS_DISABLED based on enabled state
27675           - CreateControl: Reordered event firing and method calls to more
27676             closely fire events in the order MS does. Now setting the
27677             enabled state in the driver when creating the control.
27678           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
27679             match MS order
27680         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
27681           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
27682         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
27683         * Hwnd.cs:
27684           - Added tracking of window enabled state (get_Enabled/set_Enabled)
27685           - Added EnabledHwnd property to easily allow a driver to find the
27686             handle of the first enabled window in the parent chain (this is
27687             used by drivers to pass up input events of disabled windows)
27688         * XplatUIDriver.cs: Added IsEnabled() method
27689         * Application.cs:
27690           - Removed crude and obsolete exiting tracking variable
27691           - Removed internal ModalRun(); replaced by RunLoop()
27692           - Implemented private CloseForms() method to allow closing all 
27693             windows owned by a particular (or all) threads
27694           - Exit() now properly closes all windows without forcing the message
27695             pump to quit
27696           - Removed obsolete InternalExit() method
27697           - Changed Run() methods to use new RunLoop() message pump
27698           - Implemented new RunLoop() method for both modal and non-modal forms
27699         * CommonDialog.cs:
27700           - get_CreateParams: Added setting of WS_DISABLED
27701           - Simplified ShowDialog(); now all the work is done in RunLoop(),
27702             invoked via Form.ShowDialog()
27703         * NativeWindow.cs: We don't remove the window from the collection when
27704           the handle is destroyed; there might still be messages for it in the
27705           queue (mainly the resulting WM_DESTROY); instead it will be removed
27706           when Control calls InvalidateHandle in the WM_DESTROY handler
27707         * XplatUIX11.cs:
27708           - CreateWindow: Added logic to handle the WS_DISABLED window style
27709           - EnableWindow: Implemented based on Hwnd.Enabled
27710           - GetMessage: Reset PostQuitState so the method can be called again
27711           - Implemented support for disabled windows (passing messages to the
27712             first enabled parent) in handling all input messages
27713           - Added optimizations for handling Expose events
27714           - Implemeted new driver method IsEnabled()
27715           - Now always resetting paint pending tracking vars when we start paint
27716           - Re-implemented UpdateWindow via just sending a WM_PAINT message
27717         * XplatUIOSX.cs: Added IsEnabled method stub
27718         * XplatUIWin32.cs: Implemented new IsEnabled() method
27719
27720 2006-01-11  Jackson Harper  <jackson@ximian.com>
27721
27722         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
27723         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
27724         variables a little.
27725         * ColorDialog.cs: Clear out the old form before adding the new
27726         panel.  
27727
27728 2006-01-11  Jackson Harper  <jackson@ximian.com>
27729
27730         * X11Dnd.cs: Make sure to add all the text formats when adding
27731         strings to the data object.
27732         * TreeNodeCollection.cs: When adding to a sorted tree we need to
27733         do some redrawing too.  Also change the UpdateNode to an
27734         UpdateBelow so the newly added node gets painted.
27735         
27736 2006-01-11  Miguel de Icaza  <miguel@novell.com>
27737
27738         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
27739         LinkLabel.cs, PropertyGrid.cs: Implement the
27740         UseCompatibleTextRendering property for 2.x
27741
27742         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
27743
27744 2006-01-11  Jackson Harper  <jackson@ximian.com>
27745
27746         * TreeView.cs: Use the property for setting the selected node so
27747         the correct events get raised.
27748         * TreeNode.cs: Update the tree when the fore/back colours of a
27749         node are set.
27750
27751 2006-01-10  Jackson Harper  <jackson@ximian.com>
27752
27753         * TreeView.cs: Allow setting SelectedNode to null.
27754
27755 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
27756
27757         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
27758
27759 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
27760
27761         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
27762
27763 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
27764
27765         * PrintDialog.cs: Added attributes and set default property values.
27766
27767 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
27768
27769         * PrintControllerWithStatusDialog.cs: 
27770         Added PrintControllerWithStatusDialog.
27771
27772 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
27773
27774         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
27775         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
27776
27777 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
27778
27779         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
27780
27781 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
27782
27783         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
27784         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
27785
27786 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
27787
27788         * MimeIcon.cs: Added internal class SVGUtil.
27789
27790 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
27791
27792         * FileDialog.cs: Don't crash if there are two files with the
27793           same name but different locations.
27794
27795 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
27796
27797         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
27798         dates across multiple month grids. Used to not highlight entire 
27799         month, but does now.
27800         
27801 2006-01-06  Jackson Harper  <jackson@ximian.com>
27802
27803         * MonthCalendar.cs: Removed DoEvents call to prevent a running
27804         message loop. Change timer intervals to numbers that seem more
27805         natural.
27806
27807 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
27808
27809         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
27810           object for location info since screen object is now implemented.
27811
27812 2006-01-05  Jackson Harper  <jackson@ximian.com>
27813
27814         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
27815         * AsyncMethodResult.cs: We no longer use a WeakReference for the
27816         AsyncMethodResult, this is because we ALWAYS want the
27817         ManualResetEvent to get set.
27818         * Control.cs: When disposing use an async invoke to call shutdown
27819         code, so that thigns don't block on the finalizer thread.  Also
27820         check if we even have a message loop before trying to send
27821         messages, if we don't then don't bother sending messages.
27822         - No more weak references for async methods
27823         * XplatUIDriver.cs: No more weak references for async methods.
27824
27825 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
27826
27827         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
27828           returns two FontFamily with the same name
27829
27830 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
27831
27832         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
27833           drawing disabled text. Instead using the ColorGrayText color
27834
27835 2006-01-04  Jackson Harper  <jackson@ximian.com>
27836
27837         * TreeNode.cs: redraw the node when its image index is changed.
27838
27839 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
27840
27841         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
27842           time I checked there are no others like it.
27843
27844 2006-01-04  Jackson Harper  <jackson@ximian.com>
27845
27846         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
27847         this gives the behavoir I was looking for.
27848         * Control.cs: Special case Invoking EventHandlers, this matches MS
27849         and fixes part of bug #76326.
27850
27851 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
27852
27853         * ThemeClearlooks.cs, FileDialog.cs:
27854           - Reflect the latest Theme class changes
27855           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
27856             with DateTime
27857             
27858 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
27859
27860         * Theme.cs: Cache UI resource images and resize them if needed
27861
27862 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
27863
27864         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
27865           is called. This fixes the crash in Nexxia when setting the font
27866           attributes in the chat. [However, RTF needs a look-over to make sure
27867           that all SelectionXXX methods handle the special case that selection
27868           is empty and therefore the change must be applied to all text starting
27869           at the cursor/selection start]
27870
27871 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
27872
27873         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
27874           XplatUIOSX.cs: Added SendMessage and PostMessage methods
27875         * X11Keyboard.cs: Switched to new way of calling PostMessage
27876
27877 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
27878
27879         * Theme.cs: Added theme interface for images to allow the theme to
27880           control what images are used for things like FileDialog, MessageBox
27881           icons, etc.
27882         * MessageBox.cs: Now uses the new Theme icon/image interfaces
27883
27884 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
27885
27886         * FileDialog.cs:
27887           - Removed some dead code
27888           - Opening a recently used file does work now
27889           - Small UI enhancements
27890           - Refactoring
27891
27892 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
27893
27894         * FileDialog.cs: Forgot too add __MonoCS__
27895
27896 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
27897
27898         * FileDialog.cs: We are able to read recently used files now let's
27899           go on and write them.
27900
27901 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
27902
27903         * FileDialog.cs: Breathe some life into "last open"/"recently used"
27904           button
27905         * MimeIcon.cs: Do a check for the top level media type also
27906
27907 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
27908
27909         * ThemeClearlooks.cs:
27910           - Added CPDrawStringDisabled
27911           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
27912             some chars if the text doesn't fit into text_rect
27913           - DrawListViewItem: If View = View.LargeIcon center the image;
27914             rewrote the drawing of ListViewItem.Text if View = 
27915             View.LargeIcon
27916
27917 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
27918
27919         * MimeIcon.cs: Use default KDE icon theme if there is no
27920           "48x48" directory for the current icon theme, fixes #77114
27921         * Mime.cs: Disable not working and actually not used code. 
27922         * ThemeWin32Classic.cs:
27923           - Replace "new SolidBrush" in GetControlBackBrush and
27924             GetControlForeBrush with ResPool.GetSolidBrush
27925           - Changed DrawListViewItem from private to protected virtual
27926         * FileDialog.cs:
27927           - Added form.MaximizeBox = true
27928           - Don't throw an exception if there is a broken symbolic link
27929
27930 2005-12-23  Jackson Harper  <jackson@ximian.com>
27931
27932         * TabControl.cs: Give the panels focus, keyboard navigation is
27933         fixed so this works correctly now.
27934         - We need these key events also.
27935         * ToolBar.cs: Remove some of the poor mans double buffering.
27936         
27937 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
27938
27939         * ComboBox.cs: The internal TextBox now returns the focus.
27940
27941 2005-12-23  Jackson Harper  <jackson@ximian.com>
27942
27943         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
27944
27945 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
27946
27947         * Control.cs: Removed debug code
27948         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
27949           implicit children
27950
27951 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
27952
27953         * Control.cs: When creating the control, update the Z-order after
27954           all it's children are created, too. (Fixes nexxia not showing
27955           picturebox bug)
27956
27957 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
27958
27959         * Control.cs: Do not update the anchoring distances if layout is
27960           suspended, instead do it once layout is resumed
27961
27962 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
27963
27964         * Control.cs: 
27965           - After many hours of debugging, for both Jackson and
27966             myself, it turns out that it helps to set the parent of a control
27967             if you want to actually see it onscreen. In the spirit of that
27968             discovery, we're now setting the parent of the control and
27969             it's children when the control's handle is created. This fix
27970             will make Lutz Roeder's Reflector run happily. 
27971           - now just creating the handle instead of the whole control when
27972             getting a graphics context for the control.
27973
27974 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
27975
27976         * ScrollableControl.cs: When calculating the canvas, don't consider
27977           the scrollbar widths. Instead, predict if horizontal scrollbar
27978           will affect canvas when deciding on vertical display and vice versa.
27979
27980 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
27981
27982         * RichTextBox.cs: Set default RTF font for documents that don't
27983           have a font table (Fixes #77076)
27984
27985 2005-12-22  Jackson Harper  <jackson@ximian.com>
27986
27987         * TextBoxBase.cs: It's difficult to do, but you can have an empty
27988         clipboard. This prevents a NullRef in that case.
27989         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
27990         clipboard. PRIMARY is for the currently selected text only. (We
27991         should implement PRIMARY at some point.
27992
27993 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
27994
27995         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
27996           a Unicode function with a structure that was defined in Ansi way.
27997           This fixes #76942.
27998
27999 2005-12-21  Jackson Harper  <jackson@ximian.com>
28000
28001         * StatusBar.cs: Statusbar handles its fore/back colours on it's
28002         on. Because thats how it rolls. (and this avoids it using ambient
28003         colours).
28004         * ThemeWin32Classic.cs: Use the proper back color for filling.
28005         * Menu.cs: Use the system menu bar color for drawing menu
28006         bars. Using the window back color will bring ambient colours into
28007         the picture.
28008
28009 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
28010
28011         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
28012           Bitmaps were created and not disposed.
28013
28014 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
28015
28016         * Control.cs (CreateControl): Don't do anything if the control is
28017           already created, otherwise we'd fire the OnCreated event more than
28018           once
28019
28020 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
28021
28022         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
28023           will always match. Instead return -1. Fixes #76464.
28024
28025 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
28026
28027         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
28028           neither the beginning nor the end of the line (Fixes bug #76479)
28029
28030 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
28031
28032         * Control.cs:
28033           - ControlNativeWindow.ControlFromHandle(): Now handling situation
28034             where handle is invalid
28035           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
28036             instead of slower linear search
28037         * NativeWindow.cs: Don't remove the window from the hashtable until
28038           after the driver has destroyed it (since the driver might use
28039           Control.FromHandle to lookup the control object
28040         * Hwnd.cs: Added DestroyPending property to track if a window is 
28041           already destroyed as far as the driver is concerned and only hasn't
28042           yet notified the control
28043         * XplatUIX11.cs:
28044           - Activate(): Check if the window is still valid before using the 
28045             handle
28046           - Implemented DestroyChildWindow() method to mark child windows as
28047             destroyed when a window is destroyed. This prevents situations 
28048             where we might call an X method based on queued events for a
28049             window that already has been destroyed but we haven't yet pulled
28050             the destroy method from the queue.
28051           - Added a call to the new DestroyChildWindow() method to the drivers
28052             DestroyWindow code. Also now marking the destroyed window itself
28053             as pending
28054
28055 2005-12-20  Jackson Harper  <jackson@ximian.com>
28056
28057         * StatusBar.cs:
28058         * StatusBarPanel.cs: Don't calculate panel sizes on draw
28059         anymore. Just do them when needed, also track the rects of panels
28060         so that we can optimize refreshing more in the future.
28061
28062 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
28063
28064         * ColorDialog.cs: Fixed focus drawing in small color controls
28065
28066 2005-12-19  Jackson Harper  <jackson@ximian.com>
28067
28068         * InternalWindowManager.cs:
28069         * MdiWindowManager.cs: Cleanup some coordinate system changes so
28070         moving windows works properly.
28071
28072 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
28073
28074         * Control.cs: 
28075           - Removed call to InitLayout() from SetBoundsCore(); doc says
28076             it's only called when a control is added to a container
28077           - Split InitLayout logic, moved to separate UpdateDistances() method
28078             since we need to perform those calculations more often than just
28079             when adding the control to a container. (Needed to fix #77022)
28080           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
28081           - Reduced the OnBindingContextChanged events count, don't send them
28082             unless the control is created, we still aren't totally matching
28083             MS, but I can't quite figure out some of their rules
28084
28085 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
28086
28087         * ThemeClearlooks.cs: Corrected distance between ProgressBar
28088           stripes
28089
28090 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
28091
28092         * ThemeClearlooks.cs:
28093           - Updated ProgressBar drawing
28094           - Corrected drawing of ScrollBars and scroll buttons
28095           - Some temporary fixes for minor pixel artefacts
28096
28097 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
28098
28099         * Control.cs:
28100           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
28101             cause events to be sent in the same order as MS does.
28102           - Added ChangeParent() method to trigger various OnXXXChanged events
28103             that need to be fired when a parent changes (This is a reworking
28104             of the patch from r54254, with the X11 errors fixed)
28105           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
28106             since on MS we get OnLayoutChanged events when calling Clear()
28107           - Changed Enabled property to consider parent state as well, if a
28108             parent is not enabled, the control will not be either
28109           - Changed Parent property to simply call Controls.Add() since that
28110             now does all the work required, this way we avoid code duplication
28111           - Threw in a few OnBindingsContextChanged calls to try and match
28112             when MS sends them. We seem to send a few too many, though.
28113           - Added call to CreateControl when adding the control to a parent.
28114             We were never calling CreateControl. Still needs some work, in
28115             some places we treat HandleCreated and ControlCreated as equal, 
28116             which is wrong
28117           - Removed obsolete commented out code from UpdateZOrder()
28118
28119 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
28120
28121         * ThemeClearlooks.cs: Updated TrackBar drawing.
28122
28123 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
28124
28125         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
28126
28127 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
28128
28129         * FileDialog.cs: Add the Help button and the open readonly
28130           checkbox only if needed
28131
28132 2005-12-16  Jackson Harper  <jackson@ximian.com>
28133
28134         * Control.cs: Make sure we have an active menu before trying to
28135         process commands on it. Prevents menu-less forms from crashing
28136         when Alt is pressed.
28137         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
28138         Dieter Bremes.
28139         * RichTextBox.cs: Expand statement to help out gmcs and fix the
28140         2.0 build.
28141
28142 2005-12-16  Jackson Harper  <jackson@ximian.com>
28143
28144         * InternalWindowManager.cs: Don't translate tool windows screen
28145         coordinates. This fixes windows 'bouncing' around when being moved.
28146
28147 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
28148
28149         * TextBoxBase.cs:
28150           - MaxLength now treats 2^31-1 equal to unlimited length (this is
28151             not quite MS compatible, MS uses that number only for single line
28152             and 2^32-1 for multi-line, but I figure it won't hurt keeping
28153             the limit at 2GB)
28154           - Now enforcing the MaxLength limit when entering characters
28155           - Added argument to internal Paste() method to track if it's called
28156             from programatically or via keyboard, since keyboard driven pastes
28157             need to enforce max-length
28158           - Added logic to Paste to only paste as many chars as MaxLength 
28159             allows
28160         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
28161         * TextControl.cs:
28162           - Added Length property to return number of characters in document
28163           - Added private CharCount property which only tracks actual chars
28164             in the document (no linefeeds) and fires event when CharCount
28165             changes
28166           - Added tracking of character count to all methods that alter it
28167           - Added LengthChanged event to allow applications to subscribe
28168             to any changes to the document
28169
28170 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
28171
28172         * TextBox.cs: 
28173           - Removed local password_char field (moved to TextBoxBase)
28174           - Now setting the document's password var when password is
28175             set
28176         * TextBoxBase.cs:
28177           - Added password_char field (needed here so MultiLine can
28178             access it)
28179           - Added logic to MultiLine property setter to set the document's
28180             variable when password display is allowed
28181           - Removed debug code and made some debug code conditional
28182         * TextControl.cs:
28183           - Added RecalculatePasswordLine() method to handle special password
28184             char only lines
28185           - Added PasswordChar property, also added related tracking vars
28186           - Draw() method now uses local text var for grabbing text to draw,
28187             this var is set to line.text unless we're doing password display,
28188             then it is set to the pre-generated all-password-chars line
28189           - Added calling RecalculatePasswordLine() method for password lines
28190
28191 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
28192
28193         * Hwnd.cs: 
28194           - Added Reparented property to allow tracking of Window Manager
28195             reparenting actions (which affect X/Y calculations of toplevel 
28196             windows)
28197           - Made ToString() print window handles in hex
28198         * XplatUIX11.cs:
28199           - AddConfigureNotify(): Now uses reparented state off Hwnd to
28200             determine if X/Y needs offsetting
28201           - AddConfigureNotify(): Fixed offset calculations
28202           - Now adds ReparentNotify messages into the queue
28203           - Now processes ReparentNotify messages and causes a 
28204             WM_WINDOWPOSCHANGED message to be sent upstream if a window
28205             is reparented (as most likely it's X/Y coordinates are changed
28206             due to that)
28207
28208 2005-12-14  Jackson Harper  <jackson@ximian.com>
28209
28210         * XplatUIX11.cs: Tool windows still need to respek focus.
28211
28212 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
28213
28214         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
28215           have a working release
28216
28217 2005-12-13  Jackson Harper  <jackson@ximian.com>
28218
28219         * Form.cs: Update styles after setting the border style regardless
28220         of whether or not the window is using a window manager.
28221
28222 2005-12-13  Jackson Harper  <jackson@ximian.com>
28223
28224         * Form.cs: We now hook into an internal window manager instead of just an
28225         MDI subsystem, this is so we can have properly behaving tool windows.
28226         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
28227         * InternalWindowManager.cs: New internal class that acts as a
28228         window manager for tool windows and as a base for mdi windows.
28229         * MdiWindowManager.cs: New class that acts as a window manager for
28230         mdi windows.
28231
28232 2005-12-12  Jackson Harper  <jackson@ximian.com>
28233
28234         * Control.cs: Updates so we match behavoir for for implicit
28235         controls. Fixes explosions in MDI.
28236
28237 2005-12-12  Jackson Harper  <jackson@ximian.com>
28238
28239         * Control.cs: Implement Invalidate (Region).
28240
28241 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
28242
28243         * Control.cs: 
28244           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
28245             the same events as MS does. MS fires events for each property 
28246             except, for unknown reasons, Cursor, when the control is reparented. 
28247             I can't seem to totally match add/remove since MS also fires some 
28248             VisibleChanged events, which makes no sense. Consolidated the
28249             parenting code into a separate method so it can be called from
28250             both Add and Remove. set_Parent no longer needs any special logic
28251             as it calls the parent's add method which implicitly fires
28252             all events
28253           - Removed some obsolete code and debug output
28254           - Enabled state is inherited from parents, if this is enabled
28255
28256 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
28257
28258         * Form.cs: Removed commented out code
28259
28260 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
28261
28262         * Control.cs:
28263           - Added internal version of Invoke, with additional argument 
28264             indicating if we're calling it from a Dispose() handler. That
28265             way we can avoid BeginInvoke throwing an exception if we're
28266             calling for an already destroyed window.
28267           - Added a dispose argument to BeginInvokeInternal, and made the
28268             check if a valid window handle chain exists conditional on
28269             it not being a dispose call
28270           - Removed code in DestroyHandle to destroy our children. Since we
28271             now handle the WM_DESTROY message we will catch all our children
28272             being destroyed.
28273           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
28274         * Form.cs:
28275           - Added a field to track the application context of the form.
28276           - No need to set closing variable as response to WM_CLOSE, instead
28277             we destroy the window. We also call PostQuitMessage if the form
28278             has an application context (which makes it the main app form,
28279             which, when closed terminates the app)
28280         * XplatUI.cs:
28281           - Dropped Exit() method, it's naming was confusing
28282           - Added PostQuitMessage() which causes GetMessage to return false
28283             once the message queue is empty
28284         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
28285           PostQuitMessage()
28286         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
28287           no longer a valid XplatUI method, but left it in since it's used
28288           internally. Added empty PostQuitMessage() method.
28289         * MenuAPI.cs: Replaced call to Exit() with call to
28290           PostQuitMessage, even though this is probably no longer needed.
28291         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
28292         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
28293         * Application.cs:
28294           - Replaced call to XplatUI.Exit() with PostQuitMessage()
28295           - Removed old debug code that would call XplatUI for exception
28296             display, enabled standard exception handling (Still not enabled
28297             though, until NativeWindow's ExternalExceptionHandler define
28298             is removed
28299         * NativeWindow.cs:
28300           - Added internal method to allow control to update NativeWindow
28301             after a window has been destroyed
28302           - Added handling of already destroyed windows when calling i
28303             DestroyWindow
28304           - Added removal of handle from list on ReleaseHandle
28305         * XplatUIX11.cs:
28306           - Dropped GetMessageResult var and related code
28307           - Added PostQuitState to field to track if PostQuitMessage has been
28308             called
28309           - Dropped Exit() method
28310           - Added PostQuitMessage() method
28311           - GetMessage now will return false if PostQuitState is set and no
28312             more messages are in the queue.
28313           - Expose handler will no longer generate WM_PAINT messages if we are
28314             in PostQuitState since it's very likely any windows have already
28315             been destroyed, and since Hwnd won't get updated until we have
28316             processed the DestroyNotify we'd be causing X errors.
28317         
28318 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
28319
28320         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
28321           Thanks to Mike for pointing out the err of my ways.
28322
28323 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
28324
28325         * Control.cs(PreProcessMessage): Moved menu handling back, but
28326           after all other key handling, to match MS (who handles Menu in
28327           DefWndProc)
28328         * Menu.cs (WndProc): Removed my brainfart
28329
28330 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
28331
28332         * Control.cs(PreProcessMessage): Removed special menu handling 
28333         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
28334
28335 2005-12-07  Mike Kestner  <mkestner@novell.com>
28336
28337         * Control.cs : special case SYSKEYUP so that we can adjust keynav
28338         state according in tracker.
28339         * Menu.cs : promote tracker field to base class and provide a tracker
28340         lookup capability.  Add/Remove shortcuts dynamically if the top menu
28341         has a tracker. Unparent items that are removed from the collection.
28342         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
28343         * Theme*.cs: add always_show_hotkeys field to support configurability
28344         of mnemonic display.  win32 doesn't show mnemonics until Alt is
28345         pressed.
28346
28347 2005-12-07  Jackson Harper  <jackson@ximian.com>
28348
28349         * MdiChildContext.cs: Use Control.ResetCursor.
28350         * Control.cs: ResetCursor needs to set the property so that the
28351         correct XplatUI call gets made.
28352
28353 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
28354
28355         * Control.cs: More fixes to make our key events match MS. We
28356           were not setting the modifier state on KeyData, and we were
28357           not generating any events when Alt was pressed with a key
28358           since handling of WM_SYSxxx was missing for the OnKey methods.
28359
28360 2005-12-07  Jackson Harper  <jackson@ximian.com>
28361
28362         * MdiChildContext.cs: reenable the sizing code.
28363         - When the mouse leaves a window reset its cursor.
28364
28365 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
28366
28367         * ThemeClearlooks.cs: Reflect latest Hwnd changes
28368
28369 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
28370
28371         * Hwnd.cs: Now using the theme 3d bordersize to calculate
28372           widths of Fixed3D borders
28373
28374 2005-12-07  Jackson Harper  <jackson@ximian.com>
28375
28376         * MdiClient.cs: Fix warnings. Earn Mike's love.
28377
28378 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
28379
28380         * ThemeClearlooks.cs:
28381           - Adjusted mouse over button color
28382           - Added first parts of CheckBox drawing
28383           - Added correct color for selected text background
28384           - Fixed ComboBox drawing
28385           - Added CPDrawBorder3D and CPDrawBorder
28386
28387 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
28388
28389         * XplatUIX11.cs: Added call to XBell for AudibleAlert
28390
28391 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
28392
28393         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
28394           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
28395           alert users via sound. We could add an enum arg with different
28396           types of alerts in the future
28397
28398 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
28399
28400         * Control.cs: Fix behaviour problems pointed out by Mike
28401
28402 2005-12-05  Mike Kestner  <mkestner@novell.com>
28403
28404         * StatusBarPanel.cs: add Invalidate method and hook it into all the
28405         prop setters.  Calls parent.Refresh for now, but could be maybe be
28406         optimized with an internal method on StatusBar at some point.
28407         [Fixes #76513]
28408
28409 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
28410
28411         * RichTextBox.cs: Implemented get_SelectionColor
28412
28413 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
28414
28415         * ThemeClearlooks.cs:
28416           - Removed dead code
28417           - Draw black button border only if button is Form.AcceptButton
28418           - Draw correct button color for pressed RadioButton if the mouse 
28419             has entered the button
28420           - Updated ProgressBar drawing!
28421           - Updated CPDrawSizeGrip drawing
28422           - Updated StatusBarPanel drawing
28423
28424 2005-12-05  Mike Kestner  <mkestner@novell.com>
28425
28426         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
28427         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
28428
28429 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
28430
28431         * ThemeClearlooks.cs: Initial check-in, activate with
28432           export MONO_THEME=clearlooks
28433         * ThemeEngine.cs: Added ThemeClearlooks
28434
28435 2005-12-03  Mike Kestner  <mkestner@novell.com>
28436
28437         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
28438         [Fixes #76897]
28439
28440 2005-12-02  Jackson Harper  <jackson@ximian.com>
28441
28442         * Form.cs: If the child form has no menu the default main menu is
28443         used as the active menu.
28444
28445 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
28446
28447         * ListBox.cs: Check if any items exist before trying to resolve 
28448           coordinates into items
28449
28450 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
28451
28452         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
28453           as the second color for the background hatch
28454
28455 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
28456
28457         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
28458         * RichTextBox.cs: FormatText position arguments are 1-based, now making
28459           sure that what we pass to FormatText is always 1-based. Fixes #76885
28460
28461 2005-11-29  Miguel de Icaza  <miguel@novell.com>
28462
28463         * NumericUpDown.cs (EndInit): When we are done initializing,
28464         reflect any updates on the UI.
28465
28466 2005-12-02  Jackson Harper  <jackson@ximian.com>
28467
28468         * ImplicitHScrollBar.cs:
28469         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
28470         their container controls.
28471         * TreeView.cs: Use the new implicit scrollbars.
28472
28473 2005-12-02  Jackson Harper  <jackson@ximian.com>
28474
28475         * TreeView.cs: Make top_node internal so the TreeNodeCollections
28476         can play with it.
28477         * TreeNodeCollection.cs: If we remove the topnode we need to
28478         update topnode to the next node in line.
28479         - When clearing nodes go through the same process as removing
28480         them, so they get depareneted and checked if they are top node.
28481
28482 2005-12-01  Jackson Harper  <jackson@ximian.com>
28483
28484         * TreeView.cs: When imagelists are used the image area is
28485         selectable as well as the text.
28486         - If there are no selected nodes select the first one.
28487         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
28488         so don't do it more then we need to.
28489
28490 2005-12-01  Jackson Harper  <jackson@ximian.com>
28491
28492         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
28493         that arrows can be scaled.
28494
28495 2005-12-01  Jackson Harper  <jackson@ximian.com>
28496
28497         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
28498         fail. Patch by Dieter Bremes
28499
28500 2005-11-30  Jackson Harper  <jackson@ximian.com>
28501
28502         * Form.cs: Property is 2.0 only
28503         * PrintDialog.cs: Signature fix.
28504
28505 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
28506
28507         * TextControl.cs: 
28508           - No longer artificially moves text 2 pixels down (now that we have
28509             borders this is no longer needed)
28510           - Added calcs for left, hanging and right indent
28511
28512 2005-11-23  Mike Kestner  <mkestner@novell.com>
28513
28514         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
28515
28516 2005-11-30  Jackson Harper  <jackson@ximian.com>
28517
28518         * MdiChildContext.cs: Set the cloned menus forms, as these don't
28519         get cloned as part of CloneMenu ().
28520         * Menu.cs: Make sure the parent of the items get set correctly
28521         when they are added.  And the owners are notified of the changes.
28522         * Form.cs: Create an ActiveMenu property, so that when MDI is used
28523         we can change the menu being displayed/handled by the form without
28524         changing the menu assosciated with the form.
28525         - Don't let Mdi children draw/handle menus.
28526         
28527 2005-11-30  Jackson Harper  <jackson@ximian.com>
28528
28529         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
28530         a MenuChanged event. Just to make the API a little more
28531         consistent.
28532         * MainMenu.cs:
28533         * MenuItem.cs: Use the new OnMenuChanged
28534         * MdiChildContext.cs: Handle menu merging.
28535         * Form.cs: Implement MergedMenu.
28536         
28537 2005-11-30  Jackson Harper  <jackson@ximian.com>
28538
28539         * Menu.cs: We were misusing Add. Add goes behind the specified
28540         index according to the docs, and does not replace the specified
28541         index. So I added an Insert method.
28542
28543 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
28544
28545         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
28546           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
28547           is for Jackson
28548         * RichTextBox.cs: Added calls to base for DnD events
28549
28550 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
28551
28552         * TextControl.cs:
28553           - Fixed drag-selection related crash; style fixes
28554           - Implemented undo class
28555             o Implemented method to capture document state for specified
28556               range in document tree
28557             o Implemented method to restore captured document state
28558             o Implemented cursor tracking
28559             o Implemented basic undo stack
28560           - Added undo cursor tracking to methods altering cursor location
28561           - Added undo tracking to selection deletion (still missing
28562             other text-altering hookups)
28563         * RichTextBox.cs:
28564           - Added SelectionLength property
28565           - Implemented CanPaste()
28566           - Implemented Paste()
28567           - Added missing protected methods
28568           - Fixed RTF->Document conversion; now uses font index 0 and color 
28569             index 0 as the default font for the parsed text
28570           - Fixed RTF<->Document font size translation
28571           - Fixed RTF generation, now properly handles cross-tag boundaries
28572             for single line selection
28573           - No longer always appends blank line to generated RTF
28574           - Removed TODOs
28575           - Added missing attributes
28576           - Hooked up undo-related methods
28577         * TextBoxBase.cs:
28578           - Implemented Copy()
28579           - Implemented Paste()
28580           - Implemented Cut()
28581           - Fixed caret mis-behaviour on backspace across line-boundaries
28582
28583 2005-11-29  Jackson Harper  <jackson@ximian.com>
28584
28585         * MdiClient.cs: Add a method for activating mdi children. Very
28586         basic right now. I imagine someday it might need more girth.
28587         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
28588         children windows names are added to the menu item.
28589         * ThemeWin32Classic.cs: Draw the arrow if the item is an
28590         mdilist. This happens regardless of whether or not there are any
28591         mdi windows to see in the list, and according to my tests happens
28592         before the items are even added. Also happens if there isn't even
28593         an mdi client to get windows from.
28594
28595 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
28596
28597         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
28598         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
28599
28600 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
28601
28602         * DataGridTableStyle.cs:
28603           - Create always the styles for the missing columns even if they are
28604             provided by the user (not default table style)
28605         * DataGrid.cs:
28606           - Fixes bug 76770
28607           - Fixes SetDataBinding (always re-attach source)
28608           - Fixes SetNewDataSource (only clear styles if they are not for 
28609             this source)
28610          -  Expands OnTableStylesCollectionChanged to handle style refresh 
28611             and remove properly
28612
28613 2005-11-29  Jackson Harper  <jackson@ximian.com>
28614
28615         * FileDialog.cs: Implement missing bits, remove some dead
28616         code.
28617         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
28618         creation of the panel so that the options set on the dialog are
28619         seen when the panel is created.
28620         * TreeView.cs: raise a click when items are clicked.
28621         
28622 2005-11-29  Jackson Harper  <jackson@ximian.com>
28623
28624         * MdiClient.cs: Pass some signature methods through to base.
28625
28626 2005-11-28  Jackson Harper  <jackson@ximian.com>
28627
28628         * ListView.cs: Raise the click event when items are clicked.
28629
28630 2005-11-28  Jackson Harper  <jackson@ximian.com>
28631
28632         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
28633         a nullref.
28634
28635 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
28636
28637         * ThemeNice.cs: - Removed 1 pixel bitmaps
28638           - Use SmoothingMode.AntiAlias where it makes sense
28639             (ScrollButton arrow for example)
28640           - Enhanced Button focus drawing
28641           - Fixed ComboBox drawing (no artefacts anymore, focus
28642             rectangle is back again, reduced size of ComboButton, etc.)
28643           - Fixed RadioButton focus drawing for Appearence.Button
28644           - Slight ScrollButton redesign
28645           - Some LinearGradientBrush size fixes
28646           - GroupBoxes have now rounded edges
28647           - Fixed StatusBar drawing
28648
28649 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
28650
28651         * ThemeNice.cs: - Remove dead code
28652           - use correct background colors for menus, etc.
28653           - Fake pixel drawing with 1 pixel bitmaps
28654
28655 2005-11-24  Jackson Harper  <jackson@ximian.com>
28656
28657         * MdiClient.cs: Size the scrollbars when resizing the window.
28658         - Resize the maximized windows when the client is resized
28659         * Form.cs: Make the child context available
28660         
28661 2005-11-23  Jackson Harper  <jackson@ximian.com>
28662
28663         * MdiChildContext.cs: Don't size windows if they are maximized.
28664
28665 2005-11-23  Mike Kestner  <mkestner@novell.com>
28666
28667         * ContextMenu.cs: use MenuTracker.
28668         * Control.cs: remove menu handle usage.
28669         * Form.cs: remove menu handle usage.
28670         * Hwnd.cs: remove menu handle usage.
28671         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
28672         motion and clicks to the new Tracker handlers.
28673         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
28674         and handle usage.
28675         * MenuAPI.cs: refactored to combine popup and menubar event handling.
28676         Killed the MENU and MENUITEM data types and associated collections
28677         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
28678         MenuTracker class that exposes the leftovers from the old MenuAPI
28679         static methods. Restructured Capture handling so that only one grab is
28680         done for the entire menu hierarchy instead of handing off grabs to
28681         submenus. Tracker now has an invisible control to Capture when active.
28682         * MenuItem.cs: add sizing accessors, kill Create
28683         and handle usage.
28684         * Theme.cs: remove menu handle and MENU(ITEM) usage.
28685         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
28686         MENU(ITEM). remove menu handle usage, use Menu directly.
28687         * XplatUIDriver.cs: remove menu handle usage.
28688         * XplatUIOSX.cs: remove menu handle usage.
28689         * XplatUIWin32.cs: remove menu handle usage.
28690         * XplatUIX11.cs: remove menu handle usage.
28691
28692 2005-11-22  Jackson Harper  <jackson@ximian.com>
28693
28694         * Hwnd.cs: Don't compute the menu size for
28695         DefaultClientRectangle.
28696         - Reenable menu sizes being computed for GetClienRectangle.
28697         * Form.cs: Remove comment of trechery
28698         
28699 2005-11-22  Jackson Harper  <jackson@ximian.com>
28700
28701         * Hwnd.cs: The adjustments for the menu bar are made when it is
28702         attached to the form.
28703
28704 2005-11-19  Jackson Harper  <jackson@ximian.com>
28705
28706         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
28707         (just like on windows).
28708
28709 2005-11-19  Jackson Harper  <jackson@ximian.com>
28710
28711         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
28712         use real buttons anymore because they are in non client area. The
28713         one TODO here is that I need to somehow invalidate a section of
28714         the non client area.
28715
28716 2005-11-18  Jackson Harper  <jackson@ximian.com>
28717
28718         * Control.cs: Put the enum check back in now that MDI doesnt have
28719         to use this to set border styles.
28720         * Form.cs: Only set mdi child windows borders if the handle has
28721         been created.
28722         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
28723         this directly on to the driver.
28724         - Get the move start position before adjusting for the titlebar
28725         height, this fixes the windows "skipping" when they are first
28726         moved.
28727
28728 2005-11-18  Jackson Harper  <jackson@ximian.com>
28729
28730         * XplatUIX11.cs: Just compute the mdi borders separately as they
28731         don't totally match up with normal form borders.
28732
28733 2005-11-18  Jackson Harper  <jackson@ximian.com>
28734
28735         * Control.cs: Set WS_ styles for borders, so that the driver does
28736         not have to retrieve the control instance to figure out what kind
28737         of borders it should have.
28738         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
28739         driver can know its an mdi child easily.
28740         * XplatUIX11.cs: Get the border styles and whether the window is
28741         MDI from the Styles and ExStyles params instead of having to get a
28742         control. This prevents a chicken and egg problem.       
28743
28744 2005-11-18  Jackson Harper  <jackson@ximian.com>
28745
28746         * MdiClient.cs: Fix typo so scrollbars show up correctly.
28747
28748 2005-11-18  Jackson Harper  <jackson@ximian.com>
28749
28750         * MdiClient.cs: Calculate when to add and remove scrollbars
28751         correctly.
28752         * MdiChildContext.cs: Adjust the y position to take the titlebar
28753         into account.
28754         - No height for FormBorderStyle.None
28755
28756 2005-11-18  Jackson Harper  <jackson@ximian.com>
28757
28758         * Control.cs: Allow non enum values to be used for
28759         InternalBorderStyle.  MDI does this to set a special border style.
28760         - New utility methods for converting points to/from client coords
28761         - Add the newly created control to the Controls collection before
28762         updating its style. This way UpdateStyle can walk the control
28763         heirarchy to find the control if needed.
28764         so I don't need to create a new Point object all the time.
28765         * Form.cs: Let MDI windows handle their border styles.
28766         - Set styles on MDI windows so the correct title style is derived.
28767         * MdiChildContext.cs: Move all the painting and window handling
28768         into the non client area.
28769         - Use correct sizing and put correct buttons on frames based on
28770         the FormBorderStyle.
28771         - Notify the mdi client about scrolling
28772         - Need to handle the buttons ourselves now, because they are all
28773         in non client areas and we can't add controls there.
28774         * MdiClient.cs: Halfway to scrolling, this implementation is
28775         somewhat broken though, we need to check to make sure other
28776         windows aren't causing scrolling before removing the bars. Also
28777         the bars need to be drawn on top, maybe I can switch implicit
28778         controls to be on top.
28779         * Hwnd.cs: caption_height and tool_caption_height are now
28780         properties of an hwnd, this way they can be set by the driver
28781         based on the type of window they are.  In X11 the window manager
28782         handles the decorations so caption_height is zero unless its an
28783         MDI window.
28784         - Add 3 pixel borders for MDI windows (0xFFFF).
28785         - Get rid of some code duplication, have DefaultClientRectanle
28786         just call GetClientRectangle.
28787         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
28788         Hwnd now.
28789         - Set border styles differently for mdi windows.
28790         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
28791         Hwnd now.
28792         
28793 2005-11-15  Mike Kestner  <mkestner@novell.com>
28794
28795         * Menu.cs: when adding an item to the collection, if item is already 
28796         parented, remove it from the parent.
28797
28798 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
28799
28800         * X11DesktopColors.cs: Added KDE support
28801
28802 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
28803
28804         * XplatUIWin32.cs: 
28805           - Clipboard methods now can translate Rtf format
28806           - No longer removes clipboard contents whenever a new format is added
28807             to allow placing multiple formats on the clipboard
28808         * Clipboard.cs: Clipboard now supports getting a IDataObject and
28809           will place all formats contained in it onto the clipboard. Also
28810           now cleans the clipboard before placing a new object onto it
28811         * RichTextBox.cs:
28812           - Implemented set_Rtf
28813           - Implemented set_SelectedRtf
28814           - Created InsertRTFFromStream() method to allow single code base
28815             for all properties and methods that insert RTF into document
28816           - Removed debug output
28817         * TextControl.cs:
28818           - Fixed Delete(int) to fix up line numbers
28819           - Fixed ReplaceSelection to combine start and end line
28820           - Fixed serious DeleteChars bug that would leave the document tree
28821             broken
28822           - Improved DumpTree with several logic checks to detect broken
28823             document trees
28824           - Removed debug lines
28825           - Fixed Caret.WordForward/WordBack moving code, now always also 
28826             updates caret.tag (fixes crash when word-selecting across tag
28827             boundaries via keyboard)
28828           - Added Insert() method for inserting multiline text into documents
28829           - Fixed DeleteChars() calculation errors that would cause a broken
28830             tag chain with multiple tag lines
28831           - DeleteChars() no longer crashes on multi-tag lines if not all tags
28832           - Split() no longer moves caret if split is at caret location
28833           - ReplaceSelection() now updates the cursor and re-displays it
28834           - ReplaceSelection() now uses new Insert() method to avoid code
28835             duplication
28836           - FormatText() can now handle formatting partial lines
28837         * TextBoxBase.cs:
28838           - Append now uses new TextControl.Insert() method (this avoids 
28839             duplicate code)
28840           - Implemented Ctrl-X (Cut) (
28841           - Implemented Ctrl-C (Copy)
28842           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
28843             regeneration when pasting text; roundtripping Copy&Paste within
28844             edit control still fails due to some calculation bugs in GenerateRTF)
28845           - The Delete key will now remove the current selection if it is visible
28846         * TextBox.cs: Removed debug lines
28847         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
28848           driver to be initialized and can't therefore be done via a static ctor)
28849
28850 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
28851
28852         * TextControl.cs: Added backend code for finding char arrays and strings
28853         * TextBoxBase.cs:
28854           - Added mouse wheel scroll support
28855           - Added support for VScroll and HScroll events
28856         * RichTextBox.cs:
28857           - Implemented all seven Find() variants
28858           - Implemented GetCharFromPosition()
28859           - Implemented GetCharIndexFromPosition()
28860           - Implemented GetLineFromIndex()
28861           - Implemented GetPositionFromCharIndex();
28862           - Implemented SaveFile for PlainText and UnicodeText
28863           - Fixed set_Font, now setting a new font applies that font to
28864             the whole document
28865           - Implemented generic Document to RTF converter
28866           - Implemented SaveFile for RichText format (still missing unicode
28867             conversion for non-ansi chars)
28868           - Implemented get_Rtf
28869           - Implemented get_SelectedRtf
28870
28871 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
28872
28873         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
28874           to allow any captures to be released before triggering OnClick. This
28875           way a click handler may capture the mouse without interference.
28876         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
28877           This way we send them even though X may not allow a grab (if the window
28878           isn't visible, for example)
28879
28880 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
28881
28882         * DataGridViewRowEventArgs.cs: DataGridView implementation
28883         * DataGridViewElement.cs: DataGridView implementation
28884         * DataGridViewComboBoxCell.cs: DataGridView implementation
28885         * DataGridViewDataErrorContexts.cs: DataGridView implementation
28886         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
28887         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
28888         * ImageLayout.cs: DataGridView implementation
28889         * DataGridViewComboBoxColumn.cs: DataGridView implementation
28890         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
28891         * DataGridViewSelectionMode.cs: DataGridView implementation
28892         * IDataGridViewEditingControl.cs: DataGridView implementation
28893         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
28894         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
28895         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
28896         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
28897         * DataGridViewColumnSortMode.cs: DataGridView implementation
28898         * DataGridView.cs: DataGridView implementation
28899         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
28900         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
28901         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
28902         * Padding.cs: DataGridView implementation
28903         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
28904         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
28905         * DataGridViewRowEventHandler.cs: DataGridView implementation
28906         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
28907         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
28908         * DataGridViewButtonCell.cs: DataGridView implementation
28909         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
28910         * DataGridViewEditMode.cs: DataGridView implementation
28911         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
28912         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
28913         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
28914         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
28915         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
28916         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
28917         * DataGridViewCellEventHandler.cs: DataGridView implementation
28918         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
28919         * DataGridViewCellStyleConverter.cs: DataGridView implementation
28920         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
28921         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
28922         * DataGridViewColumnEventArgs.cs: DataGridView implementation
28923         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
28924         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
28925         * QuestionEventArgs.cs: DataGridView implementation
28926         * IDataGridViewEditingCell.cs: DataGridView implementation
28927         * DataGridViewTriState.cs: DataGridView implementation
28928         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
28929         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
28930         * DataGridViewColumnCollection.cs: DataGridView implementation
28931         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
28932         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
28933         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
28934         * DataGridViewColumn.cs: DataGridView implementation
28935         * DataGridViewCellBorderStyle.cs: DataGridView implementation
28936         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
28937         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
28938         * DataGridViewRow.cs: DataGridView implementation
28939         * DataGridViewImageCellLayout.cs: DataGridView implementation
28940         * DataGridViewImageCell.cs: DataGridView implementation
28941         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
28942         * DataGridViewCheckBoxCell.cs: DataGridView implementation
28943         * DataGridViewHeaderCell.cs: DataGridView implementation
28944         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
28945         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
28946         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
28947         * DataGridViewTextBoxColumn.cs: DataGridView implementation
28948         * QuestionEventHandler.cs: DataGridView implementation
28949         * DataGridViewCellStyleScopes.cs: DataGridView implementation
28950         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
28951         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
28952         * DataGridViewCell.cs: DataGridView implementation
28953         * DataGridViewCellEventArgs.cs: DataGridView implementation
28954         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
28955         * DataGridViewCellStyle.cs: DataGridView implementation
28956         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
28957         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
28958         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
28959         * TextFormatFlags.cs: DataGridView implementation
28960         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
28961         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
28962         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
28963         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
28964         * DataGridViewButtonColumn.cs: DataGridView implementation
28965         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
28966         * HandledMouseEventArgs.cs: DataGridView implementation
28967         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
28968         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
28969         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
28970         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
28971         * DataGridViewRowCollection.cs: DataGridView implementation
28972         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
28973         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
28974         * DataGridViewHitTestType.cs: DataGridView implementation
28975         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
28976         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
28977         * DataGridViewColumnEventHandler.cs: DataGridView implementation
28978         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
28979         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
28980         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
28981         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
28982         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
28983         * DataGridViewContentAlignment.cs: DataGridView implementation
28984         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
28985         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
28986         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
28987         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
28988         * DataGridViewPaintParts.cs: DataGridView implementation
28989         * DataGridViewCellCollection.cs: DataGridView implementation
28990         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
28991         * DataGridViewImageColumn.cs: DataGridView implementation
28992         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
28993         * DataGridViewElementStates.cs: DataGridView implementation
28994         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
28995         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
28996         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
28997         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
28998         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
28999         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
29000         * DataGridViewRowHeaderCell.cs: DataGridView implementation
29001         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
29002         * DataGridViewTextBoxCell.cs: DataGridView implementation
29003         * DataGridViewBand.cs: DataGridView implementation
29004         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
29005         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
29006         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
29007         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
29008         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
29009         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
29010         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
29011         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
29012         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
29013         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
29014         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
29015
29016 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
29017
29018         * ThemeWin32Classic.cs: 
29019           - Draw the outside focus rectangle around buttons
29020           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
29021             doesn't use end caps for every dash of a line anymore. This
29022             workaround ignores the forecolor.
29023
29024 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
29025
29026         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
29027           endian safe.
29028
29029 2005-11-07  Jackson Harper  <jackson@ximian.com>
29030
29031         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
29032
29033 2005-11-07  Jackson Harper  <jackson@ximian.com>
29034
29035         * ScrollableControl.cs: Calculate the maximum and change vars
29036         (more) correctly so that scrollbars appear as a sensible size.
29037
29038 2005-11-04  Jackson Harper  <jackson@ximian.com>
29039
29040         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
29041         collection.
29042         * TreeView.cs: When the tree is sorted null out the top_node so
29043         that it is recalculated.
29044         - Use dotted lines instead of dashed lines to match MS better.
29045
29046 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
29047
29048         * ListView.cs: 
29049           - Implements key search for items. Useful when browsing files with FileDialog
29050           - When changing view mode or when clear the items reset scrollbar positions
29051
29052 2005-11-04  Jackson Harper  <jackson@ximian.com>
29053
29054         * CurrencyManager.cs: Implement the MetaDataChanged event, the
29055         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
29056         as to what the method may do as there is no real way of creating a
29057         derived CurrencyManager and calling the method. 
29058
29059 2005-11-03  Jackson Harper  <jackson@ximian.com>
29060
29061         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
29062         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
29063         method which seems to just be used internally to refresh the tabs.
29064
29065 2005-11-03  Jackson Harper  <jackson@ximian.com>
29066
29067         * TabControl.cs: Implement the remove method. Fix some broken
29068         comments.
29069
29070 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
29071
29072         * DateTimePicker.cs:
29073           - Added missing DateTimePickerAccessibleObject class
29074           - Added missing events
29075           - Added OnFontChanged method
29076         * Form.cs: Added missing attributes
29077         * TreeView.cs: Added missing attributes
29078
29079 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
29080
29081         * GridItemCollection.cs: Fix signatures
29082
29083 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
29084
29085         * XplatUI.cs: Updated build rev/date
29086         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
29087           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
29088         * Application.cs: Trigger context-specific ExitThread events
29089
29090 2005-11-03  Jackson Harper  <jackson@ximian.com>
29091
29092         * Menu.cs:
29093         * MainMenu.cs:
29094         * GridTableStylesCollection.cs:
29095         * Timer.cs:
29096         * TabPage.cs:
29097         * HelpProvider.cs:
29098         * StatusBar.cs:
29099         * MonthCalendar.cs: Signature fixes
29100
29101 2005-11-03  Jackson Harper  <jackson@ximian.com>
29102
29103         * TreeNodeCollection.cs: Remove should not be virtual.
29104         * TreeView.cs: Implement the last of the missing methods.
29105
29106 2005-11-03  Jackson Harper  <jackson@ximian.com>
29107
29108         * TreeNodeConverter.cs: Implement to get off my class-status back.
29109
29110 2005-11-03  Jackson Harper  <jackson@ximian.com>
29111
29112         * TreeView.cs: Hookup the bits for drag and drop.
29113         * TreeNode.cs: Don't cache the tree_view or index anymore, now
29114         that nodes can be moved from tree to tree easily this just causes
29115         all sorts of problems.
29116         * TreeNodeCollection: Don't need to give treenodes an index and
29117         treeview anymore when they are added, these are computed on the
29118         fly. Also make sure to remove a node before its added.
29119
29120 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
29121
29122         * TextControl.cs:
29123           - Added CaretSelection enum
29124           - Added comparison methods to Marker struct, makes selection code
29125             more readable
29126           - Added SelectionStart and SelectionEnd as 'moveable' location for
29127             the CaretDirection enum and handler
29128           - Added selection_prev variable to track optimized invalidation for
29129             word and line selection
29130           - Added SelectionVisible property (returns true if there is a valid 
29131             selection)
29132           - Switched CaretHasFocus to only display the caret if there is no
29133             visible selection
29134           - Avoiding StringBuilder.ToString to retrieve a single char, instead
29135             using the direct character index; should be much faster
29136           - Added various conditional debug statements
29137           - Fixed invalidation calculation for selection ranges
29138           - Added ExpandSelection() method to support word and line selection
29139           - Switched SetSelectionToCaret to use new Marker compare overloads
29140           - Added central IsWordSeparator() method to determine word 
29141             separators/whitespace and FindWordSeparator() to streamline common
29142             usage of IsWordSeparator()
29143         * TextBoxBase.cs:
29144           - Removed unneeded grabbed variable, it was just mirroring
29145             Control.Capture
29146           - No longer firing OnTextChanged event when Text setter is called,
29147             since the base will fire the event for us
29148           - Added handling of Ctrl-Up/Down selection
29149           - Added handling of Shift-Cursorkey selection
29150           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
29151             words
29152           - Added handling of Shift and Ctrl-Shift-Home/End selection
29153           - Removed some debug output
29154           - Added handling for single/double/tripple-click to place caret/
29155             select word/select line respectively (Fixes bug #76031)
29156           - Added support for drag expansion of word/line selection
29157         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
29158           current selection
29159
29160 2005-11-02  Jackson Harper  <jackson@ximian.com>
29161
29162         * X11Dnd.cs: If the drag is going to and from a MWF window just
29163         copy the data instead of sending it out through the X Selection
29164         mechanism.
29165
29166 2005-11-02  Jackson Harper  <jackson@ximian.com>
29167
29168         * X11Dnd.cs:
29169         * XplatUIX11.cs: When in a drag we don't want motion notify
29170         messages to get passed on to the other controls. This prevents
29171         mouse move messages from showing up in the drag source.
29172
29173 2005-11-02  Jackson Harper  <jackson@ximian.com>
29174
29175         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
29176         the correct button is release to end a drag.
29177         * XplatUIX11.cs: Make the button state internal so the drag system
29178         can access it.  Dragging needs to know about all button releases,
29179         not just left button.
29180
29181 2005-11-02  Miguel de Icaza  <miguel@novell.com>
29182
29183         * Form.cs (Icon): If the icon is null, reset the icon to the
29184         default value. 
29185
29186         * Cursor.cs: When writing the AND-mask bitmap do not include the
29187         number of colors, but hardcode those to two (black and white),
29188         fixes the loading of color cursors (Paint Dot Net).
29189
29190         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
29191         turn off autoscaling.
29192
29193         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
29194
29195 2005-11-02  Jackson Harper  <jackson@ximian.com>
29196
29197         * X11Dnd.cs: Make sure to send a status message if the pointer
29198         enters a control that can not accept a drop, otherwise the cursor
29199         isn't updated correctly. Also tried to compress the lines of code
29200         a bit.
29201
29202 2005-11-02  Jackson Harper  <jackson@ximian.com>
29203
29204         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
29205         set actions correctly.  This isn't perfect as XDND and win32 have
29206         some differences on how you allow actions. I'll clear this up by
29207         adding a path for drag from MWF to MWF windows.
29208         * XplatUIX11.cs: Hook into the dnd system.
29209
29210 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
29211
29212         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
29213         previously shown but they are no longer need it. Very obvious when 
29214         browsing files with FileDialog.
29215
29216 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
29217
29218         * Control.cs: We always need to call OnPaintBackground. We pretty much
29219           ignore AllPaintingInWmPaint and always do the painting there, whether 
29220           it's set or not, since we always ignore the WM_ERASEBKGND message 
29221           (which we don't generate on X11). This fixes #76616.
29222         * Panel.cs: Removed unneeded background painting. This happens properly
29223           in Control.cs already
29224
29225 2005-10-31  Mike Kestner  <mkestner@novell.com>
29226
29227         * Menu.cs: Add items to collection before setting their index.
29228         * MenuItem.cs : add range checking with ArgumentException like MS.
29229         [Fixes #76510]
29230
29231 2005-10-31  Jackson Harper  <jackson@ximian.com>
29232
29233         * ListBox.cs: Invalidate if the area is visible at all not just
29234         contained in the visible rect. Fixes unselection of semi visible
29235         items.
29236
29237 2005-10-31  Jackson Harper  <jackson@ximian.com>
29238
29239         * Control.cs: Consistently name the dnd methods. Make them
29240         internal so we can override them to match some MS behavoir
29241         internally.
29242         * Win32DnD.cs: Use the new consistent names.
29243
29244 2005-10-31  Jackson Harper  <jackson@ximian.com>
29245
29246         * TreeView.cs: Don't draw the selected node when we lose focus.
29247
29248 2005-10-31  Jackson Harper  <jackson@ximian.com>
29249
29250         * X11Dnd.cs: We still need to reset the state even though a full
29251         reset isn't being done, otherwise status's still get sent all over
29252         the place.
29253
29254 2005-10-31  Jackson Harper  <jackson@ximian.com>
29255
29256         * Control.cs: Make the dnd_aware flag internal so the dnd
29257         subsystem can check it. Catch exceptions thrown in dnd handlers to
29258         match MS behavoir.
29259         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
29260         * X11Dnd.cs: Handle null data in the converters. Set the XDND
29261         version when sending a XdndEnter. Use the control/hwnd dnd_aware
29262         flags to reduce the number of dnd enters/status's sent.
29263
29264 2005-10-31  Jackson Harper  <jackson@ximian.com>
29265
29266         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
29267
29268 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
29269
29270         * PictureBox.cs: Fixes 76512
29271
29272 2005-10-28  Jackson Harper  <jackson@ximian.com>
29273
29274         * X11Dnd.cs: Early implementation to support winforms being a drag
29275         source for data on X11. Also restructured the converters so they
29276         can go both ways now.
29277         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
29278         
29279 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
29280
29281         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
29282           clipboard requests
29283
29284 2005-10-27  Jackson Harper  <jackson@ximian.com>
29285
29286         * TreeNode.cs: Implement serialization so my DnD examples will work.
29287
29288 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
29289
29290         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
29291           TreeView.cs: Don't dispose objects that are not owned.
29292           
29293 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
29294
29295         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
29296           should retrieve the current cursor and report that, but XplatUI
29297           doesn't (yet) have an interface for that (and I'm not sure I even
29298           can, on X11)
29299         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
29300           until any message loop processing is done (and the WM_SETCURSOR
29301           replaces the cursor to the proper one)
29302         * XplatUIX11.cs: 
29303           - Fixed override behaviour, we can't set the cursor globally on X11, 
29304             just for our windows.
29305           - Invalidating the System.Drawing X11 display handle when we are
29306             shutting down
29307         * Control.cs: Fix to make csc happy
29308
29309 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
29310
29311         * TextBoxBase.cs: 
29312           - get_Text: Add last line (without trailing newline) to returned
29313             value (Fixes 76212)
29314           - get_TextLength: Count last line in returned length
29315           - ToString: Call Text property instead of duplicating code
29316
29317 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
29318
29319         * ImageList.cs: Dispose ImageAttributes objects.
29320
29321 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
29322
29323         * ImageList.cs: Use attribute constructors with less arguments where
29324           possible.
29325
29326 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
29327
29328         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
29329           Use typeof instead of strings when assembly is referenced. Added
29330           some more comments.
29331
29332 2005-10-21  Jackson Harper  <jackson@ximian.com>
29333
29334         * ListView.cs: Raise a double click event. Also tried to somewhat
29335         fix when the selectedindexchanged event is raised. Its still
29336         broken though.
29337
29338 2005-10-21  Jackson Harper  <jackson@ximian.com>
29339
29340         * TreeView.cs: New method to invalidate the plus minus area of a
29341         node without invalidating the whole node (maybe this can be used
29342         in some more places).
29343         * TreeNodeCollection.cs: When adding to an empty node we need to
29344         invalidate its plus minus area so the little block shows up.
29345         
29346 2005-10-21  Jackson Harper  <jackson@ximian.com>
29347
29348         * TreeView.cs: Make sure that when we invalidate a node the bounds
29349         are big enough to cover the selected box and the focus
29350         rectangle. Use a different colour for the lines connecting nodes
29351         so they show up with all themes.
29352
29353 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
29354
29355         * NativeWindow.cs: Don't call anything that could call into the driver,
29356           we might be on a different thread.
29357
29358 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
29359
29360         * Control.cs(Dispose): Since Dispose might run on a different thread,
29361           make sure that we call methods that could call into the driver via
29362           invoke, to avoid thread issues
29363
29364 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
29365
29366         * XplatUI.cs: Removed finalizer
29367         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
29368           not allowing to be called on the finalizer thread.
29369
29370 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
29371
29372         * ImageList.cs:
29373           - Reverted r51889 and r51891.
29374           - Added ImageListItem class that stores unmodified image items and image
29375             properties required to create list images until handle is created.
29376           - Added AddItem and moved image creation logic to AddItemInternal.
29377           - Added CreateHandle method that creates images based on unmodified items.
29378           - Added DestroyHandle that changes state to store unmodified items.
29379           - Add and AddStrip methods no more create handle.
29380           - ReduceColorDepth has no return value.
29381           - Dispose destroys handle.
29382           - Modified other methods to reflect the above changes.
29383           - Implemented key support.
29384           - Added profile 2.0 members and attributes.
29385           - Added private Reset and ShouldSerialize methods that provide the same
29386             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
29387             them as they are private.
29388           - Added some more comments about implementation details.
29389
29390 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
29391
29392         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
29393
29394 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
29395
29396         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
29397
29398 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
29399
29400         * DataGridDrawingLogic.cs: Fixes column hit calcultation
29401         * DataGridColumnStyle.cs: Remove debug message
29402
29403 2005-10-20  Jackson Harper  <jackson@ximian.com>
29404
29405         * TreeView.cs: We can always get input keys regardless of whether
29406         or not editing is enabled. They are used for navigation.
29407
29408 2005-10-20  Jackson Harper  <jackson@ximian.com>
29409
29410         * TreeNode.cs: Use the viewport rect for determining if a node
29411         needs to be moved for visibility. Don't use Begin/End edit. This
29412         calls a full refresh when its done.
29413         * TreeView.cs: New SetBottom works correctly.  Make the viewport
29414         rect property internal so the treenodes can see it. When clicking
29415         on a node we need to ensure that its visible because it might just
29416         be partly visible when clicked.
29417
29418 2005-10-20  Jackson Harper  <jackson@ximian.com>
29419
29420         * TreeNodeCollection.cs: Remove debug code.
29421
29422 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
29423
29424         * Datagrid.cs: Implements column sorting in Datagrid
29425         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
29426
29427 2005-10-20  Jackson Harper  <jackson@ximian.com>
29428
29429         * TreeNodeCollection.cs: Remove items properly. Update the correct
29430         area after removing them.
29431
29432 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
29433
29434         * Datagrid.cs: Should not call base.OnPaintBackground
29435
29436 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
29437
29438         * XplatUIX11.cs (GetMessage):
29439           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
29440             window instead of client window
29441           - Now properly calculates NC_xBUTTONUP message coordinates
29442           - ScreenToMenu now properly calculates it's coordinates of whole 
29443             window, since menus are in the whole window, not in the client
29444             window
29445           - Added WholeToScreen coordinate translation method
29446
29447 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
29448
29449         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
29450           want to return a message, loop back to the beginning of the function
29451           and grab the next real message to process instead.
29452
29453 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
29454
29455         * Splitter.cs: Properly set limits if no filler control is used
29456
29457 2005-10-19  Jackson Harper  <jackson@ximian.com>
29458
29459         * ColorDialog.cs: Don't show the help button if it is not enabled
29460         instead of disabling it (this is what MS does). Don't create the
29461         panel until the dialog is run, otherwise the vars (such as
29462         ShowHelp) are not set yet.
29463
29464 2005-10-19  Jackson Harper  <jackson@ximian.com>
29465
29466         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
29467         are reduced when adding nodes.
29468         * TreeNode.cs:
29469         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
29470         tree.
29471         
29472 2005-10-19  Jackson Harper  <jackson@ximian.com>
29473
29474         * FolderBrowserDialog.cs: End editing our treeview so the window
29475         actually gets refreshed.
29476
29477 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
29478
29479         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
29480           Obsoleted handling of WM_ERASEBKGND, now always draws our background
29481           inside of WM_PAINT
29482
29483 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
29484
29485         * MenuAPI.cs: Returns after Hidding window
29486         * XplatUIX11.cs: Added TODO found while debugging menu issues
29487
29488 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
29489
29490         * XplatUIX11.cs: Do not re-map the whole window when it's size
29491           becomes non-zero unless it's supposed to be actually visible
29492
29493 2005-10-18  Jackson Harper  <jackson@ximian.com>
29494
29495         * TreeView.cs: We don't need to keep a count anymore.
29496         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
29497         use the Grow method.
29498
29499 2005-10-18  Jackson Harper  <jackson@ximian.com>
29500
29501         * TreeNodeCollection.cs: Insert is not supported on arrays, so
29502         implement it manually here.
29503
29504 2005-10-18  Jackson Harper  <jackson@ximian.com>
29505
29506         * ImageList.cs: Dont kill the list when the colour depth is
29507         changed, just change the colour depth of all the images.
29508         - Same goes for setting the image size. Just resize them all
29509         instead of killing the list softly.
29510
29511 2005-10-18  Jackson Harper  <jackson@ximian.com>
29512
29513         * Control.cs: Don't invalidate empty rectangles.
29514
29515 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
29516
29517         * ListViewItem.cs:
29518           - Adds checked item to the Checked/Item lists (where empty before)
29519           - Do not add items to the Selected lists if they are already present
29520         * ListView.cs:
29521           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
29522           - When deleting items make sure that we delete them for the Selected
29523           and Checked list also.
29524
29525 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
29526
29527         * Label.cs: Dispose objects no longer used
29528         * ThemeWin32Classic.cs: Dispose objects no longer used
29529
29530 2005-10-18  Jackson Harper  <jackson@ximian.com>
29531
29532         * TabControl.cs: Don't refresh the whole control when the tabs are
29533         scrolled, we just need to refresh the tab area.
29534
29535 2005-10-17  Jackson Harper  <jackson@ximian.com>
29536
29537         * XplatUIX11.cs: Compress code a little bit. Only calculate the
29538         after handle when we need it.
29539
29540 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
29541
29542         * Control.cs: When the parent size changes, recalculate anchor 
29543           positions. Partial fix for #76462
29544
29545 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
29546
29547         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
29548           drawn. Fixes #76462
29549
29550 2005-10-17  Jackson Harper  <jackson@ximian.com>
29551
29552         * MonthCalendar.cs: Don't create the numeric up down until our
29553         handle is created. Otherwise our handle is created in the
29554         constructor and we don't know if we are a WS_CHILD or WS_POPUP
29555         yet.
29556
29557 2005-10-17  Jackson Harper  <jackson@ximian.com>
29558
29559         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
29560         correctly.
29561
29562 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
29563         * TreeNode.cs : small logical fix (was using local var instead of field)
29564         
29565 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
29566
29567         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
29568
29569 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
29570
29571         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
29572
29573 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
29574
29575         * Control.cs: 
29576           - Re-implemented anchoring code. My first version was really broken.
29577             This fixes bug #76033. Unlike the previous implementation we will
29578             no longer have round errors since all numbers are calculated from
29579             scratch every time. Removed various anchor-related obsolete vars.
29580           - InitLayout no longer causes layout event firing and layout to be 
29581             performed
29582
29583 2005-10-16  Jackson Harper  <jackson@ximian.com>
29584
29585         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
29586         which was broken).
29587
29588 2005-10-16  Jackson Harper  <jackson@ximian.com>
29589
29590         * TabControl.cs: Remove debug code.
29591
29592 2005-10-16  Jackson Harper  <jackson@ximian.com>
29593
29594         * XEventQueue.cs: Increase the default queue size (very simple
29595         apps needed to grow the queue).
29596         * Hwnd.cs: No finalizer so we don't need to suppress
29597         finalization. Compute the invalid area manually so a new rectangle
29598         does not newto be created.
29599         * ScrollableControl.cs: Don't set any params (otherwise visibility
29600         isn't set correctly).
29601         * MdiChildContext.cs: New constructor takes the mdi parent so it
29602         doesn't have to be computed and avoids a crash on windows. Draw
29603         the window icon properly, and allow the text to be seen.
29604         * Form.cs: Use new MdiChildContext constructor. Make sure the
29605         child context isn't null in wndproc.
29606         * TabControl.cs: Don't set focus, this is muddling keyboard
29607         behavoir. Expand the tab rows when a window size increase will
29608         allow extra tabs to be seen. Don't allow tabs smaller than the
29609         width of a window to be scrolled out of view.
29610         * TreeNode.cs:
29611         * TreeView.cs: Use measure string to calculate a nodes width, the
29612         width is cached and only updated when the text or the font is
29613         changed. Don't check for expand/collapse clicks on the first level
29614         nodes if root lines are disabled.
29615         
29616 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
29617
29618         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
29619
29620 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
29621
29622         * DataGridBoolColumn.cs: fixes warning
29623
29624 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
29625
29626         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
29627         to match more to match more precisely the MS Net behavior
29628
29629 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
29630
29631         * Hwnd.cs: Added field to track if window is mapped
29632         * XplatUIX11.cs: 
29633           - Unmap windows if they become 0-size, re-map when 
29634             they are >0 again; fixes #76035
29635           - Re-set our error handler after initializing X11Desktop
29636             to override any error handlers Gtk or whatever was called
29637             may have set.
29638
29639 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
29640
29641         * CheckedListBox.cs: Removed unused vars
29642         * ListView.cs: Fixed signatures
29643         * RichTextBox.cs: Removed unused vars
29644         * TextBoxBase.cs: Removed unused vars
29645         * XplatUIWin32.cs: Removed unused vars
29646         * XplatUIX11.cs: Removed unused vars
29647         * XplatUI.cs: Updated version and date to latest published
29648
29649 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
29650
29651         * Cursor.cs: Added private .ctor to work around a bug in
29652           resourceset (Thanks to Geoff Norton for the help on this)
29653         * SplitterEventArgs.cs: Made fields accessible so we don't
29654           waste boatloads of objects and can reuse the same one
29655           in Splitter
29656         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
29657           any captions and borders when generating screen coordinates
29658         * Splitter.cs: Reimplemented control, now fully complete, uses
29659           rubberband drawing, supports and obeys all properties, has
29660           proper cursors
29661
29662 2005-10-13  Miguel de Icaza  <miguel@novell.com>
29663
29664         * Form.cs (Form): Setup default values for autoscale and
29665         autoscale_base_size;  Make these instance variables, not static
29666         variables. 
29667
29668         (OnLoad): on the first load, adjust the size of the form.
29669
29670 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
29671
29672         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
29673           width argument to DrawReversibleRectangle()
29674         * XplatUIWin32.cs, XplatUIX11.cs: 
29675           - Implemented width for DrawReversibleRectangle()
29676           - Added logic to DrawReversibleRectangle that recognizes a zero
29677             width or height and only draws a line in that situation
29678         
29679 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
29680
29681         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
29682         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
29683         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
29684           method (it uses our FosterParent window to get a graphics context)
29685
29686 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
29687
29688         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
29689           and SetWindowBackground methods
29690         * Control.cs:
29691           - Setting proper ControlStyles
29692           - We no longer call XplatUI.SetWindowBackground and XplatUI.
29693             EraseWindowBackground, instead we draw the window background
29694             ourselves in PaintControlBackground. This behaviour is
29695             required to match MS, where, when OnPaintBackground is not
29696             called, the background is not drawn.
29697           - Removed unneeded Refresh() in set_Text
29698         * Hwnd.cs: Dropped the ErasePending support. No longer needed
29699         * XplatUIX11.cs:
29700           - Created DeriveStyles method to translate from CreateParams to
29701             FormBorderStyle and TitleStyle, also handles BorderStyle (which
29702             matches FormBorderStyle enum values)
29703           - Consolidated SetHwndStyles and CalculateWindowRect border/title
29704             style calculations into single DeriveStyles method
29705           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
29706             from redrawing the whole window on any resize or expose.
29707           - Fixed CreateWindow usage of SetWindowValuemask. Before not
29708             all styles were applied to our whole/client window appropriately
29709           - Removed EraseWindowBackground() and SetWindowBackground() methods
29710           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
29711             no longer clear/redraw the background through X
29712           - Removed handling of erase_pending bit, we have no use for it (or
29713             so it seems)
29714         * XplatUIOSX.cs:
29715           - Removed generation and handling of WM_ERASEBKGND message
29716           - Removed EraseWindowBackground() and SetWindowBackground() methods
29717           - Removed handling of hwnd.ErasePending flag
29718         * XplatUIWin32.cs:
29719           - Removed EraseWindowBackground() and SetWindowBackground() methods
29720           - We no longer call EraseWindowBackground on PaintEventStart, we 
29721             ignore the fErase flag, erasing is handled in Control in the
29722             background handler
29723         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
29724           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
29725           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
29726           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
29727           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
29728           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
29729           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
29730
29731 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
29732
29733         * PropertyGrids.cs: Get sub properties
29734         * PropertyGridView.cs: Fix drawing code
29735
29736 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
29737
29738         * ListBox.cs: Fixes 76383
29739
29740 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
29741
29742         * DataGridTextBoxColumn.cs: Sets location and size before attachment
29743         * ThemeWin32Classic.cs: Fixes border drawing and calculations
29744         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
29745
29746
29747 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
29748
29749         * ComboBox.cs: Fixes border drawing
29750
29751 2005-10-10  Miguel de Icaza  <miguel@novell.com>
29752
29753         * MimeIcon.cs: Ignore errors if the file can not be read.
29754
29755 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
29756
29757         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
29758          - Fixed border calculations
29759          - Fixed horizontal scrolling in single column listboxes
29760          - Fixed drawing issues
29761
29762 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
29763
29764         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
29765           FormBorderStyle enum
29766         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
29767           code to determine FormBorderStyles from CreateParams
29768         * Form.cs:
29769           - Fixed bug where we'd set the wrong window styles if we were
29770             not creating an MDI window
29771           - Added call to XplatUI.SetBorderStyle when form borders are set
29772         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
29773         * Hwnd.cs:
29774           - Removed obsolete edge style
29775           - Switched from BorderStyle to FormBorderStyle
29776         
29777 2005-10-10  Jackson Harper  <jackson@ximian.com>
29778
29779         * Form.cs: Use the property to get the window handle instead of
29780         accessing it directly. Prevents a null reference exception.
29781
29782 2005-10-10  Jackson Harper  <jackson@ximian.com>
29783
29784         * TreeView.cs: Don't adjust the rect given to DrawString now that
29785         our libgdiplus draws correctly.
29786
29787 2005-10-08  Jackson Harper  <jackson@ximian.com>
29788
29789         * TreeView.cs: Don't try to find the clicked on node if there are
29790         no nodes in the tree.
29791
29792 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
29793
29794         * RichTextBox.cs:
29795
29796           restore
29797
29798 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
29799
29800         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
29801           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
29802           ErrorProvider.cs:
29803           Use ResPool for brushes and dispose System.Drawing objects that
29804           are not used anymore.
29805
29806 2005-10-07  Jackson Harper  <jackson@ximian.com>
29807
29808         * MdiChildContext.cs: Use the new borders instead of drawing them
29809         ourselves.
29810
29811 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
29812
29813         * Calling UpdateBounds after changing the window's BorderStyle 
29814         since the style can change the ClientSize
29815
29816 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
29817
29818         * Control.cs: Made PaintControlBackground virtual
29819         * Panel.cs: Overriding PaintControlBackground instead of using paint
29820           event; paint event method was interfering with 'real' users of the
29821           event.
29822
29823 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
29824
29825         * ThemeWin32Classic.cs: remove border drawing since it is handled
29826         by the base control class now and was causing double border drawing.
29827
29828 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
29829
29830         * Panel.cs: Redraw our background on paint. Not a pretty solution,
29831           but it does seem to match MS behaviour. This fixes bug #75324
29832
29833 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
29834
29835         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
29836           somewhat hackish looking
29837
29838 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
29839
29840         * TextBoxBase.cs:
29841           - We now accept Enter even if AcceptEnter is false, if the containing
29842             form does not have an AcceptButton configured (fixes bug #76355)
29843           - Calculations are now fixed to no longer use Width/Height, but
29844             ClientSize.Width/Height, since we now support borders (this was
29845             a result of fixing borders and therefore bug #76166)
29846           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
29847             true (fixes bug #76354)
29848         
29849 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
29850
29851         * Control.cs: 
29852           - Defaulting BorderStyle and setting it in XplatUI when our window 
29853             is created
29854           - Added enum check to InternalBorderStyle setter
29855         * XplatUIX11.cs: 
29856           - Added drawing of window borders
29857           - Now properly calculates WM decorations offset for toplevel 
29858             windows (fixes bug #74763)
29859         * XplatUIWin32.cs: 
29860           - Implemented BorderStyles for windows (we're letting win32 draw 
29861             the border for us)
29862           - Fixed the signature for SetWindowLong
29863         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
29864           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
29865           setting borders
29866         * UpDownBase.cs: Remove drawing of borders, this is handled by
29867           the driver, outside the client area
29868         * ListView.cs: Removed bogus border calculations. The control should
29869           be oblivious to borders, since those are not part of the client
29870           area. 
29871         * X11DesktopColors.cs: Commented out (currently) unneeded variables
29872         * ThemeWin32Classic.cs: Removed border calculations from ListView 
29873           drawing code
29874
29875 2005-10-06  Jackson Harper  <jackson@ximian.com>
29876
29877         * MdiChildContext.cs: Clear out the old virtual position remove
29878         all the unneeded calls to CreateGraphics.
29879
29880 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
29881
29882         * TextControl.cs: Use proper color for highlighted text; fixes #76350
29883
29884 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
29885
29886         * Form.cs: 
29887           - Added loading and setting of our new default icon
29888           - Only set icon if window is already created
29889
29890 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
29891
29892         * Label.cs:
29893           - Do not explicitly set the foreground and background colors, to
29894             allow inheriting from parents (fixes #76302)
29895           - Use Control's InternalBorderStyle property to deal with borders
29896
29897 2005-10-06  Jackson Harper  <jackson@ximian.com>
29898
29899         * MdiChildContext.cs: Use the new xplatui function to draw a
29900         reversible rect.
29901
29902 2005-10-06  Jackson Harper  <jackson@ximian.com>
29903
29904         * Form.cs: Add the parent before creating the child context cause
29905         we need the parent when setting up the child.
29906
29907 2005-10-06  Jackson Harper  <jackson@ximian.com>
29908
29909         * FolderBrowserDialog.cs: redo the tree population code so a
29910         second thread isn't used. Should be a lot faster and more stable
29911         now.
29912
29913 2005-10-05  Jackson Harper  <jackson@ximian.com>
29914
29915         * TreeView.cs: There are no expand/collapse boxes if the node has
29916         no children.
29917
29918 2005-10-05  Jackson Harper  <jackson@ximian.com>
29919
29920         * X11DesktopColors.cs: Get menu colours for the gtk theme.
29921
29922 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
29923
29924         * FileDialog.cs: Fix InitialDirectory
29925
29926 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
29927
29928         * ComboBox.cs:
29929                 - Fixes changing between styles
29930                 - Fixes simple mode
29931                 - Fixes last item crashing when navigating with keyboard
29932
29933 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
29934
29935         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
29936
29937 2005-10-05  Jackson Harper  <jackson@ximian.com>
29938
29939         * TreeView.cs: If updating the root node do a full refresh.
29940         * TreeNode.cs: The root node should be expanded by default. Also
29941         added a utility prop to tell if we are the root node.
29942         * TreeNodeCollection.cs: Only refresh if the node we are being
29943         added to is expanded. Also added a comment on a potential
29944         optimization.
29945         
29946 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
29947
29948         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
29949           in dispose method. Fixes #76330
29950
29951 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
29952
29953         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
29954
29955                 - Implements vertical and horizontal scrolling using XplatUI
29956                 - Fixes keyboard navagation
29957                 - Fixes EnsureVisible
29958                 - Drawing fixes
29959                 - Handles and draws focus properly
29960
29961
29962 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
29963
29964         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
29965           Create handle. NET_2_0: Destroy handle when value is null.
29966
29967 2005-10-03  Jackson Harper  <jackson@ximian.com>
29968
29969         * ScrollBar.cs: My last scrollbar patch was broken. This is a
29970         revert and a new patch to prevent the thumb from refreshing so
29971         much.
29972
29973 2005-10-02  Jackson Harper  <jackson@ximian.com>
29974
29975         * ScrollBar.cs: Don't update position if it hasn't actually
29976         changed. This occurs when you hold down the increment/decrement
29977         buttons and the thumb gets to the max/min.
29978
29979 2005-10-01  Jackson Harper  <jackson@ximian.com>
29980
29981         * Form.cs:
29982         * MdiChildContext.cs:
29983         * MdiClient.cs: Implement ActiveMdiChild in Form.
29984
29985 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
29986
29987         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
29988
29989 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
29990
29991         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
29992           be found
29993
29994 2005-09-30  Jackson Harper  <jackson@ximian.com>
29995
29996         * ListBox.cs: Don't do a full refresh unless some data has
29997         actually changed.
29998
29999 2005-09-30  Jackson Harper  <jackson@ximian.com>
30000
30001         * TreeView.cs: Make sure that the checkboxes size is factored in
30002         even when not visible.
30003
30004 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
30005
30006         * FileDialog.cs: Fix Jordi's build break
30007
30008 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
30009
30010         * FileDialog.cs: 
30011                 - Use standard the Windows colours for the combobox as espected
30012                 - Dispose objects that use resouces when no longer need them
30013
30014 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
30015
30016         * X11DesktopColors.cs: Initial incomplete implementation
30017         * XplatUIX11.cs: Added call to initialize X11DesktopColors
30018
30019 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
30020
30021         * Theme.cs: 
30022           - Switched Theme color names to match the names defined in 
30023             System.Drawing.KnownColors. Life's hard enough, no need to make 
30024             it harder.
30025           - Added setters to all theme color properties so themes can set
30026             their color schemes. The setters also propagate the color changes
30027             to System.Drawing.KnownColors via reflection
30028         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
30029           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
30030           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
30031           use the new, more logical theme color names
30032         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
30033           post-NT colors
30034         * ThemeWin32Classic.cs:
30035           - Removed code to set the old classic Windows colors. Instead it
30036             now relies on the colors returned by System.Drawing.KnownColors
30037             which will be either modern static colors (Unix) or colors
30038             read from the user's configuration (Win32)
30039           - Updated to use the new, more logical theme color names
30040           - Switched DataGrid drawing code to use only Theme colors instead of
30041             a mix of System.Drawing.KnownColors and Theme colors
30042           - DrawFrameControl(): Removed code that fills the button area, the
30043             fill would overwrite any previous fill done by a control. This
30044             fixes bug #75338 
30045           - Added DrawReversibleRectangle() stub
30046         * ScrollableControl.cs: Set visible state to false when scrollbars
30047           are removed (pdn fix)
30048         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
30049           DrawReversibleRectangle() method to allow drawing primitive 
30050           'rubber bands'
30051         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
30052
30053 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
30054
30055         * ImageList.cs: Add(Icon): Create handle.
30056
30057 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
30058
30059         * ListView.cs:
30060         * ThemeWin32Classic.cs:
30061                 - Fixes detail mode
30062                 - Sets clippings
30063                 - Issues with drawing
30064
30065 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
30066
30067         * ImageList.cs: Moved RecreateHandle back to ImageList as event
30068           source has to be the ImageList.
30069
30070 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
30071
30072         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
30073
30074 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
30075
30076         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
30077
30078 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
30079
30080         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
30081
30082 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
30083         * GridItem.cs: Fixed TODOs
30084         * GridItemCollection.cs: Added ICollection interface
30085
30086 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
30087
30088         * ImageList.cs: Resize icons when needed.
30089
30090 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
30091
30092         * ListViewItem.cs
30093                 - Fixes GetBounds and returns on screen rects
30094         * ListView.cs:
30095                 - Fixes vertical and horzintal scrolling of items
30096         * ThemeWin32Classic.cs:
30097                 - Fixes drawing
30098                 
30099 2005-09-29  Raja R Harinath  <harinath@gmail.com>
30100
30101         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
30102
30103 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
30104
30105         * ImageList.cs: Added comments about handle creation. Moved Handle,
30106           HandleCreated and OnRecreateHandle implementations to ImageCollection.
30107           Handle is created in Add methods.
30108
30109 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
30110          
30111         * DataGridDrawingLogic.cs: 
30112                 - Takes rows into account on Colum calculations
30113                 - Returns the column when clickig
30114         * DataGrid.cs:
30115                 - Fixes default HitTestInfo values
30116                 - Fixes HitTestInfo.ToString
30117                 - Fixes ResetBackColor          
30118         
30119 2005-09-28  Jackson Harper  <jackson@ximian.com>
30120
30121         * MdiChildContext.cs: Obey rules for fixed sized windows (no
30122         sizing or cursor changes). Also added some temp code to draw the
30123         titlebars text (Makes dev a little easier).
30124
30125 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
30126
30127         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
30128
30129 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
30130          
30131         * ListBox.cs: Fixes bug 76253
30132
30133 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
30134
30135         * ImageList.cs: Added comments about the current implementation. Added
30136           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
30137           Format32bppArgb to preserve transparency and can use Graphics.FromImage
30138           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
30139           with Bitmap.LockBits for better performance. Revised the whole file to
30140           match MS.NET behaviour and provide better performance. Non-public
30141           interface members are calling public members even when they throw
30142           NotSupportedException for better maintainability. Moved ColorDepth,
30143           ImageSize, ImageStream and TransparentColor implementations to
30144           ImageCollection for better performance as these properties are not used
30145           by ImageList.
30146         * ImageListStreamer.cs: Added a new internal constructor that takes an
30147           ImageList.ImageCollection and serializes Images based on
30148           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
30149           match ImageList property name.
30150
30151 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
30152
30153         * ListBox.cs: Fixes IndexFromPoint for last item
30154
30155 2005-09-27  Jackson Harper  <jackson@ximian.com>
30156
30157         * Form.cs: Set the position of new mdi children correctly.
30158
30159 2005-09-27  Jackson Harper  <jackson@ximian.com>
30160
30161         * MdiClient.cs: New mdi children need to be added to the back of
30162         the controls collection so the zorder is set correctly. Also add a
30163         count of all the child windows that have been created.
30164
30165 2005-09-27  Jackson Harper  <jackson@ximian.com>
30166
30167         * Form.cs (CreateParams): Setup MDI forms correctly.
30168
30169 2005-09-27  Jackson Harper  <jackson@ximian.com>
30170
30171         * MdiChildContext.cs:
30172         * MonthCalendar.cs:
30173         * UpDownBase.cs:
30174         * ListBox.cs:
30175         * ListView.cs:
30176         * TextBoxBase.cs:
30177         * TreeView.cs:
30178         * ScrollableControl.cs:
30179         * ComboBox.cs: Add implicit controls using the new implict control
30180         functionality in ControlCollection. Also try to block multiple
30181         control add in a suspend/resume layout to save some cycles.
30182         
30183 2005-09-27  Jackson Harper  <jackson@ximian.com>
30184
30185         * Control.cs: Add functionality to the controls collection to add
30186         'implicit controls' these are controls that are created by the
30187         containing control but should not be exposed to the user. Such as
30188         scrollbars in the treeview.
30189         * Form.cs: The list var of the ControlsCollection is no longer
30190         available because of the potential of implicit controls getting
30191         ignored by someone accessing the list directly.
30192
30193 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
30194
30195         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
30196           loose it's parent. (Fixed bug introduced in r49103 when we added
30197           setting the child parent to null on Remove)
30198
30199 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
30200
30201         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
30202         * Splitter.cs: Added missing attributes for BorderStyle property.
30203         * TextBoxBase.cs: Marked Calculate* methods internal.
30204         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
30205         MS.NET.
30206
30207 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
30208          
30209         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
30210
30211 2005-09-25  Jackson Harper  <jackson@ximian.com>
30212
30213         * TreeView.cs: Update the node bounds correctly regardless of
30214         whether the node is visible.
30215
30216 2005-09-25  Jackson Harper  <jackson@ximian.com>
30217
30218         * ImageList.cs: Don't dispose the image after it is added to the
30219         image list. Only reformat images that need to be resized.
30220
30221 2005-09-25  Jackson Harper  <jackson@ximian.com>
30222
30223         * ImageList.cs: Don't set the format when changing the image.
30224
30225 2005-09-25  Jackson Harper  <jackson@ximian.com>
30226
30227         * TreeView.cs: We can't just assume the node has a font. Use the
30228         treeviews font if no node font is available.
30229
30230 2005-09-25  Jackson Harper  <jackson@ximian.com>
30231
30232         * TreeView.cs: Allow the scrollbars to be reset with negative
30233         values.
30234         - Don't add scrollbars to negative sized windows.
30235
30236 2005-09-23  Jackson Harper  <jackson@ximian.com>
30237
30238         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
30239         old Mono.Posix. Also remove some stray code that shouldn't have
30240         been committed.
30241
30242 2005-09-23  Jackson Harper  <jackson@ximian.com>
30243
30244         * TreeView.cs: Attempt at proper sizing of the horizontal
30245         scrollbar. Also don't resize the scrollbars unless they are
30246         visible.
30247
30248 2005-09-23  Jackson Harper  <jackson@ximian.com>
30249
30250         * TreeView.cs: We don't need to expand the invalid area when the
30251         selection changes, as this is all drawn in the node's bounding
30252         box. The area needs to be expanded (previous typo was contracting
30253         it) when the focus rect moves.
30254
30255 2005-09-23  Jackson Harper  <jackson@ximian.com>
30256
30257         * TreeView.cs: Display the selection box under the correct
30258         circumstances. We were rendering white text with no selection box
30259         before.
30260
30261 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
30262
30263         * TextControl.cs(Split): Now updates selection start/end if it points 
30264           into a line that's being split. Fixes a FIXME and bug #75258
30265
30266 2005-09-23  Jackson Harper  <jackson@ximian.com>
30267
30268         * Binding.cs:
30269         * ListControl.cs: Don't use the path when retrieving binding
30270         managers from the binding context. My bat sense tells me that the
30271         path is only used on insertion.
30272
30273 2005-09-22  Jackson Harper  <jackson@ximian.com>
30274
30275         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
30276
30277 2005-09-22  Jackson Harper  <jackson@ximian.com>
30278
30279         * Splitter.cs: There are special cursors used for splitting.
30280         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
30281
30282 2005-09-22  Jackson Harper  <jackson@ximian.com>
30283
30284         * Splitter.cs: Change the cursor appropriately when the splitter
30285         is moused over, so the user actually knows there is a splitter
30286         there.
30287
30288 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
30289
30290        * Label.cs : Fix ToString method to give same output as MS.NET
30291
30292 2005-09-22  Jackson Harper  <jackson@ximian.com>
30293
30294         * TreeView.cs: Create the scrollbars when the handle is created
30295         and add them right away, just make them invisble. Also account for
30296         the window being shrunk vertically to the point that the vert
30297         scrollbar needs to be added.
30298         - Remove some 0.5 adjustments to get around anti aliasing issues.
30299         
30300 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
30301          
30302         * MainMenu.cs: Fixes default value
30303         * MenuItem.cs: Fixes default value
30304
30305 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
30306
30307         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
30308
30309 2005-09-21  Jackson Harper  <jackson@ximian.com>
30310
30311         * Control.cs: Don't try to set the border style on the window if
30312         it hasn't been created. When the window is created the border
30313         style will be used.
30314
30315 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
30316
30317         * Control.cs (Update): Don't call XplatUI if we don't have a
30318           window handle yet
30319
30320 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
30321
30322         * ContainerControl.cs: Instead of throwing an exception, print
30323           a one-time warning about Validate not being implemented
30324         * XplatUIWin32.cs: Removed debug output
30325
30326 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
30327
30328         * Control.cs: Only set XplatUI background if we expect the windowing
30329           system to handle the background. This stops controls that draw their
30330           own background from flickering
30331
30332         * XplatUIX11.cs: Support custom visuals and colormaps for window 
30333           creation. This allows, amongst other things, using MWF X11 windows 
30334           with OpenGL.
30335
30336 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
30337
30338         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
30339           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
30340           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
30341           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
30342           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
30343           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
30344           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
30345           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
30346           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
30347           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
30348           GridColumnStylesCollection.cs, 
30349           IDataGridColumnStyleEditingNotificationService.cs,
30350           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
30351           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
30352           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
30353           TreeNodeCollection.cs, AmbientProperties.cs, 
30354           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
30355           DataObject.cs, ErrorProvider.cs, Splitter.cs,
30356           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
30357           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
30358           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
30359           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
30360           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
30361           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
30362           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
30363           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
30364           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
30365           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
30366           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
30367           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
30368           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
30369           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
30370           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
30371           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
30372           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
30373           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
30374           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
30375           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
30376           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
30377           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
30378           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
30379           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
30380           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
30381           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
30382           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
30383           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
30384           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
30385           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
30386           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
30387           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
30388           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
30389           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
30390           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
30391
30392 2005-09-21  Jackson Harper  <jackson@ximian.com>
30393
30394         * TreeNode.cs: Call Before/After Expand not Collapse when
30395         expanding.
30396
30397 2005-09-20  Jackson Harper  <jackson@ximian.com>
30398         
30399         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
30400
30401 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
30402          
30403         * ListViewItem.cs:
30404                 - Fixes bug 76120
30405                 - Fixes proper storing of subitems
30406                 - Fixes not updated items
30407
30408 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
30409
30410         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
30411           things if our window handle isn't created yet. Also disabled 
30412           debug for TextBoxBase
30413
30414 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
30415
30416         * MenuAPI.cs: Remove filtering of events to allow menu usage
30417
30418 2005-09-20  Miguel de Icaza  <miguel@novell.com>
30419
30420         * Cursor.cs: Allow null to be passed to Cursor.Current.
30421
30422 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
30423
30424         * ThemeWin32Classic.cs:
30425           - Change some private methods/fields to protected virtual so that 
30426             they can be accessed and overriden in derived classes
30427           - First refactoring of some methods. Derived themes now don't 
30428             need to duplicate the complete code from ThemeWin32Classic
30429         * ThemeNice.cs:
30430           - Added nice StatusBar
30431           - Derive from ThemeWin32Classic and not Theme
30432           - Removed duplicate ThemeWin32Classic code
30433
30434 2005-09-20  Miguel de Icaza  <miguel@novell.com>
30435
30436         * Control.cs (ControlCollection.Add): If the value null is passed
30437         the control is ignored. 
30438
30439         Optimize this loop.
30440
30441 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
30442
30443         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
30444           PostQuitMessage state.
30445         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
30446
30447 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
30448
30449         * Application.cs: Our constructor will never get called, move 
30450           initialization to fields; fixes bug #75933
30451
30452 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
30453
30454         * FileDialog.cs :
30455                 - Allow files to be selected properly using file name
30456                 combo box.
30457                 - Add ability to change diretory (absolute / relative)
30458                 using file name combo box.
30459
30460 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
30461          
30462         * ListBox.cs: 
30463                 - Fixes Multicolumn listboxes item wrong calculations
30464                 - Allows to click when only one item is in the listbox
30465                 - Fixes crash when no items using keyboard navigation
30466
30467 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
30468
30469         * ComboBox.cs: Reverted almost everything from the latest patch which
30470           broke ComboBox
30471
30472 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
30473         
30474         * ToolTip.cs:
30475                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
30476         * ComboBox.cs:
30477                 - When DropDownStyle is Simple, it does not show scrollbar 
30478                 to the last item of the list.
30479                 - When DropDownStyle is Simple, it crashed when the list was 
30480                 scrolled down with the down cursor key.
30481                 - Fixed a bug that when DropDownStyle is DropDownList, the 
30482                 selected item was not shown.
30483                 - The position of the selected item was not preserved when 
30484                 the next dropdown happened.
30485         * ThemeWin32Classic.cs:
30486                 - Items were wrapped at the right end.
30487         * CheckedListBox.cs:
30488                 - Fixed Add method
30489         * ListBox.cs:
30490                 - Items should be fully shown.
30491                 - When resizing and vertical scrollbar disappeared, the item 
30492                 of index 0 should be on the top of the list.
30493                 - GetItemRectangle should consider the size of ver. scrollbar
30494         * StatusBar.cs:
30495                 - SizingGrip area should not be allocated when it is not 
30496                 displayed.
30497                 - Now it reflects MinWidth of the containing panel and 
30498                 fixed a crash that happens when its width becomes so small.
30499
30500 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
30501
30502         * CheckedListBox.cs: Fixes bug 76028
30503         * ListBox.cs: Fixes bug 76028
30504
30505 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
30506
30507         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
30508         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
30509
30510 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
30511
30512         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
30513
30514 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
30515
30516         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
30517
30518 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
30519
30520         * IRootGridEntry.cs: Added
30521         * PropertyGridCommands.cs: Added
30522         * PropertiesTab.cs: Added missing methods and property
30523         * PropertyGridView.cs: Made class internal
30524         * PropertyGridTextBox.cs: Made class internal
30525
30526 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
30527
30528         * MimeIcon.cs: Try to check some other environment variables
30529           if "DESKTOP_SESSION" returns "default"
30530
30531 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
30532
30533         * ThemeNice.cs: Corrected background colors (e.g. menus)
30534         * ColorDialog.cs: Use correct background colors for controls
30535
30536 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
30537
30538         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
30539
30540 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
30541
30542         * RichTextBox.cs: Added initial implementation
30543         * lang.cs: Removed. Was accidentally checked in long time ago
30544         * TODO: Removed. Contents were obsolete
30545
30546 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
30547                                                                                 
30548         * PropertiesTab.cs : Added
30549
30550 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
30551                                                                                 
30552         * PropertyGrid.cs : Update
30553         * PropertyGridView.cs : Update
30554         * System.Windows.Forms.resx : Added images and strings
30555
30556 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
30557
30558         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
30559  
30560 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
30561
30562         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
30563           a busy loop right after the Ungrab the X11 display is otherwise 
30564           blocked
30565
30566 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
30567
30568         * ThemeWin32Classic.cs: Optimise the use of clipping
30569
30570 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
30571
30572         * DataGrid.cs: fixes recursion bug
30573
30574 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
30575
30576         * ThemeNice.cs: 
30577           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
30578           - Cleanup
30579
30580 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
30581
30582         * ThemeNice.cs: Draw nice ProgressBars
30583
30584 2005-09-01  Miguel de Icaza  <miguel@novell.com>
30585
30586         * VScrollBar.cs: Another buglet found by Aaron's tool. 
30587
30588         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
30589         bug finder.
30590
30591 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
30592
30593         * ThemeNice.cs:
30594           - Added nicer menu drawing
30595           - Updated DrawTab
30596           - some refactoring
30597
30598 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
30599
30600         * CreateParams.cs (ToString): Made output match MS
30601         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
30602             handle is already created (to avoid forcing window creation)
30603         * XplatUIX11.cs: Set window text to caption after creating window,
30604           in case Text was set before window was created
30605         * Form.cs: Use this.Text instead of a static string as caption
30606
30607 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
30608
30609         * NotifyIcon.cs: Don't set the window to visible; this screws
30610           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
30611           OnPaint without a bitmap)
30612         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
30613           happen very often anyway; we could add the check to the WM_PAINT 
30614           event generation code
30615
30616 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
30617
30618         * NotifyIcon.cs: Fill the icon area with a background color, to 
30619           avoid 'residue' when transparent icons are drawn
30620         * XplatUIX11.cs:
30621           - Handle whole_window == client_window when destroying windows
30622           - SystrayAdd(): Set client_window to whole_window value to
30623             get mouse and other events passed to NotifyIcon
30624
30625 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
30626
30627         * Form.cs: Set proper default for Opacity property
30628         * NotifyIcon.cs:
30629           - ShowSystray(): Don't bother creating telling the OS
30630             about the systray item if no icon is provided
30631           - Now handles WM_NCPAINT message to deal with whole/client window
30632             split
30633           - Create window as visible to not get caught by Expose optimization
30634         * Hwnd.cs: Removed debug message
30635         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
30636           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
30637             PaintEventStart/End to use new client argument
30638         * TextBoxBase.cs:
30639           - Commented out debug messages
30640           - Switched PaintEventStart/End to use new client argument
30641         * XplatUI.cs: Added client window bool to PaintEventStart()/
30642           PaintEventEnd() calls, to support drawing in non-client areas
30643         * XplatUIDriver.cs: 
30644           - Added client window bool to PaintEventStart()/PaintEventEnd() 
30645             calls, to support drawing in non-client areas
30646           - Added conditional compile to allow using MWF BeginInvoke 
30647             on MS runtime
30648         * XplatUIX11.cs:
30649           - Added some conditional debug output
30650           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
30651             whole/client window split
30652           - Implemented handling of client argument to PaintEventStart()/End()
30653         * Control.cs:
30654           - Throw exception if BeginInvoke() is called and the window handle
30655             or one of the window's parent handles is not created
30656           - Added conditional compile to allow using MWF BeginInvoke on
30657             MS runtime
30658           - get_Parent(): Only sets parent if handle is created. This avoids
30659             forcing window handle creation when parent is set.
30660           - Now fires Layout and Parent changed events in proper order
30661           - Switched to use Handle instead of window.Handle for Z-Order setting,
30662             the get_Parent() patch above causes us to possibly get null for 'window'
30663           - Implemented handling of client argument to PaintEventStart()/End()
30664           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
30665             default handling)
30666           - Now sends a Refresh() to all child windows when Refresh() is called
30667
30668 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
30669
30670         * Form.cs: Added (non-functional) Opacity property
30671         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
30672
30673 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
30674         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
30675           use export MONO_THEME=nice to activate it.
30676           Currently supported controls:
30677           - Button
30678           - ComboBox
30679           - ScrollBar
30680           - TabControl (TabAlignment.Top only, other will follow)
30681         * ThemeEngine.cs: Add theme nice
30682         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
30683           if enabled
30684
30685 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
30686
30687         * Splitter.cs: Resize docked control and its neighbor.
30688
30689 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
30690         -- Making Windows with Menus layout correctly --
30691         * Form.cs : The first leg of the fix
30692                 Menu setter - adjust Client Size as needed to make space for the menu
30693                 SetClientSizeCore - doesn't call base version to be able to pass the 
30694                         menu handle to XplatUI.CalculateWindowRect
30695         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
30696         * XplatUIX11.cs: The critical second leg of the fix
30697                 GetWindowPos needs to use a recalculated client_rect
30698                 so that resizing the window doesn't break layout of child controls. 
30699                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
30700                 Lots of \t\n killed
30701
30702 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
30703
30704         * Label.cs: Now properly recalculates width and height on Font and Text
30705           changes if AutoSize is set
30706
30707 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
30708         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
30709
30710 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
30711
30712         * ImageList.cs: Makes ToString method compatible with MS
30713
30714 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
30715
30716         * MenuAPI.cs: fixes bug 75716
30717
30718 2005-08-11 Umadevi S <sumadevi@novell.com>
30719         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
30720
30721 2005-08-11 Umadevi S <sumadevi@novell.com>
30722         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
30723
30724 2005-08-10  Umadevi S <sumadevi@novell.com>
30725         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
30726
30727 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
30728
30729         * Menu.cs: fixes bug 75700
30730         * MenuAPI.cs: fixes navigation issues
30731
30732 2005-08-09  Umadevi S <sumadevi@novell.com>
30733         * CheckedListBox.cs - simple fix for GetItemChecked.
30734
30735 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
30736
30737         * ComboBox.cs: Serveral fixes
30738         * ListBox.cs: Serveral fixes
30739
30740 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
30741
30742         * ComboBox.cs: Fixes FindString methods and GetItemHeight
30743         * ListBox.cs: Fixes FindString methods
30744
30745 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
30746
30747         * DataGrid.cs: fixes bugs exposed by new tests
30748
30749 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
30750
30751         * Mime.cs: Compile Mono assembly references only if compiling
30752           with Mono (Allows to build with VS.Net again)
30753
30754 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
30755
30756         * Control.cs (PaintControlBackground): Draw background image
30757         corrrectly.
30758         (CheckForIllegalCrossThreadCalls): Stubbed.
30759         
30760         * Form.cs (OnCreateControl): Center when should be centered.
30761         
30762         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
30763
30764 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
30765
30766         * Binding.cs: Binding to properties should be case unsensitive
30767
30768 2005-07-18 vlindos@nucleusys.com
30769
30770         * DataGrid.cs: fixes setmember order
30771
30772 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
30773
30774         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
30775         * FileDialog.cs: FileDialog is now resizable and uses the new
30776           MimeIconEngine
30777
30778 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
30779
30780         * DataGridTextBoxColumn.cs: default value
30781         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
30782         * GridTableStylesCollection.cs: fixes checking MappingName
30783         * DataGridDrawingLogic.cs: fixes drawing logic issues
30784         * DataSourceHelper.cs: rewritten to make compatible with more data sources
30785         * DataGrid.cs: fixes    
30786
30787 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
30788
30789         * MimeGenerated.cs: Use case sensitive comparer for
30790           NameValueCollections
30791
30792 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
30793
30794         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
30795         * ThemeWin32Classic.cs: bug fixes, code refactoring
30796         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
30797         * DataGrid.cs: bug fixes, code refactoring
30798         * DataGridTextBox.cs: bug fixes, code refactoring
30799         * DataGridColumnStyle.cs:  bug fixes, code refactoring
30800         * Theme.cs:  bug fixes, code refactoring
30801
30802 2005-07-01  Peter Bartok  <pbartok@novell.com> 
30803
30804         * TextControl.cs: Quick fix for the reported crash on ColorDialog
30805           and other text box usage
30806
30807 2005-07-01  Jackson Harper  <jackson@ximian.com>
30808
30809         * TabControl.cs: Make sure the bottom of the tab covers the pages
30810         border.
30811
30812 2005-06-30  Peter Bartok  <pbartok@novell.com> 
30813
30814         * Form.cs (ShowDialog): Assign owner of the dialog
30815         * TextBoxBase.cs: Always refresh caret size when deleting, caret
30816           might have been moved to a tag with different height
30817
30818 2005-06-30  Jackson Harper  <jackson@ximian.com>
30819
30820         * Form.cs: Don't create an infinite loop when setting focus
30821         * MenuItem.cs: Don't dirty the parents if we don't have any
30822
30823 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
30824
30825         * LibSupport.cs: Rename
30826
30827 2005-06-29  Peter Bartok  <pbartok@novell.com>
30828
30829         * TextBoxBase.cs: Re-align caret after deleting a character
30830         * TextControl.cs:
30831           - DeleteChars(): Ensure that tag covers the provided position
30832           - StreamLine(): Drop reference for dropped tag
30833
30834 2005-06-29  Peter Bartok  <pbartok@novell.com> 
30835
30836         * TextControl.cs: 
30837           - Selections now work properly, anchoring at the initial location
30838             and properly extending in either direction (SetSelectionToCaret(),
30839             SetSelectionStart() and SetSelectionEnd())
30840           - No longer redraws the whole control on selection change, now
30841             calculates delta between previous and new selection and only
30842             invalidates/redraws that area
30843           - Fixed FindPos() math off-by-one errors
30844           - Changed DeleteChars() to verify the provided tag covers the
30845             provided position, selections may have a tag that doesn't cover
30846             the position if the selection is at a tag border
30847           - Fixed off-by-one errors in DeleteChars()
30848           - Added missing streamlining check in DeleteChars() to remove
30849             zero-length tags
30850           - Implemented Invalidate() method, now properly calculates exposures
30851             between two given lines/positions
30852           - Implemented SetSelection()
30853           - Obsoleted and removed FixupSelection()
30854           - Improved RecalculateDocument() logic, removing code duplication
30855
30856 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
30857
30858         * LibSupport.cs: changes to match different input/output arguments.
30859
30860 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
30861
30862         * LibSupport.cs: added libsupport.so init routine.
30863
30864 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
30865         
30866         * ControlBindingsCollection.cs
30867                 - Throws an exception on null datasource when adding
30868                 - Checks for duplicated bindings when adding
30869
30870 2005-06-28  Jackson Harper  <jackson@ximian.com>
30871
30872         * TreeView.cs (OnKeyDown): Support left and right properly
30873         (navigates as well as expanding and collapsing.
30874         - Add support for Multiply, this expands all the selected nodes
30875         children.
30876         - Fix some tabbing.
30877
30878 2005-06-28  Jackson Harper  <jackson@ximian.com>
30879
30880         * TreeView.cs: Implement keyboard navigation, currently supports,
30881         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
30882         support for toggling checkboxes with the space bar.
30883
30884 2005-06-28  Jackson Harper  <jackson@ximian.com>
30885
30886         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
30887         tree.
30888
30889 2005-06-28  Jackson Harper  <jackson@ximian.com>
30890
30891         * TreeView.cs: Add missing event.
30892
30893 2005-06-27  Peter Bartok  <pbartok@novell.com> 
30894
30895         * TextControl.cs:
30896           - Made line ending size configurable (now allows for counting 
30897             lineendings as \n or \r\n)
30898           - Added margin to viewport to keep caret visible on right side
30899           - Fixed translation routines for line/pos to documentpos to consider
30900             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
30901           - Fixed some line-endings to be unix style
30902           - Fixed Document.FormatText to perform it's calculations 1-based
30903           - Added descriptions for a few methods that might otherwise get 
30904             used wrong
30905           - Added NOTE section with some basic conventions to remember at 
30906             the top of the file
30907           - Major fixup for RichTextBox selection drawing:
30908             * Fixed crashes when multiple tags on a single line were selected
30909             * fixed selection box drawing not overlaying text
30910             * fixed bogus offset calculation for tags not starting at index 1
30911             * Switched behaviour from using multiple Substrings of a 
30912               StringBuilder.ToString() to using multiple 
30913               StringBuilder.ToString(start, length) statements, hoping this is
30914               faster (kept original version commented out in the code, in case
30915               original version was faster)
30916         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
30917           alignment != Left
30918         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
30919           call it as well
30920
30921 2005-06-27  Jackson Harper  <jackson@ximian.com>
30922
30923         * TabControl.cs: Move to the left and right with the arrow
30924         keys. These keys don't cycle beyond first and last like
30925         tab. Refresh all the tabs when scrolling them to the left or
30926         right.
30927
30928 2005-06-27  Jackson Harper  <jackson@ximian.com>
30929
30930         * TabControl.cs:
30931           - ToString: Added method
30932           - CreateParams: Remove TODO and comment
30933           - OnKeyDown: Cycle through bounds properly.
30934           - SelectedIndex: Scroll to the right or left if we need to
30935           display the newly selected tab.
30936
30937 2005-06-23  Jackson Harper  <jackson@ximian.com>
30938
30939         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
30940         set.
30941
30942 2005-06-23  Jackson Harper  <jackson@ximian.com>
30943
30944         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
30945         CTRL-SHIFT-TAB, and HOME, END are there any others?
30946
30947 2005-06-23  Jackson Harper  <jackson@ximian.com>
30948
30949         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
30950
30951 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
30952         
30953         * DataGridTextBoxColumn.cs: fixes and enhancements
30954         * ThemeWin32Classic.cs: fixes and enhancements
30955         * DataGridBoolColumn.cs:  fixes and enhancements
30956         * DataGridDrawingLogic.cs:  fixes and enhancements
30957         * CurrencyManager.cs: fixes and enhancements
30958         * DataGrid.cs: fixes and enhancements
30959         * DataGridColumnStyle.cs:  fixes and enhancements
30960
30961 2005-06-22  Jackson Harper  <jackson@ximian.com>
30962
30963         * TabControl.cs: Add some missing methods that just call into the
30964         base. Make the TabPageCollection's IList interface behave in the
30965         same manner as the MS implementation.
30966
30967 2005-06-22  Peter Bartok  <pbartok@novell.com> 
30968
30969         * TextControl.cs: Added sanity check
30970         * TextBoxBase.cs: 
30971           - Fixed wrapping behaviour, don't set wrap on single line controls
30972             (this fixes the breakage of colordialog introduced in an earlier
30973              checkin)
30974           - Added rudimentary support for autoscrolling right-aligned controls
30975             (still needs fixing, also, center alignment scroll is missing)
30976
30977 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
30978         
30979         * ScrollBar.cs: Fixes thumbpos on Maximum values
30980
30981 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
30982         
30983         * PropertyGridView.cs: Pass context information to UITypeEditors 
30984
30985 2005-06-21  Peter Bartok  <pbartok@novell.com> 
30986
30987         * TextBoxBase.cs:
30988           - Now calling PositionCaret with absolute space coordinates
30989           - Enabled vertical scrolling
30990           - Better tracking of scrollbar changes, tied into WidthChange
30991             event
30992           - Improved cursor tracking
30993           - Removed debug output
30994         * TextControl.cs:
30995           - PositionCaret coordinates are now works in absolute space, not 
30996             the canvas
30997           - Improved tracking of document size
30998           - Added events for width and height changes
30999
31000 2005-06-21  Peter Bartok  <pbartok@novell.com>
31001
31002         * Form.cs: Set focus to active control when form is activated
31003         * TextControl.cs: 
31004           - Added word-wrap functionality to RecalculateLine() 
31005           - Added some short function descriptions for VS.Net to aid in
31006             writing dependent controls
31007           - Added Caret property, returning the current coords of the caret
31008           - Added ViewPortWidth and ViewPortHeight properties
31009           - Added Wrap property
31010           - Added CaretMoved event
31011           - Removed some old debug code
31012           - Split() can now create soft splits
31013           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
31014           - Added method to format existing text
31015           - Fixed size/alignment calculations to use viewport
31016           - RecalculateDocument now can handle changing line-numbers while
31017             calculating lines
31018
31019         * TextBox.cs:
31020           - Added some wrap logic, we don't wrap if alignment is not left
31021           - Added casts for scrollbar var, base class switched types to
31022             also support RichTextBoxA
31023           - Implemented handling of scrollbar visibility flags
31024
31025         * TextBoxBase.cs:
31026           - Switched scrollbars type to RichTextBoxScrollBars to support
31027             RichTextBox
31028           - Added tracking of canvas width/height
31029           - Switched scrollbars to be not selectable (to keep focus on text)
31030           - Added central CalculateDocument() method to handle all redraw
31031             requirements
31032           - Added ReadOnly support
31033           - Added WordWrap support
31034           - Fixed handling of Enter key (we now treat it as a DialogKey)
31035           - Fixed caret positioning when h or v scroll is not zero
31036           - Fixed placing/generation of vertical scrollbar
31037           - Added CalculateScrollBars() method to allow updating scrollbar
31038             limits and visibility
31039           - Fixed handling of horizontal scroll
31040           - Added handling of vertical scroll
31041           - Implemented auto-'jump' when caret moves to close to a left or
31042             right border and there is text to be scrolled into view (currently
31043             there's the potential for a stack overflow, until a bug in
31044             scrollbar is fixed)
31045
31046 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
31047         
31048         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
31049
31050 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
31051
31052         * Mime.cs:
31053         - added inodes.
31054         - return application/x-zerosize for files with size zero
31055           (if no extension pattern matches).
31056         - check matches collection for strings too.
31057         - return only the first mime type if the name value
31058           collection has more than one mime type.
31059
31060 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
31061         
31062         * PropertyGrid.cs: Cleaned up some TODOs
31063         * PropertyGridView.cs: Added support for UITypeEditors
31064
31065 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
31066         
31067         * DataGrid.cs: clears cached value
31068
31069 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
31070
31071         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
31072         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
31073         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
31074         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
31075         
31076 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
31077
31078         * ThemeWin32Classic.cs: fixes colour
31079
31080 2005-06-15  Peter Bartok  <pbartok@novell.com>
31081
31082         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
31083         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
31084         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
31085         * Control.cs: Added some MWFCategory and MWFDescription attributes
31086         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
31087
31088 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
31089
31090         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
31091         usage
31092
31093 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
31094
31095         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
31096         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
31097         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
31098         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
31099         * DataGrid.cs: default datagrid settings for Default Styles, fixes
31100         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
31101
31102 2005-06-13  Jackson Harper  <jackson@ximian.com>
31103
31104         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
31105         isn't printed when the user enables dropping. (X11 does accept
31106         drops).
31107         
31108 2005-06-13  Jackson Harper  <jackson@ximian.com>
31109
31110         * TreeView.cs: Remove some TODOS.
31111
31112 2005-06-13  Jackson Harper  <jackson@ximian.com>
31113
31114         * Form.cs: Hook into the mdi framework.
31115         * MdiClient.cs: Use the base control collections add method so
31116         parents get setup correctly. Set the default back colour and dock
31117         style.
31118         * MdiChildContext.cs: New class, this bad actor handles an
31119         instance of an MDI window. Right now there is only basic
31120         support. You can drag, close, and resize windows. Minimize and
31121         Maximize are partially implemented.
31122
31123 2005-06-13  Jackson Harper  <jackson@ximian.com>
31124
31125         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
31126         freaky when both vals are negative. NOTE: There are probably other
31127         places in XplatUIX11 that this needs to be done.
31128
31129 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
31130
31131         * DataGrid.cs: implement missing methods, move KeyboardNavigation
31132         * DataGridColumnStyle.cs: fixes signature
31133
31134 2005-06-12  Jackson Harper  <jackson@ximian.com>
31135
31136         * XplatUIX11.cs: Use sizing cursors similar to the ones on
31137         windows.
31138
31139 2005-06-11  Jackson Harper  <jackson@ximian.com>
31140
31141         * StatusBarPanel.cs: Signature cleanups. Implement
31142         BeginInit/EndInit.
31143
31144 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
31145
31146         * DataGridTextBoxColumn.cs: Honors aligment
31147         * GridColumnStylesCollection.cs: Contains is case unsensitive
31148         * GridTableStylesCollection.cs: several fixes
31149         * DataGridTableStyle.cs: default column creation
31150         * DataGridDrawingLogic.cs: fixes
31151         * CurrencyManager.cs: ListName property
31152         * DataGrid.cs: multiple styles support
31153         * DataGridColumnStyle.cs: fixes
31154         
31155
31156 2005-06-10  Peter Bartok  <pbartok@novell.com>
31157
31158         * Control.cs(Select): Moved SetFocus call to avoid potential
31159           loops if controls change the active control when getting focus
31160         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
31161           the up/down buttons
31162
31163 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
31164
31165         * ImageListConverter.cs: Implemented
31166
31167 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
31168
31169         * MonthCalendar.cs: Wired in NumericUpDown control for year
31170
31171 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
31172
31173         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
31174           DoubleClick events, since they are not meant to be fired.
31175
31176 2005-06-09  Peter Bartok  <pbartok@novell.com>
31177
31178         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
31179           Jonathan's standalone controls into MWF, implemented missing
31180           events, attributes and methods; added xxxAccessible classes
31181         * AccessibleObject.cs: Made fields internal so other classes
31182           can change them if needed
31183
31184 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
31185
31186         * UpDownBase.cs: Complete implementation
31187         * NumericUpDown.cs: Complete implementation
31188         * DomainUpDown.cs: Complete implementation
31189
31190 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
31191
31192         * DataGridTextBoxColumn.cs: drawing fixes
31193         * DataGridCell.cs: fixes ToString method to match MSNet
31194         * DataGridTableStyle.cs: fixes
31195         * DataGridBoolColumn.cs: fixes, drawing
31196         * DataGridDrawingLogic.cs: fixes, new methods
31197         * DataGridTextBox.cs: Keyboard and fixes
31198         * DataGrid.cs:
31199                 - Keyboard navigation
31200                 - Scrolling fixes
31201                 - Row selection (single, multiple, deletion, etc)
31202                 - Lots of fixes
31203         
31204 2005-06-07  Jackson Harper  <jackson@ximian.com>
31205
31206         * ThemeWin32Classic.cs: Clear the background area when drawing
31207         buttons.
31208
31209 2005-06-06  Peter Bartok  <pbartok@novell.com>
31210
31211         * ImageListStreamer.cs: Fixed signature for GetData
31212         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
31213         * ComboBox.cs:
31214           - Added missing ChildAccessibleObject class
31215           - Added missing OnXXXFocus overrides, switched to using those
31216             instead of the event handler
31217         * Control.cs:
31218           - Added Parent property for ControlAccessibleObject
31219           - Fixed signatures
31220           - Fixed attributes
31221           - Added ResetBindings()
31222         * ListBindingConverter.cs: Implemented some methods
31223         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
31224         * ImageList.cs: Implemented basic handle scheme, removed TODOs
31225         * ContainerControl.cs: Fixed signature, now subscribing to the
31226           ControlRemoved event instead of overriding the handler, LAMESPEC
31227         * CurrencyManager.cs: Added missing attribute
31228         * MonthCalendar.cs: Added missing properties
31229
31230 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
31231
31232         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
31233         
31234 2005-06-06  Gaurav Vaish and Ankit Jain
31235
31236         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
31237         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
31238         
31239 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
31240
31241         * Control.cs: fixes CreateParams Width / Height.
31242
31243 2005-06-05  Peter Bartok  <pbartok@novell.com>
31244
31245         * Win32DnD.cs: Removed compilation warnings
31246
31247 2005-06-05  Peter Bartok  <pbartok@novell.com>
31248
31249         * Control.cs (CreateParams): Since we don't know if one of the
31250           properties we use is overridden, lets make sure if we fail accessing
31251           we continue with a backup plan
31252
31253 2005-06-05  Peter Bartok  <pbartok@novell.com>
31254
31255         * Win32DnD.cs:
31256           - Removed debug output
31257           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
31258             struct
31259           - Plugged resource leak
31260         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
31261           MS size
31262
31263 2005-06-05  Peter Bartok  <pbartok@novell.com>
31264
31265         * XplatUIWin32.cs: Removed DnD code
31266         * Win32DnD.cs: Implemented drop source and drop target functionality
31267
31268 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
31269
31270         * UpDownBase.cs: remove duplicate addition of event, enable some code
31271         that was commented out.
31272         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
31273         Validate input when a key is pressed. It works fine now for every
31274         combination of Hexadecimal. Only missing some drawing love when sharing
31275         space with other controls.
31276
31277 2005-06-04  Peter Bartok  <pbartok@novell.com>
31278
31279         * Control.cs:
31280           - We need to pass a window for DragDrop, so enable callback events
31281           - Added DnD callback events when being a DragSource
31282         * XplatUI.cs (StartDrag): Added window handle argument
31283         * XplatUIDriver.cs (StartDrag): Added window handle argument
31284         * QueryContinueDragEventArgs: Made fields internally accessible so
31285           drivers can set them
31286         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
31287           can set them
31288
31289 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
31290
31291         * DataGridTextBoxColumn.cs: column text editing
31292         * DataGridTableStyle.cs: Respect columns styles created by the user
31293         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
31294         * DataGridBoolColumn.cs: bool column editing
31295         * DataGrid.cs: fixes to scrolling, properties, etc
31296         * DataGridTextBox.cs: handle keyboard
31297         * DataGridColumnStyle.cs: fixes
31298
31299 2005-06-02  Jackson Harper  <jackson@ximian.com>
31300
31301         * ImageListStreamer.cs: Somewhat broken implementation of
31302         GetObjectData. The RLE needs some work to match MS properly.
31303
31304 2005-06-02  Jackson Harper  <jackson@ximian.com>
31305
31306         * X11Dnd.cs: Attempting to keep at least one file in MWF
31307         monostyled.
31308
31309 2005-06-02  Peter Bartok  <pbartok@novell.com>
31310
31311         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
31312           that way
31313
31314 2005-06-02  Peter Bartok  <pbartok@novell.com>
31315
31316         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
31317         * XplatUI.cs: Added DoDragDrop() method
31318         * XplatUIDriver.cs: Added DoDragDrop() method
31319
31320 2005-06-02  Jackson Harper  <jackson@ximian.com>
31321
31322         * Splitter.cs: Implement BorderStyle.
31323
31324 2005-06-02  Jackson Harper  <jackson@ximian.com>
31325
31326         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
31327         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
31328         X11 using XDND.
31329
31330 2005-06-02  Peter Bartok  <pbartok@novell.com>
31331
31332         * DataObject.cs:
31333           - Added Data setter
31334           - Fixed broken insertion code for SetData, now also
31335             overwrites any existing entry of the same format name
31336         * Hwnd.cs: Added list of pointers that automatically gets
31337           freed when the window is disposed
31338         * XplatUI.cs: Call driver initialization method when loading
31339           a driver
31340         * Control.cs:
31341           - OnDragLeave takes EventArgs, not DragEventArgs
31342           - Added setting of WS_EX_ACCEPTFILES style when dropping is
31343             supported
31344           - Forces style update when drop state changes
31345         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
31346           not perfect since we cannot (yet) call the IDataObject.GetData()
31347           method, we keep getting 0x80004005 error, dunno why)
31348
31349 2005-06-02  Peter Bartok  <pbartok@novell.com>
31350
31351         * DragEventArgs.cs: Make fields internal so we can cache the
31352           object and re-set the fields from XplatUI
31353
31354 2005-06-02  Jackson Harper  <jackson@ximian.com>
31355
31356         * Control.cs: Add some internal methods so the DnD subsystem can
31357         raise DnD events. Also call into the driver when AllowDrop is set.
31358         * XplatUI.cs:
31359         * XplatUIDriver.cs: New method for setting whether or not a window
31360         is allowed to accept drag and drop messages.
31361                 
31362 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
31363         
31364         * ScrollBar.cs: Make sure that values sent in Scroll events
31365         are always between Maximum and Minimum.
31366
31367 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
31368
31369         * Menu.cs: Call MenuChanged when menuitem visibility has been
31370         changed.
31371         * MenuItem.cs: Rebuild menu when item is (not) visible.
31372         * MainMenu.cs: MainMenu has special MenuChanged.
31373         * Theme.cs: Caption and FrameBorderSize are not fixed.
31374         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
31375         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
31376         * XplatUIX11.cs,
31377         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
31378         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
31379
31380 2005-05-30  Jackson Harper  <jackson@ximian.com>
31381
31382         * DataFormat.cs: We can't statically initialize this stuff because
31383         it calls into the xplatui and could create a loop. So we lazy init
31384         it.
31385
31386 2005-05-28  Jackson Harper  <jackson@ximian.com>
31387
31388         * Control.cs: Proper implementation of Product(Name/Version).
31389
31390 2005-05-27  Jackson Harper  <jackson@ximian.com>
31391
31392         * DataObject.cs: Dont crash if no data is found.
31393
31394 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
31395         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
31396                 as per status page, guessing it should be set to true
31397
31398 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
31399
31400         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
31401         * DataGridTableStyle.cs: set proper formatting text, def header text
31402         * ThemeWin32Classic.cs: new themable paramaters
31403         * DataGridBoolColumn.cs: paint check box, get data, fixes
31404         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
31405         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
31406         * DataGridColumnStyle.cs: fixes
31407         * Theme.cs: new themable paramaters
31408                 
31409 2005-05-26  Peter Bartok  <pbartok@novell.com>
31410
31411         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
31412
31413 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
31414         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
31415
31416 2005-05-24  Peter Bartok  <pbartok@novell.com>
31417
31418         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
31419           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
31420           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
31421           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
31422           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
31423           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
31424           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
31425           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
31426           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
31427           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
31428           missing attributes, etc
31429         * DataGridPreferredColumnWidthTypeConverter.cs: Added
31430
31431 2005-05-24  Peter Bartok  <pbartok@novell.com>
31432
31433         * Help.cs: Added, implemented trivial functions, throws up MessageBox
31434           when user tries to get help
31435         * DataObject.cs, DataFormats.cs, LinkArea.cs,
31436           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
31437           to suppress warnings
31438         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
31439           avoid unreachable code warning
31440
31441 2005-05-20  Peter Bartok  <pbartok@novell.com>
31442
31443         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
31444
31445 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
31446
31447         * DataGridTextBoxColumn.cs: Basic painting methods
31448         * DataGridTableStyle.cs: Set table style in the column
31449         * ThemeWin32Classic.cs: Use Theme for colors
31450         * DataGridDrawingLogic.cs: Implement more drawing
31451         * DataGrid.cs: drawing, theming, enhacements, fixes
31452         * DataGridColumnStyle.cs: fixes, drawing
31453         * Theme.cs: theming for Datagrid
31454
31455 2005-05-20  Peter Bartok  <pbartok@novell.com>
31456
31457         * Cursor.cs: Implemented GetObjectData() method
31458
31459 2005-05-20  Peter Bartok  <pbartok@novell.com>
31460
31461         * Cursors.cs: Added setting of cursor name
31462         * Cursor.cs:
31463           - Implemented constructors
31464           - Implemented Draw and DrawStretched
31465           - Implemented Current property
31466           - Implemented == and != operators
31467           - Implemented Dispose()
31468           - Implemented ToString
31469           - Added missing attributes
31470         * XplatUIX11.cs:
31471           - Added missing reset for OverrideCursor when DoEvents is called
31472           - Fixed creation of cursor, logic was wrong
31473         * XplatUIWin32.cs:
31474           - Added missing reset for OverrideCursor when DoEvents is called
31475           - Fixed creation of cursor, bit arrays were swapped
31476         * Clipboard.cs: Removed obsolete MonoTODO attribute
31477
31478 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
31479
31480         * ComboBox.cs: fixes OnSelectedItemChanged
31481         * ControlBindingsCollection.cs: fixes item range check
31482
31483 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
31484
31485         * UpDownBase.cs:
31486                 - Calc preferred height properly
31487                 - Implement missing properties
31488                 
31489         * NumericUpDown.cs: Implement missing events
31490
31491 2005-05-19  Jackson Harper  <jackson@ximian.com>
31492
31493         * TabControl.cs: New method that resizes the tab pages before
31494         redrawing them. This as needed as the control is double buffered
31495         and sizing will not be recalculated unless ResizeTabPages is
31496         called.
31497         * TabPage.cs: Set base.Text instead of Text in the constructor so
31498         that UpdateOwner does not get called. Use the new Redraw method of
31499         TabControl instead of Refresh so the sizing is recalculated.
31500         * ThemeWin32Classic.cs: Draw the text for button tabs.
31501
31502 2005-05-19  Jackson Harper  <jackson@ximian.com>
31503
31504         * Control.cs: Paint control background images. Fix typo where
31505         PaintControlBackground was not getting called correctly.
31506
31507 2005-05-19  Peter Bartok  <pbartok@novell.com>
31508
31509         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
31510           I can investigate, apparently I broke FileDialog
31511
31512 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
31513
31514         * AxHost.cs: Some simple properties.
31515         * Control.cs: window must be accessible after ctor.
31516         * Form.cs: Added TransparencyKey property.
31517         * TextBoxBase.cs: Implemented Clear. Text property can be null.
31518         * XplatUIWin32.cs: SetBorderStyle implemented.
31519
31520 2005-05-18  Peter Bartok  <pbartok@novell.com>
31521
31522         * DataObject.cs: Entries are not global but particular to the
31523           DataObject, now it behaves that way
31524         * XplatUIWin32.cs: Implemented Clipboard methods
31525         * Clipboard.cs: Implemented
31526         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
31527         * XplatUIOSX.cs: Updated to final clipboard prototypes
31528         * XplatUIX11.cs: Implemented Clipboard methods
31529         * XplatUIDriver.cs: Updated to final clipboard prototypes
31530         * XplatUIStructs.cs:
31531           - Added BITMAPINFOHEADER struct
31532           - Added ClipboardFormats enum
31533         * X11Structs.cs:
31534           - Added ClipboardStruct
31535           - Added Atom enum items for clipboard types
31536           - Fixed atom types for Selection event structures
31537         * DataFormats.cs:
31538           - Added internal properties and methods for drivers to enumerate
31539             all known formats
31540           - Switched initialization method to allow drivers to assign their
31541             own IDs even for the MS predefined clipboard IDs
31542         * XplatUI.cs: Updated to final clipboard interface
31543
31544 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
31545         * PropertyGridView.cs: Fixed compiler warnings.
31546
31547 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
31548         * PropertyGrid.cs: Added some event calls
31549         * PropertyGridView.cs: Change drawing code to use double buffering
31550         * PropertyGridTextBox.cs: Changed Text property name
31551         * GridItem.cs: Added Bounds property.
31552         * GridEntry.cs: Added Bounds property.
31553
31554 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
31555
31556         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
31557         since GetType() may not return the correct type if the object is
31558         a remoting proxy.
31559
31560 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
31561
31562         * TreeNodeCollection.cs: fixes get/set item ranges
31563         
31564 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
31565
31566         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
31567                 
31568 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
31569
31570         * ComboBox.cs: Fix item range comparation
31571         * ListView.cs: Fix item range comparation
31572
31573 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
31574
31575         * FontDialog.cs:
31576           - Clear example panel when OnPaint is called
31577           - Better solution for displaying the example panel text
31578           - Select default indexes in the ListBoxes
31579
31580 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
31581
31582         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
31583
31584 2005-05-11  Peter Bartok  <pbartok@novell.com>
31585
31586         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
31587         * SelectionRangeConverter.cs: Implemented
31588         * PropertyGrid.cs: Fixed attribute value
31589         * Control.cs:
31590           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
31591           - Added Sebastien Pouliot's CAS Stack Propagation fixes
31592         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
31593           that's common to all drivers. First methods to go there are
31594           Sebastien Pouliot's CAS Stack Propagation helper methods
31595         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
31596           Sebastien Pouliot for CAS Stack Propagation
31597
31598 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
31599
31600         * OSXStructs.cs:
31601           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
31602
31603 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
31604
31605         * DataGridTextBoxColumn.cs: fixed some members
31606         * GridColumnStylesCollection.cs: indexed column is case insensitive
31607         * DataGridTableStyle.cs: fixes
31608         * ThemeWin32Classic.cs: add new theme parameter
31609         * Theme.cs: add new theme parameter
31610         * DataGridDrawingLogic.cs: Datagrid's drawing logic
31611         * DataGrid.cs: fixes, new internal properties, etc.
31612         * DataGridColumnStyle.cs: allows to set grid value
31613         *
31614
31615 2005-05-10  Peter Bartok  <pbartok@novell.com>
31616
31617         * AccessibleObject.cs:
31618           - Removed MonoTODO attribute on help, method is correct
31619           - Fixed Bounds property
31620         * AxHost.cs: Moved MonoTODO
31621         * ButtonBase.cs: Now setting AccessibleObject properties
31622         * RadioButton.cs: Setting proper AccessibleObject role
31623         * CheckBox.cs: Setting proper AccessibleObject role
31624         * ControlBindingsCollection.cs: Added properties, methods and attributes
31625         * DataFormats.cs: Fixed awkward internal API, and changed to enable
31626           userdefined DataFormats.Format items as well
31627         * ListControl.cs: Removed data_member from the public eye
31628         * OpenFileDialog.cs:
31629           - Made class sealed
31630           - Added missing attributes
31631         * SaveFileDialog.cs: Added missing attributes
31632         * ImageListStreamer.cs: Fixed code that caused warnings
31633         * LinkLabel.cs: Removed unreachable code
31634         * TreeView.cs: Fixed code that caused warnings
31635         * PropertyGridView.cs: Fixed code that caused warnings
31636         * GridColumnStylesCollection.cs: Added missing attributes
31637         * GridTableStylesCollection: Added missing attribute
31638         * PropertyManager: Added .ctor
31639         * SecurityIDType: Added
31640         * DataObject.cs: Implemented class
31641         * LinkArea.cs: Added missing attribute
31642
31643 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
31644
31645         * RadioButton.cs: call base method to allow to fire OnClick event
31646         * UpDownBase.cs: OnMouseUp call base method
31647         * CheckedListBox.cs: call base method before returning
31648         * TrackBar.cs: call base method before returning
31649         
31650
31651 2005-05-10  Peter Bartok  <pbartok@novell.com>
31652
31653         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
31654           for messages
31655
31656 2005-05-10  Peter Bartok  <pbartok@novell.com>
31657
31658         * DataFormats.cs: Implemented
31659         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
31660           XplatUIX11.cs: Added Clipboard APIs
31661         * XplatUIWin32.cs: Implemented Clipboard APIs
31662         * FolderBrowserDialog.cs: Added missing event, attributes
31663
31664 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
31665
31666         * CheckBox.cs: call base method to allow to fire OnClick event
31667
31668 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
31669
31670         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
31671
31672 2005-05-06  Peter Bartok  <pbartok@novell.com>
31673
31674         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
31675         * Screen.cs: Implemented
31676         * HelpNavigator.cs: Added
31677         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
31678           property
31679         * HelpProvider.cs: Implemented all we can do until we have a CHM
31680           help library (which means that "What's This" does work now)
31681
31682 2005-05-06  Jackson Harper  <jackson@ximian.com>
31683
31684         * XplatUIX11.cs: Fix waking up the main loop.
31685                 
31686 2005-05-05  Peter Bartok  <pbartok@novell.com>
31687
31688         * XplatUI.cs: Updated revision
31689         * Form.cs: Removed enless loop
31690         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
31691         * Label.cs (OnPaint): Added call to base.OnPaint()
31692         * ToolTip.cs: Made ToolTipWindow reusable for other controls
31693         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
31694         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
31695         * AxHost.cs: Added
31696         * ButtonBase.cs: Moved base.OnPaint() call to end of method
31697         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
31698           to ToolTip.ToolTipWindow for drawing and size methods; this allows
31699           reuse of ToolTipWindow by other controls
31700         * SizeGrip.cs: Moved base.OnPaint() call to end of method
31701         * XplatUIX11.cs: Now clipping drawing area (experimental)
31702         * PictureBox.cs: Moved base.OnPaint() call to end of method
31703         * Theme.cs: Fixed ToolTip abstracts to match new format
31704         * ErrorProvider.cs: Implemented
31705
31706 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
31707
31708         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
31709         * LinkLabel.cs:
31710                 - Adds cursors
31711                 - Handles focus
31712                 - Implements LinkBehavior
31713                 - Fixes many issues
31714
31715 2005-05-03  Jackson Harper  <jackson@ximian.com>
31716
31717         * ListView.cs: Calculate the scrollbar positioning on resize and
31718         paint, so they get put in the correct place.
31719
31720 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
31721
31722         * ColorDialogs.cs: The small color panels are now handled by
31723           SmallColorControl. This fixes drawing of the focus rectangle
31724           and adds a 3D border.
31725
31726 2005-05-03  Peter Bartok  <pbartok@novell.com>
31727
31728         * Control.cs: Modified version of Jonathan Chamber's fix for
31729           double-buffering
31730
31731 2005-05-03  Jackson Harper  <jackson@ximian.com>
31732
31733         * ListView.cs: Remove redraw variable. Control now handles whether
31734         or not a redraw needs to be done, and will only raise the paint
31735         event if redrawing is needed.
31736
31737 2005-05-03  Jackson Harper  <jackson@ximian.com>
31738
31739         * Splitter.cs: No decorations for the splitter form. Cache the
31740         hatch brush.
31741
31742 2005-05-03  Jackson Harper  <jackson@ximian.com>
31743
31744         * TreeView.cs: Use dashed lines to connect nodes. Use the
31745         ControlPaint method for drawing the focus rect instead of doing
31746         that in treeview.
31747
31748 2005-05-02  Peter Bartok  <pbartok@novell.com>
31749
31750         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
31751
31752 2005-04-29  Jackson Harper  <jackson@ximian.com>
31753
31754         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
31755         entire image buffer. Just clear the clipping rectangle.
31756
31757 2005-04-29  Jackson Harper  <jackson@ximian.com>
31758
31759         * ThemeWin32Classic.cs: Don't draw list view items that are
31760         outside the clipping rectangle.
31761
31762 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
31763
31764         * ListBox.cs: added horizontal item scroll
31765
31766 2005-04-29  Jackson Harper  <jackson@ximian.com>
31767
31768         * ThemeWin32Classic.cs: Remove some old debug code that was
31769         causing flicker with the new double buffering code.
31770
31771 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
31772
31773         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
31774         behave like combobox and comboboxlist (still not sure if this is
31775         correct though).
31776
31777 2005-04-28  Jackson Harper  <jackson@ximian.com>
31778
31779         * ThemeWin32Classic.cs: Don't fill the middle of progress
31780         bars. This fills areas outside of the clip bounds that don't need
31781         to be filled.
31782
31783 2005-04-28  Jackson Harper  <jackson@ximian.com>
31784
31785         * Control.cs: Don't expose functionality to touch the image buffers.
31786         * ProgressBar.cs:
31787         * ListView.cs: We do not need to (and no longer can) manipulate
31788         the image buffers directly. All of this is handled by Control.
31789
31790 2005-04-28  Peter Bartok  <pbartok@novell.com>
31791
31792         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
31793           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
31794           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
31795
31796 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
31797
31798         * Combobox:
31799                 - Adjust control's height for non-simple comboboxes (bug fix)
31800                 - Remove dead code
31801         * MenuAPI.cs: remove unused var
31802         * ScrollBar.cs: remove unsed var
31803                  
31804         * ListBox.cs: unselect items when clearing
31805
31806 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
31807
31808         * ListControl.cs: honors OnPositionChanged and default Selected Item
31809         * ListBox.cs: unselect items when clearing
31810
31811 2005-04-27  Jackson Harper  <jackson@ximian.com>
31812
31813         * X11Keyboard.cs: Initialize a default keyboard and give a warning
31814         if a "correct" keyboard is not found. This will make us not crash,
31815         but might give some users bad keyboard layouts...seems to be the
31816         same thing rewind does.
31817
31818 2005-04-27  Jackson Harper  <jackson@ximian.com>
31819
31820         * BindingManagerBase.cs: Attach the current/position changed
31821         handlers to their respective events.
31822
31823 2005-04-27  Jackson Harper  <jackson@ximian.com>
31824
31825         * Control.cs: Make sure that the first WM_PAINT does a full draw,
31826         not just a blit.
31827         * ThemeWin32Classic.cs: Don't fill the background for picture
31828         boxes. This could overright user drawing.
31829         * ComboBox.cs: Just fill the clipping rect not the entire client
31830         rect when drawing the background. This prevents pieces of the
31831         image buffer from getting overwritten and is theoretically faster.
31832
31833 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
31834
31835         * ComboBox.cs: Databinding support fixes, fire missing events
31836         * ListControl.cs: implement missing methods and properties, fixes
31837         * ThemeWin32Classic.cs: Databiding support on Drawing
31838         * CheckedListBox.cs: Databinding support fixes, fire missing events
31839         * ListBox.cs: Databinding support fixes, fire missing events
31840         
31841 2005-04-25  Peter Bartok  <pbartok@novell.com>
31842
31843         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
31844
31845 2005-04-25  Jackson Harper  <jackson@ximian.com>
31846
31847         * TreeView.cs: Use the horizontal scrollbars height not width when
31848         determining how much of the client area is available.
31849
31850 2005-04-25  Jackson Harper  <jackson@ximian.com>
31851
31852         * Control.cs: Double buffering is handled differently now. As per
31853         the spec, the extra buffer is created in the WM_PAINT message and
31854         passed down to the control's drawing code.
31855         * GroupBox.cs:
31856         * Label.cs:
31857         * CheckBox.cs:
31858         * ProgressBar.cs:
31859         * RadioButton.cs:
31860         * ColorDialog.cs:
31861         * ComboBox.cs:
31862         * PropertyGridView.cs:
31863         * UpDownBase.cs:
31864         * MessageBox.cs:
31865         * MenuAPI.cs:
31866         * ListView.cs:
31867         * ButtonBase.cs:
31868         * SizeGrip.cs:
31869         * ScrollBar.cs:
31870         * ListBox.cs:
31871         * TrackBar.cs:
31872         * ToolBar.cs:
31873         * PictureBox.cs:
31874         * DateTimePicker.cs:
31875         * StatusBar.cs:
31876         * TreeView.cs: Update to new double buffering system.
31877         * MonthCalendar.cs: Uncomment block, as Capture is now
31878         working. Update to new double buffering
31879         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
31880         * PaintEventArgs.cs: New internal method allows us to set the
31881         graphics object. This is used for double buffering.
31882         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
31883         rectangle. The internal paint_area var has been removed from
31884         StatusBar. The clipping rect should be used instead.
31885         * Theme.cs: Give the PictureBox drawing method a clipping rect.
31886         * TabPage.cs: The RefreshTabs method was removed, so just call the
31887         tab controls Refresh method now.
31888         * TabControl.cs: Update to new double buffering. Make sure the
31889         handle is created before sizing the tab pages, otherwise we will
31890         get stuck in a loop.
31891
31892 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
31893
31894         * LinkLabel.cs: Fix typo, bug #74719; patch
31895           from Borja Sanchez Zamorano
31896
31897 2005-04-22  Jackson Harper  <jackson@ximian.com>
31898
31899         * TreeNode.cs: Implement Handle stuff.
31900         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
31901
31902 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
31903
31904         * DataGridTextBoxColumn.cs: call base constructors, fixes
31905         * GridColumnStylesCollection.cs: missing events, methods, and functionality
31906         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
31907         * DataGridTableStyle.cs: implements create default column styles
31908         * DataGridBoolColumn.cs: which types can handle
31909         * DataGrid.cs: missing methods, fixes, new functionality
31910         * DataGridColumnStyle.cs: fixes
31911
31912 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
31913         * FolderBrowserDialog.cs:
31914         - Use a thread to fill the TreeView
31915         - Adjusted some sizes
31916
31917 2005-04-19  Peter Bartok  <pbartok@novell.com>
31918
31919         * LinkLabel.cs: (Re-)create the pieces when setting the Text
31920           property. Fixes #74360.
31921
31922 2005-04-19  Jackson Harper  <jackson@ximian.com>
31923
31924         * XEventQueue.cs: Lock when getting the lockqueue size.
31925         * PictureBox.cs: Call base OnPaint
31926         
31927 2005-04-19  Peter Bartok  <pbartok@novell.com>
31928
31929         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
31930           messages were no longer being processed (this broke BeginInvoke)
31931
31932           
31933 2005-04-18  Jackson Harper  <jackson@ximian.com>
31934
31935         * TreeView.cs: buglet that caused node images to get drawn
31936         regardless of whether or not they were in the clipping rectangle.
31937
31938 2005-04-18  Jackson Harper  <jackson@ximian.com>
31939
31940         * CurrencyManager.cs: There are four rules for GetItemProperties:
31941         - If the type is an array use the element type of the array
31942         - If the type is a typed list, use the type
31943         - If the list contains an Item property that is not an object, use
31944         that property
31945         - use the first element of the list if there are any elements in
31946         the list.
31947         
31948 2005-04-17  Jackson Harper  <jackson@ximian.oom>
31949
31950         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
31951         click. This handles offsets for scrolling properly and reduces
31952         memory. Also fixed GetNode to not offset now that TopNode works
31953         properly.
31954         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
31955         
31956 2005-04-17  Jackson Harper  <jackson@ximian.com>
31957
31958         * CursorConverter.cs: Initial implementation.
31959
31960 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
31961
31962         * ListControl.cs: work towards complex data binding support on ListControl
31963         * CurrencyManager.cs: work towards complex data binding support on ListControl
31964         * ListBox.cs: work towards complex data binding support on ListControl
31965
31966
31967 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
31968
31969         * GridTableStylesCollection.cs: fixes name and constructor
31970         * DataGridTableStyle.cs: fixes
31971         * DataGridBoolColumn.cs: fixes names and constructors
31972         * DataGrid.cs: define methods and properties. Some init implementations
31973         * DataGridCell.cs: define methods and properties. Some init implementations
31974         * GridTablesFactory.cs: Define methods and properties
31975
31976 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
31977
31978         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
31979         graphics port changes.  We still want the coordinates in global screen
31980         coordinates.
31981
31982 2005-04-14  Jackson Harper  <jackson@ximian.com>
31983
31984         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
31985         check plus minus or checkbox clicks unless those features are enabled.
31986
31987 2005-04-14  Jackson Harper  <jackson@ximian.com>
31988
31989         * TreeView.cs: Add methods for setting the top and bottom visible
31990         nodes. TreeNode::EnsureVisible uses these methods.
31991         * TreeNode.cs: Implement EnsureVisible
31992
31993 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
31994
31995         * Form.cs: Pospone menu assignation if the window has not been created yet
31996         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
31997         size and position
31998
31999 2005-04-12  Jackson Harper  <jackson@ximian.com>
32000
32001         * TreeView.cs: Set the TopNode properly when scrolling
32002         occurs. This has the added benifit of reducing the amount of
32003         walking that needs to be done when drawing. Also removed an old
32004         misleading TODO.
32005         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
32006         
32007 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
32008
32009         * Timer.cs: fixes interval setting when the timer is already enabled
32010         
32011 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
32012
32013         * FolderBrowserDialog.cs: First approach
32014
32015 2005-04-09  Peter Bartok  <pbartok@novell.com>
32016
32017         * FolderBrowserDialog: Added
32018
32019 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
32020
32021         * LinkLabel.cs: move drawing code into the theme
32022         * ThemeWin32Classic.cs: drawing code and painting background bugfix
32023         * Theme.cs: define DrawLinkLabel method
32024
32025 2005-04-05  Jackson Harper  <jackson@ximian.com>
32026
32027         * BindingContext.cs: Use weak references so these bad actors don't
32028         stay alive longer then they need to.
32029
32030 2005-04-05  Jackson Harper  <jackson@ximian.com>
32031
32032         * ListControl.cs: Basic implementation of complex databinding.
32033         * ComboBox.cs:
32034         * ListBox.cs: Add calls to ListControl databinding methods.
32035
32036 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
32037
32038         * FileDialog.cs:
32039           - Don't change PopupButtonState to Normal when the
32040             PopupButton gets pressed several times.
32041           - Renamed ButtonPanel to PopupButtonPanel
32042
32043 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
32044
32045         * ColorDialog.cs: Use cached objects instead of creating them
32046         * LinkLabel.cs: Use cached objects instead of creating them
32047         * Splitter.cs: Use cached objects instead of creating them
32048         * FontDialog.cs: Use cached objects instead of creating them
32049         * PropertyGridView.cs: Use cached objects instead of creating them
32050         * MessageBox.cs: Use cached objects instead of creating them
32051         * FileDialog.cs: Use cached objects instead of creating them
32052         * ThemeWin32Classic.cs: Use cached objects instead of creating them
32053         * TreeView.cs: Use cached objects instead of creating them
32054         
32055 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
32056
32057         * Control.cs: use Equals to compare the font since no == op
32058         * ScrollBar.cs: use Equals to compare the font since no == op
32059
32060 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
32061
32062         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
32063
32064 2005-04-01  Jackson Harper  <jackson@ximian.com>
32065
32066         * Binding.cs: Implement IsBinding.
32067         * BindingManagerBase.cs:
32068         * PropertyManager.cs:
32069         * CurrencyManager.cs: Add IsSuspended property.
32070
32071 2005-04-01  Jackson Harper  <jackson@ximian.com>
32072
32073         * Binding.cs: Had some IsAssignableFrom calls backwards.
32074
32075 2005-04-01  Jackson Harper  <jackson@ximian.com>
32076
32077         * Binding.cs: Handle null data members when pulling data.
32078         * PropertyManager.cs: Handle the data member being a property that
32079         does not exist.
32080
32081 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
32082
32083         * DataGridTextBoxColumn.cs: fixes signature
32084         * DataGrid.cs: calls right constructor
32085
32086 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
32087
32088         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
32089         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
32090         * GridTableStylesCollection.cs: implements GridTableStylesCollection
32091         * DataGridTableStyle.cs: implements DataGridTableStyle
32092         * DataGridBoolColumn.cs: implements DataGridBoolColumn
32093         * DataGridTextBox.cs: implements DataGridTextBox
32094         * DataGridColumnStyle.cs: implements DataGridColumnStyle
32095
32096 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
32097
32098         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
32099
32100 2005-03-29  Peter Bartok  <pbartok@novell.com>
32101
32102         * Application.cs:
32103           - Properly implemented CompanyName property
32104           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
32105             returns a path that includes CompanyName, ProductName and
32106             Version (fixes bug #70330)
32107
32108 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
32109
32110         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
32111           fixes bug #72588.
32112
32113 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
32114
32115         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
32116         
32117           - Added ReadOnly CheckBox
32118           - Further refactoring: moved some code from Open-/SaveFileDialog
32119             to FileDialog
32120
32121 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
32122
32123         * OpenFileDialog.cs: Fixed CheckFileExists
32124         * FileDialog.cs:
32125           Moved FileView and DirComboBox outside FileDialog class.
32126           They can now be used outside FileDialog
32127
32128 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
32129
32130         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
32131         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
32132
32133 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
32134
32135         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
32136           - Added missing CreatePrompt property in SaveDialog
32137           - Overall SaveDialog handling should be better now
32138           - Added non standard ShowHiddenFiles property
32139           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
32140           - Added InitialDirectory and RestoreDirectory support
32141
32142 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
32143
32144         * FileDialog.cs: Made dirComboBox usable
32145
32146 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
32147
32148         * FileDialog.cs: Added Filter support (case sensitiv)
32149
32150 2005-03-24  Jackson Harper  <jackson@ximian.com>
32151
32152         * TabControl.cs: Need a couple more pixels for the lines.
32153
32154 2005-03-23  Jackson Harper  <jackson@ximian.com>
32155
32156         * TabControl.cs: Give the tab page focus when it is selected.
32157
32158 2005-03-23  Jackson Harper  <jackson@ximian.com>
32159
32160         * TabControl.cs: Account for the drawing of tabs borders when
32161         invalidating. If the slider was clicked dont do click detection on
32162         the tabs.
32163
32164 2005-03-23  Jackson Harper  <jackson@ximian.com>
32165
32166         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
32167
32168 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
32169
32170         * CategoryGridEntry.cs: Added
32171         * GridItem.cs: Added helper properties
32172         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
32173         * GridEntry.cs: Updated code for collection
32174         * PropertyGrid.cs: Cleaned up some formatting
32175         * PropertyGridView.cs: Added drop down functionality for enums.
32176         * GridItemCollection.cs: Added enumerator logic
32177         * PropertyGridEntry.cs: Added
32178
32179 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
32180
32181         * FileDialog.cs:
32182           - Removed unnecessary commented code
32183           - Fixed handling for entering the filename manually in the combobox
32184
32185 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
32186
32187         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
32188
32189 2005-03-18  Peter Bartok  <pbartok@novell.com>
32190
32191         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
32192           them being touching the border
32193
32194 2005-03-18  Peter Bartok  <pbartok@novell.com>
32195
32196         * TextControl.cs: Quick hack to center text better
32197
32198 2005-03-18  Peter Bartok  <pbartok@novell.com>
32199
32200         * ControlPaint.cs:
32201           - Don't throw NotImplemented exceptions, just print a notice once
32202             instead (requested by Miguel). This makes running existing SWF
32203             apps a bit easier
32204         * Control.cs:
32205           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
32206           - Added context menu trigger on right click
32207         * Panel.cs: Trigger invalidate on resize
32208         * StatusBar.cs:
32209           - Removed old double-buffer drawing
32210           - Added ResizeRedraw style to force proper update of statusbar
32211         * ListView.cs:
32212           - Removed debug output
32213         * ThemeWin32Classic.cs:
32214           - Fixed drawing of status bar, now draws Text property if there
32215             are no defined panels
32216
32217 2005-03-18  Jackson Harper  <jackson@ximian.com>
32218
32219         * ImageList.cs: When the image stream is set pull all the images
32220         from it.
32221         * ImageListStreamer.cs: Implement reading image list streams.
32222
32223 2005-03-18  Peter Bartok  <pbartok@novell.com>
32224
32225         * ThemeWin32Classic.cs (DrawPictureBox):
32226           - Fixed calculations for centered drawing
32227           - Fixed drawing for normal mode, not scaling the image on normal
32228
32229 2005-03-18  Peter Bartok  <pbartok@novell.com>
32230
32231         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
32232           textbox
32233         * FileDialog.cs:
32234           - Made Open/Save button the accept button for FileDialog
32235           - Tied the cancel button to the IButtonControl cancel button
32236           - Save/Open now properly builds the pathname
32237           - Now handles user-entered text
32238           - Preventing crash on right-click if no item is selected
32239           - Fixed Text property, now uses contents of textbox
32240           - Fixed SelectedText property, now just returns the text part that
32241             is selected in the text box
32242
32243 2005-03-18  Jackson Harper  <jackson@ximian.com>
32244
32245         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
32246         rect, make sure to de-adjust the interior rect after drawing the
32247         tab text.
32248
32249 2005-03-18  Peter Bartok  <pbartok@novell.com>
32250
32251         * MenuAPI.cs: Remove menu *before* executing selected action to
32252           prevent the menu from 'hanging around'
32253           
32254 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
32255
32256         * XplatUIOSX.cs: Implemented WorkingArea property
32257
32258 2005-03-17  Peter Bartok  <pbartok@novell.com>
32259
32260         * XplatUIX11.cs: Fixed menu coord calculations
32261         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
32262           for calculating offsets
32263
32264 2005-03-17  Peter Bartok  <pbartok@novell.com>
32265
32266         * Hwnd.cs: Do not consider menu presence for default client
32267           rectangle location/size
32268         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
32269           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
32270           translation functions
32271         * FileDialog.cs: Fixed (what I presume is a) typo
32272
32273 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
32274
32275         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
32276           X access (avoids X-Async errors)
32277
32278 2005-03-16  Jackson Harper  <jackson@ximian.com>
32279
32280         * TabControl.cs: Raise the SelectedIndexChanged event.
32281
32282 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
32283
32284         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
32285           - Removed vertical ToolBar and replaced it with a custom panel
32286             (desktop and home button already work)
32287           - Added Help button (some controls get resized or relocated then)
32288           - Draw correct text depending on Open or Save.
32289           - Fixed some typos...
32290
32291 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
32292
32293         * ScrollBar.cs:
32294           - Only change Maximum and Minimum when need it (bug fix)
32295
32296 2005-03-15  Peter Bartok  <pbartok@novell.com>
32297
32298         * Form.cs: Use Handle for icon, to trigger creation if
32299           the window does not yet exist
32300         * Control.cs:
32301           - CanSelect: Slight performance improvement
32302           - Focus(): Preventing possible recursion
32303           - Invalidate(): Removed ControlStyle based clear flag setting
32304           - WM_PAINT: fixed logic for calling OnPaintBackground
32305           - WM_ERASEBKGND: Fixed logic, added call to new driver method
32306             EraseWindowBackground if the control doesn't paint background
32307         * XplatUIWin32.cs:
32308           - Moved EraseWindowBackground() method to internal methods
32309           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
32310             is sent via SendMessage on BeginPaint call on Win32
32311         * XplatUIX11.cs:
32312           - Added EraseWindowBackground() method
32313           - No longer sends WM_ERASEBKGND on .Expose, but on call to
32314             PaintEventStart, which more closely matches Win32 behaviour
32315           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
32316           - Fixed SetFocus() to properly deal with client and whole windows
32317         * Hwnd.cs: Added ErasePending property
32318         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
32319         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
32320
32321 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
32322
32323         * XplatUIOSX.cs:
32324           - Fix hard loop when timers exist.
32325           - Fix bugs with middle and right click for 3 button mice.
32326
32327 2005-03-11  Peter Bartok  <pbartok@novell.com>
32328
32329         * XplatUIX11.cs:
32330           - get_WorkingArea: Need to call X directly, GetWindowPos only
32331             returns cached data now
32332           - Added sanity check to GetWindowPos hwnd usage
32333
32334 2005-03-11  Jackson Harper  <jackson@ximian.com>
32335
32336         * BindingManagerBase.cs: This method isn't used anymore as
32337         PullData now updates the data in the control.
32338
32339 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
32340
32341         * Form.cs: fixes menu drawing on X11
32342         * MenuAPI.cs:  fixes menu drawing on X11
32343
32344 2005-03-11  Peter Bartok  <pbartok@novell.com>
32345
32346         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
32347           from Jonathan Gilbert; should fix bug #73606
32348         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
32349           in Screen coordinates. Thanks, Jordi.
32350         * Form.cs: Added missing attribute
32351
32352 2005-03-11  Peter Bartok  <pbartok@novell.com>
32353
32354         * Form.cs:
32355           - Rudimentary Mdi support
32356           - Removed outdated FormParent code
32357           - Implemented lots of missing properties and methods, still missing
32358             transparency support
32359           - Added missing attributes
32360           - Implemented support for MaximumBounds
32361           - Added firing of various events
32362         * XplatUI.cs: Added SetIcon() method
32363         * XplatUIDriver.cs: Added SetIcon() abstract
32364         * XplatUIOSX.cs: Stubbed out SetIcon() method
32365         * XplatUIX11.cs:
32366           - Implemented SetIcon() support
32367           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
32368           - Switched to unix line endings
32369         * XplatUIWin32.cs:
32370           - Made POINT internal so for can access it as part of MINMAX
32371           - Implemented SetIcon() support
32372           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
32373             native Mdi support again, might have to go managed)
32374         * Control.cs: Now fires the StyleChanged event
32375         * MdiClient.cs: Added; still mostly empty
32376
32377 2005-03-10  Peter Bartok  <pbartok@novell.com>
32378
32379         * SaveFileDialog.cs: Added emtpy file
32380
32381 2005-03-08  Peter Bartok  <pbartok@novell.com>
32382
32383         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
32384           in turn triggers OnCreateContro) when creating a handle for the
32385           first time.
32386         * TextControl.cs: Fixed endless loop in certain cases when
32387           replacing the current selection
32388
32389 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
32390
32391         * ScrollBar.cs:
32392           - Honors NewValue changes in Scroll events allowing apps to change it
32393           - Adds First and Last Scroll events
32394           - Fixes Thumb events
32395
32396 2005-03-07  Peter Bartok  <pbartok@novell.com>
32397
32398         * Hwnd.cs: Added DefaultClientRectangle property
32399         * XplatUI.cs: Now using the X11 driver Where() method, which provides
32400           more detailed debug information
32401         * XplatUIX11.cs:
32402           - Fixed size-change feedback loop, where we would pull an old size
32403             off the queue and mistakenly change our window's size to an
32404             earlier value
32405           - Now compressing ConfigureNotify events, to reduce looping and
32406             redraw issues
32407         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
32408           is called
32409
32410 2005-03-07  Jackson Harper  <jackson@ximian.com>
32411
32412         * Binding.cs: Push data pushes from data -> property. Check if the
32413         property is readonly when attempting to set it.
32414
32415 2005-03-07  Jackson Harper  <jackson@ximian.com>
32416
32417         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
32418         instead of IsSubclassOf. Pulling data now sets the value on the
32419         control.
32420         * PropertyManager.cs:
32421         * CurrencyManager.cs: Just need to pull data when updating now,
32422         because PullData will set the value on the control.
32423
32424 2005-03-04  Jackson Harper  <jackson@ximian.com>
32425
32426         * Binding.cs: Implement data type parsing and converting on pulled
32427         data. TODO: Are there more ways the data can be converted?
32428
32429 2005-03-04  Jackson Harper  <jackson@ximian.com>
32430
32431         * Binding.cs: Support <Property>IsNull checks. Also bind to the
32432         controls Validating method so we can repull the data when the
32433         control loses focus.
32434
32435 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
32436
32437         * ColumnHeader.cs:
32438           - Fixes null string format
32439           
32440         * ListView.cs:
32441           - Adds enum type checks
32442           - Fixes redrawing and recalc need after changing some properties
32443           - Fixes on focus_item set after the event
32444           - Fixes adding columns after the control has been created
32445           
32446         * ThemeWin32Classic.cs:
32447           - Fixes CheckBox focus rectangle
32448           - Fixes ColumnHeader drawing
32449
32450
32451 2005-03-03  Jackson Harper  <jackson@ximian.com>
32452
32453         * Binding.cs: Bind to <Property>Changed events so we can detect
32454         when properties are changed and update the data.
32455
32456 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
32457
32458         * ImageList.cs:
32459           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
32460           - Fixes ImageList constructor with ImageList container
32461           - Fixes image scaling (wrong parameters at DrawImage)
32462
32463 2005-02-02  Jackson Harper  <jackson@ximian.com>
32464
32465         * Binding.cs: Make property searches case-insensitive. Eliminate
32466         some duplicated code.
32467
32468 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
32469
32470         * ComboBox.cs:
32471                 - Handle focus event
32472                 - Fix scrollbar events
32473                 - Discard highlighted item if remove it
32474                 - Fixes SelectedItem with strings
32475
32476 2005-03-01  Peter Bartok  <pbartok@novell.com>
32477
32478         * Control.cs:
32479           - Fixed Visible property, now follows (once again) parent chain
32480             to return false if any control in the chain is visible=false
32481           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
32482           - Fixed several places where is_visible instead of Visible was used
32483           - Implemented FIXME related to focus selection when setting focused
32484             control to be invisible
32485
32486         * XplatUIWin32.cs: Now using proper method to find out if window is
32487           visible. Thanks to Jordi for pointing it out
32488
32489 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
32490
32491         * ComboBox.cs: show/hide scrollbar instead of creating it
32492
32493 2005-02-27  Jackson Harper  <jackson@ximian.com>
32494
32495         * CurrencyManager.cs: Add PositionChanged stuff.
32496
32497 2005-02-27  Peter Bartok  <pbartok@novell.com>
32498
32499         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
32500         * XplatUIOSX.cs: Added GetMenuOrigin() stub
32501         * XplatUIWin32.cs: Implemented GetMenuOrigin()
32502         * XplatUIX11.cs:
32503           - Implemented GetMenuDC()
32504           - Implemented GetMenuOrigin()
32505           - Implemented ReleaseMenuDC()
32506           - Implemented generation of WM_NCPAINT message
32507           - Implemented generation and handling of WM_NCCALCSIZE message
32508         * Form.cs: Added debug helper message for Jordi's menu work
32509         * Hwnd.cs:
32510           - Modified ClientRect property; added setter, fixed getter to handle
32511             setting of ClientRect
32512           - Added MenuOrigin property
32513
32514 2005-02-26  Peter Bartok  <pbartok@novell.com>
32515
32516         * XplatUIX11.cs:
32517           - Destroys the caret if a window that's being destroyed contains it
32518           - Ignores expose events coming from the X11 queue for windows that
32519             already are destroyed
32520           - Now uses the proper variable for handling DestroyNotify, before we
32521             marked the wrong window as destroyed
32522           - Improved/added some debug output
32523
32524 2005-02-26  Peter Bartok  <pbartok@novell.com>
32525
32526         * X11Keyboard.cs: Fixes to work on 64bit systems
32527
32528 2005-02-26  Peter Bartok  <pbartok@novell.com>
32529
32530         * Control.cs:
32531           - Now calling OnHandleDestroyed from DestroyHandle()
32532             instead of Dispose()
32533           - Removed bogus call to controls.Remove() from DestroyHandle()
32534
32535 2005-02-26  Peter Bartok  <pbartok@novell.com>
32536
32537         * Control.cs: Properly destroy child windows when our handle is
32538           destroyed
32539
32540 2005-02-25  Peter Bartok  <pbartok@novell.com>
32541
32542         * XplatUI.cs:
32543           - Added 'DriverDebug' define to allow tracing XplatUI API calls
32544           - Alphabetized Static Methods and Subclasses
32545
32546         * XplatUIX11.cs:
32547           - Added XException class to allow custom handling of X11 exceptions
32548           - Created custom X11 error handler, tied into XException class
32549           - Added support for MONO_XEXCEPTIONS env var to allow the user
32550             to either throw an exception on X errors or continue running
32551             after displaying the error
32552           - Added handling of DestroyNotify message
32553           - Added handler for CreateNotify message (still disabled)
32554           - Improved (tried to at least) Where method to provide file and lineno
32555         * X11Structs.cs:
32556           - Added XErrorHandler delegate
32557           - Added XRequest enumeration (to suppor translation of errors)
32558
32559 2005-02-25  Jackson Harper  <jackson@ximian.com>
32560
32561         * PropertyManager.cs: Implement editing features
32562         * CurrencyManager.cs:
32563         * Binding.cs: First attempt at UpdateIsBinding
32564         * BindingManagerBase.cs: Call UpdateIsBinding before
32565         pushing/pulling data.
32566
32567 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
32568
32569         * MenuAPI.cs: Respect disabled items
32570         * ThemeWin32Classic.cs
32571                 - Caches ImageAttributes creation for DrawImageDisabled
32572                 - Fixes vertical menu line drawing
32573                 - Draws disabled arrows in disable menu items
32574
32575 2005-02-24  Peter Bartok  <pbartok@novell.com>
32576
32577         * Hwnd.cs:
32578           - Added UserData property to allow associating arbitrary objects
32579             with the handle
32580           - Fixed leak; now removing Hwnd references from static windows array
32581         * XplatUIWin32.cs:
32582           - Fixed Graphics leak in PaintEventEnd
32583           - Removed usage of HandleData, switched over to Hwnd class
32584         * HandleData.cs: Removed, obsoleted by Hwnd.cs
32585
32586 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
32587
32588         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
32589         * ScrollBar.cs: Fixes bug
32590         * TrackBar.cs: removes death code, clipping, mimize refreshes,
32591          keyboard navigation enhancements
32592
32593 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
32594
32595         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
32596         * GroupBox.cs: Add control styles
32597         * Label.cs: Add control styles
32598         * UpDownBase.cs: Add control styles
32599         * ListBox.cs: Add control styles
32600         * XplatUIWin32.cs: Fixes wrong parameter order
32601
32602
32603 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
32604
32605         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
32606
32607 2005-02-23  Jackson Harper  <jackson@ximian.com>
32608
32609         * PropertyManager.cs: Implement property binding. This doesn't
32610         seem to work yet though as (I think) there are some bugs in
32611         System.ComponentModel.PropertyDescriptor.
32612         * BindingContext.cs: Use new PropertyManager constructor.
32613
32614 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
32615
32616         * ProgressBar.cs: use clip region in ProgressBar
32617         * ThemeWin32Classic.cs: use clip region in ProgressBar
32618
32619 2004-02-22  Jackson Harper  <jackson@ximian.com>
32620
32621         * BindingsCollection.cs: Remove some debug code.
32622
32623 2005-02-22  Jackson Harper  <jackson@ximian.com>
32624
32625         * BindingContext.cs:
32626         * ControlBindingsCollection.cs:
32627         * CurrencyManager.cs:
32628         * Binding.cs:
32629         * BindingManagerBase.cs: Initial implementation
32630         * BindingsCollection.cs: Add an internal contains method that the
32631         BindingManagerBase uses to ensure bindings aren't added twice to
32632         the collection.
32633         * PropertyManager.cs: Stubbed out.
32634         * Control.cs:
32635         * ContainerControl.cs: Hook up databinding
32636         
32637 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
32638
32639         * XplatUIOSX.cs:
32640           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
32641           Fixed Invalidate/Update chain.
32642           Fixed tons of other minor bugs (this is almost a complete rewrite).
32643
32644 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
32645
32646         * ComboBox.cs: do subcontrol creation when the control is created
32647
32648 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
32649
32650         * Label.cs: fixes image drawing (image and imagelist)
32651         * ThemeWin32Classic.cs: cache brushes
32652         
32653 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
32654
32655         * Form.cs: Move menu drawing code to Theme class
32656         * ComboBox.cs: Move ComboBox drawing code to Theme class
32657         * MenuItem.cs: Move menu drawing code to Theme class
32658         * MenuAPI.cs: Move menu drawing code to Theme class
32659         * ThemeWin32Classic.cs: New methods
32660         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
32661         * ListBox.cs: Move Listbox drawing code to Theme class
32662         * Theme.cs: New methods
32663
32664 2005-02-20  Peter Bartok  <pbartok@novell.com>
32665
32666         * Control.cs:
32667           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
32668             only process mnemonics on those)
32669           - Fixed event sequence for key handling; first calling
32670             ProcessKeyEventArgs now
32671         * TextBoxBase.cs:
32672           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
32673             for processing non-character keys
32674           - Fixed WM_CHAR to generate proper event sequence before processing
32675         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
32676           generation
32677
32678 2005-02-19  Peter Bartok  <pbartok@novell.com>
32679
32680         * UserControl.cs: Added TextChanged event; added attributes
32681         * SizeGrip.cs: Implemented resizing and optional display of grip
32682         * Form.cs: Fixed attribute
32683         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
32684           Changed meaning of ScrollWindow bool argument; instead of the
32685           clear attribute (which will be true usually anyway), it gives the
32686           option of moving child controls as well.
32687         * XplatUIX11.cs:
32688           - Changed to match new ScrollWindow argument
32689           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
32690             now handles the implicit parent window a WM puts around us
32691         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
32692           to work)
32693         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
32694         * TreeView.cs: Adjusted to new ScrollWindow arguments
32695
32696 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
32697
32698         * Form.cs: Menu integration with non-client area
32699         * MenuItem.cs: Menu integration with non-client area
32700         * MenuAPI.cs: Menu integration with non-client area
32701
32702 2005-02-18  Peter Bartok  <pbartok@novell.com>
32703
32704         * MethodInvoker.cs: Added
32705         * MdiLayout.cs: Added
32706         * SendKeys.cs: Started implementation
32707         * ErrorIconAlignment.cs: Added
32708
32709 2005-02-18  Peter Bartok  <pbartok@novell.com>
32710
32711         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
32712         * Form.cs: Added handling for Menu-related Non-client messages
32713
32714 2005-02-17  Peter Bartok  <pbartok@novell.com>
32715
32716         * UpDownBase.cs: Fixed typo, compilation errors
32717         * DomainUpDown.cs: Fixed attribute value
32718
32719 2005-02-16  Miguel de Icaza  <miguel@novell.com>
32720
32721         * UpDownBase.cs: Attach entry events.
32722         Propagate events.
32723         Add ForeColor property, Focused, InterceptArrowKeys (interception
32724         does not work yet).
32725
32726 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
32727
32728         * Form.cs:
32729                 - Redraw non client are on Setmenu
32730                 - Calc proper menu starting point
32731
32732 2005-02-17  Peter Bartok  <pbartok@novell.com>
32733
32734         * Application.cs: Fixed message_filter check
32735
32736 2005-02-17  Peter Bartok  <pbartok@novell.com>
32737
32738         * Application.cs: Now calls registered message filters
32739         * DockStyle.cs: Fixed attribute
32740         * Form.cs: Fixed attribute
32741         * Menu.cs: Fixed attribute
32742         * ToolTip.cs: Fixed attribute
32743         * TreeNode.cs: Added missing attributes and arranged in regions
32744         * PropertyGrid.cs: Fixed signatures
32745         * TreeNodeCollection.cs: Added attributes
32746         * Splitter.cs: Added missing attributes; arranged into regions
32747         * TabPage.cs: Added missing attributes; arranged into regions
32748         * TextBoxBase.cs: Added missing attributes
32749         * TextBox.cs: Added missing attributes
32750         * ArrangeDirection.cs: Added missing attributes
32751         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
32752         * ToolBarButton.cs: Fixed attributes
32753         * AnchorStyles.cs: Fixed attribute
32754         * TrackBar.cs: Fixed attributes
32755         * TabControl.cs: Added missing attributes and arranged into regions
32756         * ToolBar.cs: Fixed attribute
32757         * StatusBar.cs: Fixed signature, organized into regions and added
32758           attributes
32759         * StatusBarPanel.cs: Fixed attributes
32760         * ContentsResizedEventArgs.cs: Implemented
32761         * ContentsResizedEventHandler.cs: Implemented
32762         * DateBoldEventArgs.cs: Implemented
32763         * DateBoldEventHandler.cs: Implemented
32764         * UpDownEventArgs.cs: Implemented
32765         * UpDownEventHandler.cs: Implemented
32766         
32767 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
32768
32769         * Form.cs: first Menu NC refactoring
32770         * MenuAPI.cs: first Menu NC refactoring
32771         
32772 2005-02-16  Peter Bartok  <pbartok@novell.com>
32773
32774         * ImeMode.cs: Added missing attributes
32775         * Menu.cs: Fixed attribute
32776         * GroupBox.cs: Fixed attribute
32777         * Label.cs: Fixed attribute
32778         * ColorDialog.cs (RunDialog): Removed TODO attribute
32779         * ComboBox.cs: Fixed attributes
32780         * ListControl.cs: Added missing attributes
32781         * PropertyGrid.cs: Fixed attributes
32782         * Control.cs: Fixed attributes
32783         * ListViewItem.cs: Added TypeConverter attribute
32784         * NotifyIcon.cs: Fixed attributes
32785         * ListView.cs: Fixed attributes
32786         * ButtonBase.cs: Fixed attribute
32787         * ImageList.cs: Added missing attributes
32788         * ContainerControl.cs: Fixed signature
32789         * CheckedListBox.cs: Fixed attribute; added missing attributes
32790         * Panel.cs: Fixed attributes
32791         * PropertyTabChangedEventArgs.cs: Added missing attribute
32792         * PropertyValueChangedEventArgs.cs: Added missing attribute
32793         * Binding.cs: Fixed attribute
32794         * ListViewItemConverter: Implemented ListViewSubItemConverter class
32795         * ListBox.cs: Fixed attribute; added missing attributes;
32796         * ScrollableControl.cs: Added missing attributes
32797         * PictureBox.cs: Added missing attributes; implemented missing property
32798         * DateTimePicker.cs: Added missing attributes
32799         * Theme.cs (ToolWindowCaptionHeight): Fixed type
32800         * MonthCalendar.cs: Fixed attributes
32801         * StatusBarPanel.cs: Added missing attributes
32802         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
32803
32804 2005-02-16  Peter Bartok  <pbartok@novell.com>
32805
32806         * TextBoxBase.cs: The previous method to enforce height yet remember
32807           the requested high was less than ideal, this is an attempt to do
32808           it better.
32809         * Control.cs: Added comment about possible problem
32810         * Copyright: Updated format
32811         * GridItemType.cs: Fixed swapped values
32812
32813 2005-02-15  Jackson Harper  <jackson@ximian.com>
32814
32815         * BaseCollection.cs: Use property so we never access an
32816         uninitialized list. Also initialize the list in the property.
32817
32818 2005-02-15  Peter Bartok  <pbartok@novell.com>
32819
32820         * GroupBox.cs (ProcessMnemonic): Implemented
32821         * Label.cs (ProcessMnemonic): Implemented
32822         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
32823           hotkeys
32824
32825 2005-02-15  Peter Bartok  <pbartok@novell.com>
32826
32827         * RadioButton.cs (ProcessMnemonic): Implemented
32828         * CheckBox.cs (ProcessMnemonic): Implemented
32829         * Control.cs:
32830           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
32831             handling
32832           - Added internal method to allow calling ProcessMnemonic from other
32833             controls
32834         * ContainerControl.cs:
32835           - Started support for handling validation chain handling
32836           - Implemented ProcessMnemonic support
32837           - Added Select() call to Active, to make sure the active control
32838             receives focus
32839         * Form.cs: Setting toplevel flag for Forms (this was lost in the
32840           FormParent rewrite)
32841         * ThemeWin32Classic.cs:
32842           - DrawCheckBox(): Fixed stringformat to show hotkeys
32843           - DrawRadioButton(): Fixed stringformat to show hotkeys
32844         * CommonDialog.cs: Removed WndProc override, not needed
32845
32846 2005-02-14  Peter Bartok  <pbartok@novell.com>
32847
32848         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
32849           missed those in the rewrite
32850
32851 2005-02-14  Miguel de Icaza  <miguel@novell.com>
32852
32853         * NumericUpDown.cs (Increment, ToString): Add.
32854         (DecimalPlaces): implement.
32855         
32856         Add attributes.
32857         
32858         * UpDownBase.cs: Add the designer attributes.
32859
32860 2005-02-13  Peter Bartok  <pbartok@novell.com>
32861
32862         * Panel.cs: Removed border_style, now in Control
32863         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
32864           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
32865
32866 2005-02-13  Peter Bartok  <pbartok@novell.com>
32867
32868         * MouseButtons.cs: Added missing attributes
32869         * XplatUIStructs.cs: Added enumeration for title styles
32870         * LeftRightAlignment.cs: Added missing attributes
32871         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
32872           it compatible with Graphics.FromHwnd()
32873         * SelectedGridItemChangedEventArgs.cs: Fixed property type
32874         * Keys.cs: Added missing attributes
32875         * SelectionRange.cs: Added missing attributes
32876         * SelectionRangeConverter.cs: Added
32877         * XplatUI.cs:
32878           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
32879             ReleaseMenuDC methods
32880           - Renamed ReleaseWindow to UngrabWindow
32881           - Added proper startup notice to allow version identification
32882         * Form.cs:
32883           - Added missing attributes
32884           - Removed FormParent concept
32885         * Label.cs: Removed border_style field, now in Control
32886         * RadioButton.cs: Now properly selects RadioButton when focus is
32887           received
32888         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
32889         * Control.cs:
32890           - Added missing attributes
32891           - Added borderstyle handling
32892           - Removed FormParent concept support
32893           - Fixed calls to XplatUI to match changed APIs
32894           - Fixed bug that would case us to use disposed Graphics objects
32895           - Removed unneeded internal methods
32896           - PerformLayout(): Fixed to handle DockStyle.Fill properly
32897           - SelectNextControl(): Fixed to properly check common parents
32898         * TextBoxBase.cs: Removed border_style field (now in Control)
32899         * MessageBox.cs:
32900           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
32901             fixed calculations for form size
32902           - Added support for localized strings and icons
32903           - Improved form size calculations, added border
32904         * ListView.cs: Removed border_style field (now in Control)
32905         * X11Structs.cs: Moved several structs from X11 driver here
32906         * X11Keyboard.cs: Changed debug message
32907         * Application.cs: Removed FormParent concept support
32908         * CommonDialog.cs:
32909           - Resetting end_modal flag
32910           - Removed FormParent concept support
32911         * NativeWindow.cs: Removed FormParent concept support
32912         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
32913           Client area and Non-Client whole window to allow support for WM_NC
32914           messages
32915         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
32916           prevent using it until it supports Hwnd as per Geoff Norton's request
32917         * ToolBar.cs: Fixed drawing, was not doing proper drawing
32918         * PictureBox.cs: Removed border_style field, now in Control
32919         * XplatUIWin32.cs: Added new driver methods
32920
32921 2005-02-12  Peter Bartok  <pbartok@novell.com>
32922
32923         * OpacityConverter.cs: Implemented
32924         * Hwnd.cs: Internal class to support drivers that need to emulate
32925           client area/non-client area window behaviour
32926
32927 2005-02-11  Peter Bartok  <pbartok@novell.com>
32928
32929         * KeysConverter.cs: Implemented
32930
32931 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
32932
32933         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
32934         * LinkLabel: Added missing attributes
32935         * MainMenu.cs: fixes ToString
32936         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
32937         * ListBox.cs: fixes event position
32938         * TrackBar.cs: adds missing attributes and events
32939         
32940 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
32941
32942         * MenuItem.cs: Use SystemInformation and bug fixes
32943         * MenuAPI.cs: Use SystemInformation and bug fixes
32944
32945 2005-02-09  Jackson Harper  <jackson@ximian.com>
32946
32947         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
32948         their keystate otherwise things like VK_MENU get stuck "on".
32949
32950 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
32951
32952         * ListBox.cs: Fixes AddRange bug
32953         
32954 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
32955
32956         * ProgressBar.cs
32957                 - Add missing attributes
32958                 - Add missing method
32959                 
32960         * CheckedListBox.cs: Added missing attributes
32961                 - Add missing attributes
32962                 - Remove extra method
32963         
32964         * ComboBox.cs: Added missing attributes
32965         * VScrollBar.cs: Added missing attributes
32966         * ScrollBar.cs:  Added missing attributes
32967         * ListBox.cs: Fixes signature, add missing consts
32968         * LinkArea.cs:   Added missing attributes
32969         
32970
32971 2005-02-08  Peter Bartok  <pbartok@novell.com>
32972
32973         * Menu.cs: Added missing attributes
32974         * MainMenu.cs: Added missing attributes
32975         * GroupBox.cs: Added missing attributes
32976         * Label.cs: Added missing attributes
32977         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
32978         * ColorDialog.cs:
32979           - Added Instance and Options properties
32980           - Added missing attributes
32981         * Cursor.cs: Made Serializable
32982         * NotifyIcon: Added missing attributes
32983         * MenuItem.cs: Added missing attributes
32984         * TextBoxBase.cs: Implemented AppendText() and Select() methods
32985         * Panel.cs: Added Missing attributes
32986         * MonthCalendar.cs: Fixed CreateParams
32987
32988 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
32989         
32990         * LinkLabel.cs:
32991                 - Fixes signature
32992                 - Fixes issues with links
32993                 - Adds the class attributes
32994
32995 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
32996         
32997         * ComboBox.cs:
32998                 - Fixes button when no items available in dropdown
32999                 - Fixes repainting problems
33000                 - Adds the class attributes
33001                 
33002 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
33003
33004         * XplatUIOSX.cs: Detect the menu bar and title bar height from
33005         the current theme.  Cache these on startup.
33006
33007 2005-02-07  Jackson Harper  <jackson@ximian.com>
33008
33009         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
33010         the scrollbar buttons when they are depressed.
33011
33012 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
33013
33014         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
33015         Get the display size from the main displayid.  We currently dont
33016         support multiple display configurations.
33017
33018 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
33019
33020         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
33021
33022 2005-02-07  Miguel de Icaza  <miguel@novell.com>
33023
33024         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
33025
33026 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
33027
33028         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
33029
33030 2005-02-04  Jackson Harper  <jackson@ximian.com>
33031
33032         * ThemeWin32Classic.cs: Respect the clipping rect when
33033         drawing. Only fill the intersection of clips and rects so there
33034         isn't a lot of large fills.
33035         * ScrollBar.cs: Pass the correct clipping rect to the theme
33036         engine. Remove some debug code.
33037
33038 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
33039         
33040         * DateTimePicker.cs:
33041                 - Fixed crash on DateTime.Parse, use Constructor instead
33042
33043 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
33044         
33045         * MenuItem.cs:
33046         * MenuAPI.cs:
33047                 - Owner draw support (MeasureItem and DrawItem)
33048
33049 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
33050         
33051         *  Menu.cs:
33052                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
33053                 - Fixes MenuItems.Add range
33054         * MenuItem.cs:
33055                 - MergeMenu and Clone and CloneMenu functions
33056
33057 2005-02-03  Jackson Harper  <jackson@ximian.com>
33058
33059         * ScrollBar.cs: Make abstract
33060         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
33061         is abstract.
33062
33063 2005-02-03  Jackson Harper  <jackson@ximian.com>
33064
33065         * ScrollBar.cs: First part of my scrollbar fixups. This removes
33066         all the unneeded refreshes and uses invalidates with properly
33067         computed rects.
33068
33069 2005-02-03  Peter Bartok  <pbartok@novell.com>
33070
33071         * ComponentModel.cs: Added
33072         * IDataGridEditingService.cs: Added
33073         * Timer.cs: Added missing attributes
33074         * ToolTip.cs: Added missing attributes
33075
33076 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
33077
33078         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
33079
33080 2005-02-03  Peter Bartok  <pbartok@novell.com>
33081
33082         * ListBox.cs: Added missing attributes
33083
33084 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
33085         
33086         * ListBox.cs:
33087                 - Fixes font height after font change
33088                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
33089                 
33090 2005-02-02  Peter Bartok  <pbartok@novell.com>
33091
33092         * HandleData.cs: Introduced static methods to allow class
33093           to be more self-contained and track it's own HandleData objects
33094         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
33095           HandleData to use new static methods
33096
33097 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
33098
33099         * Combobox.cs:
33100                 - Fixes default size and PreferredHeight
33101                 - Missing events
33102                 - ObjectCollection.Insert implementation
33103                 
33104         * ListControl.cs
33105                 - Fixes signature
33106         * ListBox.cs:
33107                 - Several fixes
33108                 - ObjectCollection.Insert implementation
33109                 - No selection after clean
33110                 - Small fixes
33111
33112 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
33113
33114         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
33115
33116 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
33117
33118         * Combobox.cs:
33119                 - Caches ItemHeight calculation for OwnerDrawVariable
33120                 - Handles dropdown properly
33121                 - Fixes several minor bugs
33122
33123 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
33124
33125         * ListBox.cs:
33126                 - Fixes 71946 and 71950
33127                 - Fixes changing Multicolumn on the fly
33128                 - Fixes keyboard navigation on Multicolumn listboxes
33129
33130 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
33131         
33132         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
33133         crash reporter log.
33134
33135 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
33136
33137         * XplatUIOSX.cs: Allow applications to actually exit.
33138
33139 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
33140
33141         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
33142         their parent at creation time rather than lazily later.  Fixes a major
33143         regression we were experiencing.
33144
33145 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
33146
33147         * ThemeWin32Classic.cs: more date time picker painting fixes
33148         * DateTimePicker.cs: more monthcalendar drop down fixes
33149         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
33150
33151 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
33152
33153         * ScrollBar.cs:
33154                 - When moving the thumb going outside the control should stop the moving
33155                 - Adds the firing of missing events
33156                 - Fixes no button show if Size is not specified
33157                 - End / Home keys for keyboard navigation
33158
33159 2005-01-30  Peter Bartok  <pbartok@novell.com>
33160
33161         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
33162           sanity check to prevent theoretical loop
33163         * XplatUIWin32.cs (SetVisible): Removed debug output
33164         * XplatUIX11.cs (SystrayChange): Added sanity check
33165         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
33166         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
33167           behaviour, valid until the X11 client window rewrite is done
33168         * TextBox.cs (ctor): Setting proper default foreground and background
33169           colors
33170
33171 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
33172
33173         * Theme: Added DrawDateTimePicker to interface
33174         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
33175         * DateTimePicker.cs: Created (still needs keys and painting code)
33176         * DateTimePickerFormat.cs: added
33177         * MonthCalendar.cs: fixed CreateParams for popup window mode
33178           
33179 2005-01-29  Peter Bartok  <pbartok@novell.com>
33180
33181         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
33182           this should also the calculations for ligher/darker
33183         * Theme.cs: Fixed defaults for ScrollBar widths/heights
33184
33185 2005-01-29  Peter Bartok  <pbartok@novell.com>
33186
33187         * ArrangeDirection.cs: Added
33188         * ArrangeStartingPositon.cs: Added
33189         * SystemInformation.cs: Implemented
33190         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
33191           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
33192           used by SystemInformation class
33193         * X11Strucs.cs: Added XSizeHints structure
33194         * MenuAPI.cs:
33195           - Fixed CreateParams to make sure the menu window is always visible
33196           - TrackPopupMenu: Added check to make sure we don't draw the
33197             menu offscreen
33198
33199 2005-01-29  Peter Bartok  <pbartok@novell.com>
33200
33201         * HandleData.cs: Added method for altering invalid area
33202         * TextBoxBase.cs: Implemented TextLength
33203
33204 2005-01-28  Peter Bartok  <pbartok@novell.com>
33205
33206         * XplatUIX11.cs: Improvement over last patch, not sending
33207           the WM_PAINT directly anymore, instead we scroll any pending
33208           exposed areas and let the system pick out the WM_PAINT later
33209
33210 2005-01-28  Peter Bartok  <pbartok@novell.com>
33211
33212         * SWF.csproj: Deleted, no longer used. Instead,
33213           Managed.Windows.Forms/SWF.csproj should be used
33214         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
33215           directly, to avoid a potential race condition with the next
33216           scroll
33217
33218 2005-01-28  Peter Bartok  <pbartok@novell.com>
33219
33220         * XplatUI.cs: Made class internal
33221
33222 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
33223
33224         * CheckedListBox.cs:
33225                 - Draw focus
33226                 - Fixed Drawing
33227                 - Missing methods and events
33228
33229 2005-01-27  Peter Bartok  <pbartok@novell.com>
33230
33231         * Application.cs (Run): Don't use form if we don't have one
33232
33233 2005-01-27  Peter Bartok  <pbartok@novell.com>
33234
33235         * TextBoxBase.cs (get_Lines): Fixed index off by one error
33236
33237 2005-01-27  Peter Bartok  <pbartok@novell.com>
33238
33239         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
33240         * GridItem.cs: Added; Patch by Jonathan S. Chambers
33241         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
33242         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
33243         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
33244         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
33245         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
33246         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
33247         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
33248         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
33249         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
33250         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
33251
33252 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
33253
33254         * Combobox.cs:
33255                 - Draw focus on Simple Combobox
33256                 - Fixes drawing issues
33257                 - fixes 71834
33258
33259 2005-01-27  Peter Bartok  <pbartok@novell.com>
33260
33261         * Form.cs:
33262           - Place window in default location, instead of hardcoded 0/0
33263           - Send initial LocationChanged event
33264         * Control.cs:
33265           - UpdateBounds after creation to find out where the WM placed us
33266           - Make sure that if the ParentForm changes location the Form
33267             is notified
33268         * XplatUIX11.cs: XGetGeometry will not return the coords relative
33269             to the root, but to whatever the WM placed around us.
33270             Translate to root coordinates before returning toplevel
33271             coordinates
33272         * XplatUIWin32.cs: Removed debug output
33273         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
33274           flag to GetWindowPos, to allow translation of coordinates on X11
33275
33276 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
33277
33278         * ListBox.cs: connect LostFocus Event
33279
33280 2005-01-27  Peter Bartok  <pbartok@novell.com>
33281
33282         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
33283           XplatUIX11.cs: Extended the Systray API
33284         * Form.cs: Removed debug output
33285         * Application.cs: Fixed focus assignment, always need to call
33286           XplatUI.Activate() since Form.Activate() has rules that may
33287           prevent activation
33288         * NotifyIcon.cs: Should be complete now
33289         * ToolTip.cs: Worked around possible timer bug
33290
33291 2005-01-27  Jackson Harper  <jackson@ximian.com>
33292
33293         * TabControl.cs:
33294         - Only invalidate the effected tabs when the
33295         selected index changes. This reduces drawing and gets rid of some
33296         flicker.
33297         - Only refresh if the tabs need to be shifted, otherwise only
33298         invalidate the slider button.
33299         - On windows the tabs are not filled to right if the slider is
33300         visible.
33301         
33302 2005-01-27  Jackson Harper  <jackson@ximian.com>
33303
33304         * TabControl.cs: Only refresh on mouseup if we are showing the
33305         slider. Also only invalidate the button whose state has changed.
33306
33307 2005-01-26  Peter Bartok  <pbartok@novell.com>
33308
33309         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
33310         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
33311           and SystrayRemove() methods
33312         * XplatUIOSX.cs: Stubbed Systray methods
33313         * XplatUIX11.cs:
33314           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
33315             methods
33316           - Fixed broken XChangeProperty calls (marshalling messed up things)
33317         * X11Structs.cs: Added enums and structs required for Size hinting
33318         * NotifyIcon.cs: Added & implemented
33319
33320 2005-01-26  Jackson Harper  <jackson@ximian.com>
33321
33322         * TabControl.cs: Space vertically layed out tabs properly.
33323
33324 2005-01-26  Peter Bartok  <pbartok@novell.com>
33325
33326         * Form.cs (CreateClientParams): Always set the location to 0,0
33327           since we're a child window.
33328
33329         * Control.cs (SetVisibleCore): Always explicitly setting the location
33330           of a toplevel window, apparently X11 doesn't like to move windows
33331           while they're not mapped.
33332
33333 2005-01-26  Jackson Harper  <jackson@ximian.com>
33334
33335         * TabControl.cs: Implement FillToRight size mode with vertically
33336         rendered tabs.
33337
33338 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
33339
33340         * ControlPaint.cs, ThemeWin32Classic.cs
33341                 - Fixes DrawFocusRectangle
33342
33343 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
33344
33345         * MenuAPI.cs:
33346                 - MenuBar tracking only starts when item is first clicked
33347                 - Fixes menu hidding for multiple subitems
33348                 - Unselect item in MenuBar when item Executed
33349                 - Fixes bug 71495
33350
33351 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
33352
33353         * ListControl.cs:
33354                 - IsInputKey for ListBox
33355         * ListBox.cs:
33356                 - Focus item
33357                 - Shift and Control item selection
33358                 - Implement SelectionMode.MultiExtended
33359                 - Fixes RightToLeft
33360         * ComboBox.cs:
33361                 - IsInputKey implemented
33362                 - Do not generate OnTextChangedEdit on internal txt changes
33363                 
33364 2005-01-23  Peter Bartok  <pbartok@novell.com>
33365
33366         * AccessibleObject.cs: Partially implemented Select()
33367         * MonthCalendar.cs: Added missing attributes and events
33368         * Form.cs: Fixed CreateParams behaviour, now controls derived from
33369           form can properly override CreateParams.
33370         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
33371           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
33372           Control performs Invalidate & Update
33373         * NativeWindow (CreateHandle): Added special handling for Form
33374           and Form.FormParent classes to allow overriding of From.CreateParams
33375         * Control.cs:
33376           - ControlNativeWindow: Renamed 'control' variable to more intuitive
33377             name 'owner'
33378           - ControlNativeWindow: Added Owner property
33379           - Removed usage of Refresh() on property changes, changed into
33380             Invalidate(), we need to wait until the queue is processed for
33381             updates, direct calls might cause problems if not all vars for
33382             Paint are initialized
33383           - Added call to UpdateStyles() when creating the window, to set any
33384             styles that CreateWindow might have ignored.
33385           - Added support for Form CreateParent overrides to UpdateStyles()
33386         * MessageBox.cs: Removed no longer needed FormParent override stuff,
33387           CreateParams are now properly overridable
33388         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
33389           CreateParams are now properly overridable
33390
33391 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
33392
33393         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
33394         OnTextBoxChanged.
33395
33396         Capture LostFocus and OnTextBoxChanged.  The later introduces a
33397         recursive invocation that I have not figured out yet.
33398
33399         Reset the timer when not using (it was accumulating).
33400
33401
33402         (OnTextBoxChanged): Set UserEdit to true here to track whether the
33403         user has made changes that require validation.
33404
33405         Reset changing to avoid loops.
33406
33407 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
33408
33409         * NumericUpDown.cs: Display value at startup.
33410
33411         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
33412         ValidateEditText.
33413
33414         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
33415         filled in.  Added some basic parsing of text.
33416
33417         Still missing the OnXXX method overrides, and figuring out the
33418         events that must be emitted.
33419
33420         * UpDownBase.cs: Handle UserEdit on the Text property.
33421         
33422 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
33423
33424         * ComboBox.cs:
33425           - Fixes IntegralHeight
33426           - ToString method
33427
33428 2005-01-21  Jackson Harper  <jackson@ximian.com>
33429
33430         * TabControl.cs: Set the SelectedIndex property when SelectedTab
33431         is set so that the page visibility is updated and the tabs are
33432         sized correctly.
33433
33434 2005-01-21  Jackson Harper  <jackson@ximian.com>
33435
33436         * TabControl.cs: Use cliping rectangle for blitting. Give the
33437         theme the clipping rect so we can do clipping while
33438         drawing. Remove some debug code.
33439
33440 2005-01-21  Jackson Harper  <jackson@ximian.com>
33441
33442         * TabPage.cs: Add a new method so tab pages can force the tab
33443         control to recalculate the tab page sizes.
33444         * TabControl.cs: UpdateOwner needs to make the tab control recalc
33445         sizes.
33446
33447 2005-01-20  Jackson Harper  <jackson@ximian.com>
33448
33449         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
33450
33451 2005-01-20  Jackson Harper  <jackson@ximian.com>
33452
33453         * TreeView.cs: Set the bounds for nodes properly. They were
33454         getting screwed up when checkboxes were not enabled, but images
33455         were.
33456
33457 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
33458
33459         * ListBox.cs:
33460                 - Owner draw support
33461                 - Fixes
33462                 
33463 2005-01-20  Jackson Harper  <jackson@ximian.com>
33464
33465         * XplatUIStructs.cs: More misc keys
33466         * X11Keyboard.cs: Ignore some control keys.
33467
33468 2005-01-20  Jackson Harper  <jackson@ximian.com>
33469
33470         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
33471         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
33472
33473 2005-01-19  Peter Bartok  <pbartok@novell.com>
33474
33475         * Control.cs: Un-selecting the control when it is loosing focus
33476
33477 2005-01-19  Jackson Harper  <jackson@ximian.com>
33478
33479         * TreeView.cs: Hook up to the text controls leave event so we can
33480         end editing when the users clicks outside the text box.
33481         
33482 2005-01-19  Jackson Harper  <jackson@ximian.com>
33483
33484         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
33485         get set in the conversion array.
33486
33487 2005-01-19  Peter Bartok  <pbartok@novell.com>
33488
33489         * Application.cs (ModalRun): Added a call to CreateControl to ensure
33490           focus is properly set
33491         * Button.cs:
33492           - Added missing attributes
33493           - removed styles, those are already set in the base class
33494         * ButtonBase.cs:
33495           - Added missing attributes
33496           - Added clip window styles
33497         * CheckBox.cs: Added missing attributes
33498         * CommonDialog.cs:
33499           - FormParentWindow.CreateParams: Added required clip styles
33500         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
33501           also filters modifier keys
33502         * MessageBox.cs:
33503           - Added assignment of Accept and Cancel button to enable Enter
33504             and Esc keys in MessageBox dialogs
33505           - FormParentWindow.CreateParams: Added required clip styles
33506         * RadioButton.cs: Added missing attributes
33507         * TextControl.cs: No longer draws selection if control does not
33508           have focus
33509         * TextBoxBase.cs:
33510           - Now draws simple rectangle around test area to make it obvious
33511             there's a control. This is a hack until we properly support borders
33512           - A few simple fixes to support selections better, now erases selected
33513             text when typing, and resets selection when using movement keys
33514
33515 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
33516
33517         * UpDownBase.cs: Added some new properties.
33518
33519         * DomainUpDown.cs: Implement a lot to get my test working.
33520
33521 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
33522
33523         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
33524
33525 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
33526
33527         * OSXStructs (WindowAttributes): Fixed csc complaints
33528
33529 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
33530
33531         * XplayUIOSX.cs:
33532           OSXStructs.cs: Initial refactor to move enums and consts into
33533           OSXStructs and use them in the driver for greater readability.
33534
33535 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
33536
33537         * XplatUIOSX.cs: Initial support for Standard Cursors.
33538         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
33539
33540 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
33541
33542         * ComboBox.cs: ability to change style when the ctrl is already
33543         created, missing methods and events, bug fixes, signature fixes
33544
33545 2005-01-19  Peter Bartok  <pbartok@novell.com>
33546
33547         * Cursors.cs (ctor): Added ctor to fix signature
33548
33549 2005-01-18  Peter Bartok  <pbartok@novell.com>
33550
33551         * Button.cs: Implemented DoubleClick event
33552         * ButtonBase.cs:
33553           - Fixed keyboard handling to behave like MS, where the press of
33554             Spacebar is equivalent to a mousedown, and the key release is
33555             equivalent to mouseup. Now a spacebar push will give the same
33556             visual feedback like a mouse click.
33557           - Added missing attributes
33558           - Added ImeModeChanged event
33559           - Added support for generating DoubleClick event for derived classes
33560         * CheckBox.cs:
33561           - Implemented DoubleClick event
33562           - Added missing attributes
33563         * CommonDialog.cs: Added missing attribute
33564         * ContextMenu.cs: Added missing attributes
33565         * RadioButton.cs:
33566           - AutoChecked buttons do not allow to be unselected when clicked
33567             (otherwise we might end up with no selected buttons in a group)
33568           - Added missing attributes
33569           - Implemented DoubleClickEvent
33570         * ThreadExceptionDialog.cs: Enabled TextBox code
33571
33572 2005-01-18  Peter Bartok  <pbartok@novell.com>
33573
33574         * Form.cs: Removed debug output
33575         * Button.cs: Added support for DoubleClick method
33576
33577 2005-01-18  Peter Bartok  <pbartok@novell.com>
33578
33579         * Form.cs:
33580           - Added method to parent window that allows triggering size
33581             calculations when a menu is added/removed
33582           - set_Menu: Cleaned up mess from early days of Form and Control,
33583             now properly triggers a recalc when a menu is added/removed
33584           - Added case to select form itself as focused form if no child
33585             controls exist
33586           - Added PerformLayout call when showing dialog, to ensure properly
33587             placed controls
33588         * Control.cs:
33589           - Select(): Made internal so Form can access it
33590           - Focus(): Only call Xplat layer if required (avoids loop), and sets
33591             status
33592         * Application.cs (Run): Removed hack and calls PerformLayout instead
33593           to trigger calculation when Form becomes visible
33594
33595 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
33596
33597         * ComboBox.cs: fixes for ownerdraw
33598
33599 2005-01-18  Peter Bartok  <pbartok@novell.com>
33600
33601         * TextControl.cs:
33602           - Sentinel is no longer static, each Document gets it's own, this
33603             avoids locking or alternatively overwrite problems when more
33604             than one text control is used simultaneously.
33605           - Switched to use Hilight and HilightText brushes for text selection
33606
33607         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
33608
33609 2005-01-18  Peter Bartok  <pbartok@novell.com>
33610
33611         * Control.cs:
33612           - Hooked up the following events:
33613                 o ControlAdded
33614                 o ControlRemoved
33615                 o HandleDestroyed
33616                 o ImeModeChanged
33617                 o ParentChanged
33618                 o TabStopChanged
33619                 o Invalidated
33620                 o SystemColorsChanged
33621                 o ParentFontChanged
33622                 o Move
33623           - Removed debug output
33624           - Added a call to the current theme's ResetDefaults when a color change
33625             is detected
33626         * Form.cs: Now setting the proper ImeMode
33627         * Theme.cs: Defined a method to force recreation of cached resources
33628           and rereading of system defaults (ResetDefaults())
33629         * ThemeWin32Classic.cs: Added ResetDefaults() stub
33630
33631 2005-01-17  Peter Bartok  <pbartok@novell.com>
33632
33633         * Control.cs: Added missing attributes
33634
33635 2005-01-17  Jackson Harper  <jackson@ximian.com>
33636
33637         * TreeNode.cs: Implement editing. Add missing properties selected
33638         and visible.
33639         * TreeView.cs: Implement node editing. Also some fixes to use
33640         Invalidate (invalid area) instead of Refresh when selecting.
33641
33642 2005-01-17  Peter Bartok  <pbartok@novell.com>
33643
33644         * Control.cs:
33645           - Implemented InvokeGotFocus() method
33646           - Implemented InvokeLostFocus() method
33647           - Implemented InvokePaint() method
33648           - Implemented InvokePaintBackground() method
33649           - Implemented InvokeClick() method
33650           - Implemented FindForm() method
33651           - Implemented RectangleToClient() method
33652           - Implemented ClientToRectangle() method
33653           - Implemented ResetBackColor() method
33654           - Implemented ResetCursor() method
33655           - Implemented ResetFont() method
33656           - Implemented ResteForeColor() method
33657           - Implemented ResetImeMode() method
33658           - Implemented ResetLeftToRight() method
33659           - Implemented ResetText() method
33660           - Implemented Scale() methods
33661           - Implemented ScaleCore() method
33662           - Implemented Update() method
33663           - Removed unused variables
33664           - Stubbed AccessibilityNotifyClients and
33665             ControlAccessibleObject.NotifyClients() methods (dunno what to do
33666             with those yet)
33667           - Now setting proper default for RightToLeft property
33668           - Fixed bug in SetClientSizeCore that would cause windows to get
33669             really big
33670           - Now sending Click/DoubleClick events
33671           - Now selecting controls when left mouse button is clicked on
33672             selectable control
33673         * AccessibleEvents.cs: Added
33674         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
33675         * XplatUIOSX.cs: Stubbed UpdateWindow() method
33676         * XplatUIWin32.cs: Implemented UpdateWindow() method
33677         * XplatUIX11.cs: Implemented UpdateWindow() method
33678         * Form.cs: Removed stray semicolon causing CS0162 warning
33679         * ThemeWin32Classic.cs: Fixed unused variable warnings
33680         * ScrollableControl.cs: Now calls base method for ScaleCore
33681         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
33682           style to avoid interference with internal click handler (which is
33683           different than standard Control click handling)
33684         * RadioButton.cs:
33685           - Now unchecks all sibling radio buttons when control is
33686             selected (Fixes #68756)
33687           - Removed internal tabstop variable, using the one inherited from
33688             Control
33689
33690 2005-01-17  Jackson Harper  <jackson@ximian.com>
33691
33692         * NavigateEventArgs.cs: Fix base type.
33693         * LinkLabel.cs: Sig fix
33694         
33695 2005-01-17  Jackson Harper  <jackson@ximian.com>
33696
33697         * TreeView.cs: Only invalidate the effected nodes bounds when
33698         selecting nodes.
33699
33700 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
33701
33702         * XplatUIWin32.cs: fixes Win32 marshaling
33703         * XplatUIX11.cs: fixes method signature
33704
33705 2005-01-17  Peter Bartok  <pbartok@novell.com>
33706
33707         * XplatUIX11.cs: Clean up resources when we no longer need them
33708
33709 2005-01-17  Peter Bartok  <pbartok@novell.com>
33710
33711         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
33712           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
33713           and DestroyCursor() methods.
33714         * Cursor.cs: Partially implemented, now supports standard cursors;
33715           still contains some debug code
33716         * Cursors.cs: Implemented class
33717         * Control.cs:
33718           - WndProc(): Added handling of WM_SETCURSOR message, setting the
33719             appropriate cursor
33720           - Implemented Cursor property
33721           - Replaced break; with return; more straightforwar and possibly
33722             faster
33723           - Now properly setting the result for WM_HELP
33724         * X11Structs.cs: Added CursorFontShape enum
33725         * XplatUIStructs.cs:
33726           - Added StdCursor enum (to support DefineStdCursor() method)
33727           - Added HitTest enum (to support sending WM_SETCURSOR message)
33728         * XplatUIX11.cs:
33729           - Now sends the WM_SETCURSOR message
33730           - Implemented new cursor methods
33731         * XplatUIOSX.cs: Stubbed new cursor methods
33732         * XplatUIWin32.cs:
33733           - Implemented new cursor methods
33734           - Added GetSystemMetrics function and associated enumeration
33735
33736 2005-01-15  Peter Bartok  <pbartok@novell.com>
33737
33738         * Control.cs:
33739           - WndProc(): Now handles EnableNotifyMessage
33740           - SelectNextControl(): Fixed bug where if no child or sibling
33741             controls exist we looped endlessly
33742
33743 2005-01-14  Jackson Harper  <jackson@ximian.com>
33744
33745         * TreeView.cs: Recalculate the tab pages when a new one is added
33746         so that the proper bounding rects are created.
33747
33748 2005-01-14  Jackson Harper  <jackson@ximian.com>
33749
33750         * TreeView.cs: Draw a gray box instead of a grip in the lower
33751         right hand corner when there are both horizontal and vertical
33752         scroll bars.
33753
33754 2005-01-14  Jackson Harper  <jackson@ximian.com>
33755
33756         * Control.cs: When erasing backgrounds use FromHwnd instead of
33757         FromHdc when there is a NULL wparam. This occurs on the X driver.
33758         * XplatUIX11.cs: Set the wparam to NULL.
33759
33760 2005-01-13  Jackson Harper  <jackson@ximian.com>
33761
33762         * PictureBox.cs: Implement missing methods (except ToString, need
33763         to test that on windows) and events. When visibility is changed we
33764         need to redraw the image because the buffers are killed. When size
33765         is changed refresh if the sizemode needs it.
33766
33767 2005-01-13  Peter Bartok  <pbartok@novell.com>
33768
33769         * Control.cs (SelectNextControl): Was using wrong method to select
33770           a control
33771
33772 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
33773
33774         * ComboBox.cs: fixes dropstyle
33775
33776 2005-01-13  Peter Bartok  <pbartok@novell.com>
33777
33778         * Form.cs:
33779           - Implemented Select() override
33780           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
33781           - Now sets keyboard focus on startup
33782         * Control.cs (SelectNextControl): Now properly handles directed=true
33783         * TextBoxBase.cs:
33784           - WndProc: Now passes tab key on to base if AcceptTabChar=false
33785           - Added (really bad) focus rectangle (mostly for testing)
33786         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
33787           to enforce redraw on focus changes
33788         * ContainerControl.cs:
33789           - Fixed detection of Shift-Tab key presses
33790           - Fixed traversal with arrow keys
33791         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
33792           gonna keep this or if it's complete yet
33793         
33794 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
33795
33796         * ComboBox.cs: missing properties, fixes
33797
33798 2005-01-13  Peter Bartok  <pbartok@novell.com>
33799
33800         * Panel.cs (ctor): Setting Selectable window style to off
33801         * Splitter.cs (ctor): Setting Selectable window style to off
33802         * GroupBox.cs (ctor): Setting Selectable window style to off
33803         * Label.cs (ctor): Setting Selectable window style to off
33804
33805 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
33806
33807         * UpDownBase.cs (InitTimer): If the timer has been already
33808         created, enable it.
33809
33810         Use a TextBox instead of a Label.
33811
33812 2005-01-12  Jackson Harper  <jackson@ximian.com>
33813
33814         * TreeView.cs: Refresh the tree after sorting the nodes. Always
33815         draw the connecting node lines (when ShowLines is true).
33816         * TreeNode.cs: The nodes index can now be updated. This is used
33817         when a node collection is sorted.
33818         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
33819         insert or an existing unsorted node collection can be sorted.
33820         
33821 2005-01-12  Peter Bartok  <pbartok@novell.com>
33822
33823         * ContainerControl.cs: Implemented ProcessDialogKeys()
33824
33825 2005-01-12  Peter Bartok  <pbartok@novell.com>
33826
33827         * Control.cs:
33828           - Implemented SelectNextControl() method
33829           - Several focus related bug fixes
33830           - Fixed Docking calculations to match MS documentation and
33831             behaviour
33832
33833 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
33834
33835         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
33836         bug fixes
33837
33838 2005-01-12  Peter Bartok  <pbartok@novell.com>
33839
33840         * Control.cs:
33841           - Fixed broken Contains() method
33842           - Implemented GetNextControl() method. Finally. This is the pre-
33843             requisite for focus handling.
33844
33845 2005-01-12  Peter Bartok  <pbartok@novell.com>
33846
33847         * OSXStrucs.cs: Added
33848
33849 2005-01-12  Peter Bartok  <pbartok@novell.com>
33850
33851         * XplatUIWin32.cs:
33852           - Removed PeekMessageFlags
33853           - Implemented SetWindowStyle() method
33854         * XplatUIStructs.cs: Added PeekMessageFlags
33855         * X11Structs: Added missing border_width field to XWindowChanges struct
33856         * XplatUIX11.cs:
33857           - PeekMessage: Now throws exception if flags which are not yet
33858             supported are passed
33859           - Implemented SetWindowStyle() method
33860           - Fixed SetZOrder to handle AfterHwnd properly
33861         * XplatUI.cs: Added SetWindowStyle() method
33862         * XplatUIDriver.cs: Added SetWindowStyle() abstract
33863         * Control.cs:
33864           - Implemented UpdateStyles() method
33865           - Implemented UpdateZOrder() method
33866         * XplatUIOSX.cs: Added SetWindowStyle() stub
33867
33868 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
33869
33870         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
33871         button mouse).
33872
33873
33874 2005-01-11  Jackson Harper  <jackson@ximian.com>
33875
33876         * TreeView.cs: Still need to draw lines to siblings even if out of
33877         the current node is out of the clip.
33878
33879 2005-01-11  Jackson Harper  <jackson@ximian.com>
33880
33881         * TreeView.cs: When setting the hbar/vbar/grip position use
33882         SetBounds so that perform layout is only called once. Also suspend
33883         and resume layout so layout is only done once for all controls.
33884         - Removed some debug fluff
33885         * SizeGrip.cs: Call base implmentation in overriding methods.
33886         - When visibility is changed the drawing buffers are killed so we
33887         need to redraw.
33888
33889 2005-01-11  Jackson Harper  <jackson@ximian.com>
33890
33891         * TreeView.cs: Calculate the open node count while drawing. This
33892         saves us an entire tree traversal for every paint operation. Use
33893         a member var for the open node count so less vars are passed around.
33894
33895 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
33896
33897         * MonthCalendar.cs:
33898         - fixed selection to use mousemove, not mouse polling on timer
33899         * ThemeWin32Classic.cs
33900         - removed redundant unused variable "no_more_content"
33901         
33902 2005-01-11  Peter Bartok  <pbartok@novell.com>
33903
33904         * XplatUIX11.cs (DoEvents): Needs to return when no more events
33905           are pending, so it now calls PeekMessage instead of GetMessage;
33906           implemented a incomplete version of PeekMessage
33907         
33908 2005-01-11  Peter Bartok  <pbartok@novell.com>
33909
33910         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
33911           I18n issues
33912         * TextBoxBase.cs: Added sending of TextChanged event
33913
33914 2005-01-10  Jackson Harper  <jackson@ximian.com>
33915
33916         * TreeView.cs: Try not to draw outside the clipping rectangle on
33917         each node element.
33918
33919 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
33920
33921         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
33922
33923 2005-01-10  Jackson Harper  <jackson@ximian.com>
33924
33925         * TreeView.cs:
33926         - Implement fast scrolling. Now only the newly
33927         exposed nodes are drawn and the old image is moved using the
33928         XplatUI::ScrollWindow method.
33929         - Factor in height of nodes when calculating whether or not the
33930         node is in the clipping rect.
33931
33932 2005-01-10  Jackson Harper  <jackson@ximian.com>
33933
33934         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
33935
33936 2005-01-10  Peter Bartok  <pbartok@novell.com>
33937
33938         * Application.cs: Added temporary hack to resolve all our resize
33939           required issues on startup. This will get fixed properly at
33940           some point in the future
33941
33942 2005-01-10  Jackson Harper  <jackson@ximian.com>
33943
33944         * SizeGrip.cs: New internal class that is used as a sizing
33945         grip control...hence the name.
33946
33947 2005-01-10  Peter Bartok  <pbartok@novell.com>
33948
33949         * Control.cs: Implemented proper TabIndex handling, now assigning
33950           a tabindex when a control is added to a container
33951         * GroupBox.cs (ctor): Now sets the Container style bit, required
33952           for Control.GetNextControl()
33953
33954 2005-01-09  Jackson Harper  <jackson@ximian.com>
33955
33956         * TextBoxBase.cs: Clear window when scrolling (fixes build).
33957
33958 2005-01-09  Peter Bartok <pbartok@novell.com>
33959
33960         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
33961           XplatUIX11.cs: Added ability to control ScrollWindow expose and
33962           an overload for ScrollWindow to allow only scrolling a rectangle
33963
33964 2005-01-09  Peter Bartok <pbartok@novell.com>
33965
33966         * Form.cs:
33967           - Implemented SetDesktopBounds method
33968           - Implemented SetDesktopLocation method
33969
33970 2005-01-08  Jackson Harper  <jackson@ximian.com>
33971
33972         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
33973         the node count has changed, this removes to VScroll::Refresh calls
33974         when drawing.
33975
33976 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
33977
33978         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
33979
33980 2005-01-07  Jackson Harper  <jackson@ximian.com>
33981
33982         * TreeNode.cs: Just update the single node when it is
33983         checked. Don't refresh after toggling, the Expand/Collapse already
33984         handles this.
33985         * TreeView.cs: Respect clipping a little more when drawing. Try
33986         not to redraw things that don't need to be redrawn. Just hide the
33987         scrollbars when they are no longer needed instead of removing
33988         them, so they don't have to be created again and again.
33989         
33990 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
33991
33992         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
33993         coordinates to window space to place the caret properly, FIXED.
33994         Implement GetWindowState & SetWindowState
33995
33996 2005-01-06  Peter Bartok <pbartok@novell.com>
33997
33998         * Form.cs:
33999           - Implemented ClientSize property
34000           - Implemented DesktopBounds property
34001           - Implemented DesktopLocation property
34002           - Implemented IsRestrictedWindow property
34003           - Implemented Size property
34004           - Implemented TopLevel property
34005           - Implemented FormWindowState property
34006         * Control.cs:
34007           - Implemented GetTopLevel() method
34008           - Implemented SetTopLevel() method
34009         * X11Structs.cs (Atom):
34010           - Added AnyPropertyType definition
34011           - Added MapState definiton and updated XWindowAttribute struct
34012         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
34013         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
34014         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
34015         * XplatUIWin32.cs:
34016           - Implemented GetWindowState() and SetWindowState() methods
34017           - Fixed Win32GetWindowLong return type
34018         * XplatUIX11.cs:
34019           - Introduced central function for sending NET_WM messages
34020           - Implemented GetWindowState() and SetWindowState() methods
34021         * TextBoxBase.cs (set_Lines):
34022           - Now uses Foreground color for text added via Text property (Duh!)
34023           - Added code to remember programmatically requested size (fixes
34024             behaviour when Multiline is set after Size)
34025           - Added AutoSize logic
34026
34027 2005-01-06  Jackson Harper  <jackson@ximian.com>
34028
34029         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
34030
34031 2005-01-06  Jackson Harper  <jackson@ximian.com>
34032
34033         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
34034         set to less then 0.
34035
34036 2005-01-06  Jackson Harper  <jackson@ximian.com>
34037
34038         * ScrollableControl.cs: Lazy init the scrollbars.
34039         
34040 2005-01-06  Jackson Harper  <jackson@ximian.com>
34041
34042         * Theme.cs: Speed up getting pens and solid brushes, by using
34043         their ARGB as a hash instead of tostring and not calling Contains.
34044
34045 2005-01-06  Peter Bartok <pbartok@novell.com>
34046
34047         * Form.cs:
34048           - Implemented OnActivated and OnDeactivate event trigger
34049           - Implemented Activate() method
34050           - Fixed ShowDialog() to activate the form that was active before
34051             the dialog was shown
34052         * XplatUIX11.cs:
34053           - Added global active_window var that tracks the currently active
34054             X11 window
34055           - Now always grabs Property changes from the root window to always
34056             catch changes on the active window property
34057           - Added code to PropertyNotify handler to send Active/Inactive
34058             messages when state changes. This puts X11 and Win32 en par on
34059             WM_ACTIVATE notifications (except for double notifications when
34060             the user clicks away from our modal window to another one of our
34061             windows)
34062
34063 2005-01-05  Jackson Harper  <jackson@ximian.com>
34064
34065         * ImageList.cs: Implment ctor
34066
34067 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
34068
34069         * XplatUIOSX.cs: Implement Activate/SetTopmost
34070
34071 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
34072
34073         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
34074
34075 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
34076
34077         * XplatUIOSX.cs: Implement GetActive/SetFocus.
34078
34079 2005-01-05  Peter Bartok <pbartok@novell.com>
34080
34081         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
34082           XplatUIOSX.cs: Added GetActive method to return the currently
34083           active window for the application (or null, if none is active)
34084         * Form.cs:
34085           - Implemented ActiveForm
34086           - Commented out owner assignment for modal dialogs (causes problems
34087             on Win32, since the owner will be disabled)
34088           - Reworked some Active/Focus handling (still incomplete)
34089         * CommonDialog.cs: Commented out owner assignment for modal dialogs
34090           (causes problems on Win32, since the owner will be disabled)
34091         * IWin32Window: Added ComVisible attribute
34092
34093 2005-01-05  Peter Bartok <pbartok@novell.com>
34094
34095         * ToolTip.cs (WndProc): Enable setting focus now that we have the
34096           required XplatUI functions.
34097
34098 2005-01-05  Peter Bartok <pbartok@novell.com>
34099
34100         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
34101           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
34102           to implement focus and activation handling; still incomplete and
34103           with debug output
34104
34105 2005-01-04  Peter Bartok <pbartok@novell.com>
34106
34107         * TextBoxBase.cs: Changed access level for Document property to
34108           match switch to internal for TextControl
34109
34110 2005-01-04  Peter Bartok <pbartok@novell.com>
34111
34112         * AccessibleObject: Added ComVisible attribute
34113
34114 2005-01-04  Jackson Harper  <jackson@ximian.com>
34115
34116         * X11Keyboard.cs: Remove unneeded var.
34117
34118 2005-01-04  Jackson Harper  <jackson@ximian.com>
34119
34120         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
34121         but PAINT.
34122         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
34123         ClientMessage. This makes apps exit cleanly (more often).
34124         
34125 2005-01-04  Jackson Harper  <jackson@ximian.com>
34126
34127         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
34128         handling focus, return correct colors and fonts,
34129         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
34130         handle selection, horizontal scrolling, and mouse interaction.
34131
34132 2005-01-04  Peter Bartok <pbartok@novell.com>
34133
34134         * ICommandExecutor.cs: Added
34135         * IDataGridColumnStyleEditingNotificationService.cs: Added
34136         * IFeatureSupport.cs: Added
34137         * IFileReaderService.cs: Added
34138         * IDataObject.cs: Added ComVisible attribute
34139         * AmbientProperties.cs: Added
34140         * BaseCollection.cs: Added missing attributes
34141         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
34142         * BaseCollection.cs: Added missing attributes
34143         * Binding.cs: Added TypeConverter attribute
34144         * BindingContext.cs: Added DefaultEvent attribute
34145         * BindingsCollection.cs: Added DefaultEvent attribute
34146         * Button.cs: Added DefaultValue attribute
34147         * DragEventArgs.cs: Added ComVisible attribute
34148         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
34149         * KeyEventArgs.cs: Added ComVisible attribute
34150         * KeyPressEventArgs.cs: Added ComVisible attribute
34151         * MouseEventArgs.cs: Added ComVisible attribute
34152         * NavigateEventArgs.cs: Added
34153         * NavigateEventHandler.cs: Added
34154         * FeatureSupport.cs: Added
34155         * OSFeature.cs: Added
34156         * Theme.cs: Added abstract Version property to support OSFeature
34157         * ThemeWin32Classic.cs: Added Version property to
34158           support OSFeature.Themes
34159         * ProgressBar.cs: Removed OnPaintBackground override, not required since
34160           the proper styles to avoid background drawing are set, also doesn't
34161           match MS signature
34162         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
34163         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
34164         * ScrollEventArgs.cs: Added ComVisible attribute
34165         * SplitterEventArgs.cs: Added ComVisible attribute
34166         * AccessibleSelection.cs: Added Flags attribute
34167         * Appearance.cs: Added ComVisible attribute
34168         * Border3DSide.cs: Added ComVisible attribute
34169         * Border3DStyle.cs: Added ComVisible attribute
34170         * BorderStyle.cs: Added ComVisible attribute
34171         * DragAction.cs: Added ComVisible attribute
34172         * ErrorBlinkStyle.cs: Added
34173         * ScrollEventType.cs: Added ComVisible attribute
34174         * AnchorStyles.cs: Added Editor attribute
34175         * DockStyle.cs: Added Editor attribute
34176         * HorizontalAlignment.cs: Added ComVisible attribute
34177         * HelpEventArgs.cs: Added ComVisible attribute
34178         * PaintEventArgs.cs: Added IDisposable
34179
34180 2005-01-04  Peter Bartok <pbartok@novell.com>
34181
34182         * TextControl.cs: Switched Line, LineTag and Document classes to
34183           internal
34184
34185 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
34186
34187         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
34188         Simple mode, fixes, IntegralHeight, etc.
34189
34190 2005-01-04  Peter Bartok <pbartok@novell.com>
34191
34192         * TextBoxBase.cs: Using proper font variable now
34193
34194 2005-01-04  Peter Bartok <pbartok@novell.com>
34195
34196         * Form.cs (ShowDialog): Set parent to owner, if provided
34197         * GroupBox.cs: Removed unused vars
34198         * TextControl.cs:
34199           - Added GetHashCode() for Document and LineTag classes
34200           - Removed unused variables
34201           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
34202             to allow translation between continuous char position and line/pos
34203         * CheckBox.cs: Removed vars that are provided by base class
34204         * RadioButton.cs: Removed vars that are provided by base class, added
34205           new keyword where required
34206         * LinkLabel.cs: Added new keyword where required
34207         * Control.cs (WndProc): Removed unused variable
34208         * TextBoxBase.cs:
34209           - Finished SelectionLength property
34210           - Implemented SelectionStart property
34211           - Implemented Text property
34212           - Removed unused vars
34213         * MessageBox.cs: Added new keyword where required
34214         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
34215           WndProc signature
34216         * MenuAPI.cs: Added new keyword where required
34217         * ButtonBase.cs: Removed vars that are provided by base class, added
34218           new keyword where required
34219         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
34220           argument to double, to allow compiling with csc 2.0 (Atsushi ran
34221           into this)
34222         * Application.cs (Run): Now triggers the ThreadExit event
34223         * CommonDialog.cs: Added new keyword where required; now properly sets
34224           parent (owner) for dialog
34225         * XplatUIX11.cs: Commented out unused vars
34226         * StatusBar.cs: Fixed signature for Text property
34227         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
34228
34229 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
34230
34231         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
34232         TrackBar.cs, MonthCalendar.cs: remove unused vars
34233
34234 2005-01-03  Jackson Harper  <jackson@ximian.com>
34235
34236         * ThemeWin32Classic.cs:
34237         * X11Keyboard.cs: Remove unused vars.
34238
34239 2005-01-03  Peter Bartok  <pbartok@novell.com>
34240
34241         * TextBox.cs:
34242           - set_Text: Tied into TextControl
34243           - set_TextAlignment: Tied into TextControl
34244         * TextControl.cs:
34245           - Added alignment properties and implemented alignment handling
34246             and drawing (still has a bug, not generating proper expose events)
34247           - Added new Line() constructor to allow passing the line alignment
34248           - Fixed selection setting, properly handling end<start now
34249           - Added aligment considerations to RecalculateDocument()
34250         * TextBoxBase.cs:
34251           - Now properly enforces control height for single line controls
34252           - Added support for CharacterCasing
34253           - Added IsInputKey override
34254           - Fixed Keys.Enter logic
34255           - Added SetBoundsCore override
34256           - Fixed mouse selection handling
34257
34258 2005-01-03  Jackson Harper  <jackson@ximian.com>
34259
34260         * TreeView.cs:
34261           - Collapse and uncheck all nodes when CheckBoxes is disabled.
34262           - Checkboxes are always aligned to the bottom of the node,
34263           regardless of item height.
34264           - Use the node bounds to draw the text so we can center it when
34265           the item height is greater then the font height.
34266           - Node::Bounds are only the text part of the node.
34267         * TreeNode.cs: New method to combine collapsing and unchecking all
34268           nodes recursively.
34269
34270 2005-01-02  Jackson Harper  <jackson@ximian.com>
34271
34272         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
34273         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
34274         tree when a check is changed. TODO: Only refresh the checked node.
34275
34276 2004-12-30  Jackson Harper  <jackson@ximian.com>
34277
34278         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
34279         * TreeNode.cs: When collapsing make sure to never collapse the
34280         root node.
34281
34282 2004-12-29  Jackson Harper  <jackson@ximian.com>
34283
34284         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
34285         
34286 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
34287
34288         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
34289
34290 2004-12-28  Peter Bartok  <pbartok@novell.com>
34291
34292         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
34293           not yet assigned
34294
34295 2004-12-28  Peter Bartok  <pbartok@novell.com>
34296
34297         * Control.cs (WndProc): Added WM_HELP handler, now generates
34298           HelpRequested event
34299         * Form.cs: Added HelpButton property and required support code
34300         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
34301
34302 2004-12-28  Peter Bartok  <pbartok@novell.com>
34303
34304         * CommonDialog.cs:
34305           - Made DialogForm.owner variable internal
34306           - Added check to ensure owner form is set before setting
34307             owner properties in CreateParams
34308
34309 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
34310
34311         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
34312           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
34313           GetCursorPos.  Fix major visibility issues.  Rework the windowing
34314           system to support borderless/titleless windows (implements menus).
34315           Fix GetWindowPos.  Implement initial background color support for
34316           views.
34317
34318 2004-12-28  Peter Bartok  <pbartok@novell.com>
34319
34320         * Form.cs (get_CreateParams): Make sure we have an owner before using
34321           the owner variable. Implement proper default if no owner exists
34322
34323 2004-12-28  Peter Bartok  <pbartok@novell.com>
34324
34325         * In preparation for making Managed.Windows.Forms the default build target
34326           for System.Windows.Forms, the following stubbed files were added.
34327           Dialogs are currently being implemented by contributors and are only
34328           short-term place holders.
34329         * ColorDialog.cs: Initial check-in (minmal stub)
34330         * DataGrid.cs: Initial check-in (minimal stub)
34331         * DataGridLineStyle.cs: Initial check-in (minimal stub)
34332         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
34333         * DataGridTableStyle.cs: Initial check-in (minimal stub)
34334         * FontDialog.cs: Initial check-in (minimal stub)
34335         * FileDialog.cs: Initial check-in (minimal stub)
34336         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
34337         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
34338         * OpenFileDialog: Initial check-in (minimal stub)
34339         * IComponentEditorPageSite.cs: Initial check-in
34340         * Splitter.cs: Initial check-in (for Jackson)
34341         * SplitterEventArgs.cs: Initial check-in (for Jackson)
34342         * SplitterEventHandler.cs: Initial check-in (for Jackson)
34343         * TextBox.cs: Initial check-in; still needs some wiring to
34344           TextControl backend
34345         * Form.cs: Implemented ControlBox property
34346         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
34347         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
34348         * TextControl.cs: Added selection functionality; added todo header
34349         * TextBoxBase.cs:
34350           - Implemented Lines property
34351           - Implemented TextHeight property
34352           - Implemented SelectedText property
34353           - Implemented SelectionLength property
34354           - Implemented SelectAll method
34355           - Implemented ToString method
34356           - Removed and cleaned up some debug code
34357           - Implemented (still buggy) mouse text selection
34358
34359 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
34360
34361         * ComboBox.cs: Complete DropDownList implementation, fixes.
34362
34363 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
34364
34365         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
34366         * ComboBoxStyle.cs: ComboBoxStyle enum
34367         * ComboBox.cs: Initial work on ComboBox control
34368
34369 2004-12-21  Peter Bartok  <pbartok@novell.com>
34370
34371         * Control.cs (ctor, CreateParams): Moved setting of is_visible
34372           forward so that anything that creates a window gets the default,
34373           also no longer uses Visible property in CreateParams to avoid
34374           walking up the parent chain and possibly get the wrong visible
34375           status. Fixed IsVisible to no longer walk up to the parent.
34376
34377 2004-12-21  Peter Bartok  <pbartok@novell.com>
34378
34379         * Form.cs (ShowDialog): Unset modality for the proper window
34380  
34381 2004-12-20  Peter Bartok  <pbartok@novell.com>
34382
34383         * CommonDialog.cs: Initial check-in
34384
34385 2004-12-20  Peter Bartok  <pbartok@novell.com>
34386
34387         * Control.cs (Visible): Now uses the parent window instead of the
34388           client area window for the property
34389
34390         * Form.cs
34391           - ShowDialog(): Now uses the proper window for modality
34392           - The default visibility state for the form parent is now false. This
34393             will prevent the user from seeing all the changes to the form and
34394             its controls before the application hits Application.Run()
34395           - Removed some stale commented out code
34396
34397         * NativeWindow.cs:
34398           - Added FindWindow() method to have a method to check for existence
34399             of a window handle
34400           - Added ability to override default exception handling (for example
34401             when debugging with VS.Net; to do this the ExternalExceptionHandler
34402             define must be set
34403           - Removed some useless debug output
34404
34405         * XplatUIX11.cs:
34406           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
34407             not working as expected
34408           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
34409             property to allow switching back to the modal window if focus is
34410             given to another one of our windows (Application Modal)
34411           - Now only sets override_redirect if we create a window
34412             without WS_CAPTION
34413           - Moved EventMask selection before mapping of newly created window
34414             so we can catch the map event as well
34415           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
34416           - Added various Atom related DllImports
34417           - Implemented Exit() method
34418           - .ctor() : No longer shows window if WS_VISIBLE is not defined
34419             in the CreateParams
34420
34421         * MessageBox.cs: Now properly deals with the FormParent window by
34422           providing an override the FormParent CreateParams property to
34423           set as POPUP instead of OVERLAPPED window.
34424
34425 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
34426
34427         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
34428         Minor code cleanup.
34429
34430 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
34431         
34432         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
34433
34434 2004-12-18  Peter Bartok  <pbartok@novell.com>
34435
34436         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
34437           implementing SetModal() method
34438
34439 2004-12-18  Peter Bartok  <pbartok@novell.com>
34440
34441         * X11Structs.cs (XGCValues): Fixed type of function element
34442         * XplatUI.cs: Added ScrollWindow() method
34443         * XplatUIDriver.cs: Added ScrollWindow() abstract
34444         * XplatUIWin32.cs: Implemented ScrollWindow() method
34445         * XplatUIX11.cs: Implemented ScrollWindow() method
34446         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
34447
34448 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
34449
34450         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
34451         Some more keyboard support (INCOMPLETE)
34452
34453 2004-12-17  Peter Bartok  <pbartok@novell.com>
34454
34455         * TextControl.cs:
34456         - Added color attribute to line tags.
34457         - Added color argument to all functions dealing with tags
34458         - Added color argument support to various functions
34459         - Fixed miss-calculation of baseline/shift in certain circumstances
34460
34461         * TextBoxBase.cs: Added new color option to test code
34462
34463 2004-12-17  Jackson Harper  <jackson@ximian.com>
34464
34465         * TreeNode.cs:
34466         * MonthCalendar.cs: Signature fixes
34467
34468 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
34469
34470         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
34471         keyboard event moved it.  Create a new graphics context for each paint resolves this
34472
34473 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
34474
34475         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
34476         Make caret exist and go blink blink.  Initial keyboard support.
34477         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
34478         works.
34479
34480 2004-12-17  Jackson Harper  <jackson@ximian.com>
34481
34482         * XplatUIStructs.cs: Updated set of virtual keycodes.
34483         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
34484
34485 2004-12-17  Jackson Harper  <jackson@ximian.com>
34486
34487         * XplatUIX11.cs: Prune old keyboard code.
34488
34489 2004-12-17  Jackson Harper  <jackson@ximian.com>
34490
34491         * XplatUIX11.cs: When generating mouse wparams get the modifier
34492         keys from the ModifierKeys property.
34493
34494 2004-12-17  Jackson Harper  <jackson@ximian.com>
34495
34496         * X11Keyboard.cs: Send up/down input when generating
34497         messages. Remove some unused vars.
34498
34499 2004-12-17  Jackson Harper  <jackson@ximian.com>
34500
34501         * TabControl.cs:
34502         * TreeView.cs: get rid of warnings.
34503
34504 2004-12-17  Jackson Harper  <jackson@ximian.com>
34505
34506         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
34507
34508 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
34509
34510         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
34511           CheckedListBox.cs: Implementation
34512
34513 2004-12-17  Peter Bartok  <pbartok@novell.com>
34514
34515         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
34516
34517 2004-12-16  Peter Bartok  <pbartok@novell.com>
34518
34519         * TextControl.cs:
34520           - InsertCharAtCaret(): Fixed start pos fixup
34521           - CaretLine_get: No longer derives the line from the tag, the tag
34522             could be stale if lines in the document have been added or deleted
34523           - RebalanceAfterDelete(): Fixed bug in balancing code
34524           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
34525           - Line.Streamline(): Now can also elminate leading empty tags
34526           - DumpTree(): Added a few more tests and prevented exception on
34527             uninitialized data
34528           - Added Debug section for Combining lines
34529           - Delete(): Now copies all remaining properties of a line
34530           
34531         * TextBoxBase.cs:
34532           - Left mousebutton now sets the caret (and middle button still acts
34533             as formatting tester, which must go away soon)
34534           - Added Debug section for Deleting/Combining lines
34535           - Fixed calculations for UpdateView after Combining lines
34536
34537 2004-12-16  Peter Bartok  <pbartok@novell.com>
34538
34539         * TextControl.cs: Now properly aligns text on a baseline, using the
34540           new XplatUI.GetFontMetrics() method. Simplified several calculations
34541         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
34542           defined
34543
34544 2004-12-16  Peter Bartok  <pbartok@novell.com>
34545
34546         * XplatUI.cs: Added GetFontMetrics() method
34547         * XplatUIDriver.cs: Added GetFontMetrics() abstract
34548         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
34549           into libgdiplus, our private GetFontMetrics function
34550         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
34551         * XplatUIWin32.cs: Implemented GetFontMetrics() method
34552
34553 2004-12-16  Jackson Harper  <jackson@ximain.com>
34554
34555         * XplatUIStruct.cs: Add enum for dead keys
34556         * X11Keyboard.cs: Map and unmap dead keys.
34557
34558 2004-12-16  Jackson Harper  <jackson@ximian.com>
34559
34560         * X11Keyboard.cs: Detect and use the num lock mask.
34561
34562 2004-12-16  Peter Bartok  <pbartok@novell.com>
34563
34564         * Control.cs (CreateGraphics): Added check to make sure the
34565           handle of the window exists before calling Graphics.FromHwnd()
34566
34567 2004-12-16  Peter Bartok  <pbartok@novell.com>
34568
34569         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
34570           contains a lot of code that's not supposed to be there for the
34571           real thing, but required for developing/testing the textbox
34572           backend.
34573
34574 2004-12-16  Peter Bartok  <pbartok@novell.com>
34575
34576         * TextControl.cs:
34577         - Fixed Streamline method
34578         - Added FindTag method to Line
34579         - Added DumpTree method for debugging
34580         - Added DecrementLines() method for deleting lines
34581         - Fixed UpdateView to update the cursor to end-of-line on single-line
34582           updates
34583         - Added PositionCaret() method
34584         - Fixed MoveCaret(LineDown) to move into the last line, too
34585         - Added InsertChar overload
34586         - Fixed InsertChar tag offset calculations
34587         - Added DeleteChar() method
34588         - Added Combine() method for folding lines
34589         - Fixed Delete() method, no longer allocates wasted Line object and
34590           now copies all properties when swapping nodes
34591         - Delete() method now updates document line counter
34592
34593 2004-12-15  Jackson Harper  <jackson@ximian.com>
34594
34595         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
34596         * X11Keyboard.cs: Expose the currently selected modifier keys
34597         through a property.
34598
34599 2004-12-15  Peter Bartok  <pbartok@novell.com>
34600
34601         * TextControl.cs: Initial check-in. Still incomplete
34602
34603 2004-12-15  Jackson Harper  <jackson@ximian.com>
34604
34605         * TreeNode.cs:
34606         * TreeView.cs: Fix build on csc (second time today ;-))
34607
34608 2004-12-15  Jackson Harper  <jackson@ximian.com>
34609
34610         * TreeView.cs: Store the treenodes plus/minus box bounds when it
34611         is calculated and use this for click testing.
34612         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
34613
34614 2004-12-15  Jackson Harper  <jackson@ximian.com>
34615
34616         * TreeView.cs: Pass the nodes image index to the image list when
34617         drawing that image.
34618
34619 2004-12-15  Jackson Harper  <jackson@ximian.com>
34620
34621         * X11Keyboard.cs: Set messages hwnd.
34622         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
34623         post_message calls.
34624
34625 2004-12-15  Jackson Harper  <jackson@ximian.com>
34626
34627         * X11Keyboard.cs: Fix to compile with csc.
34628         
34629 2004-12-15  Jackson Harper  <jackson@ximian.com>
34630
34631         * X11Structs.cs: Add key mask values
34632         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
34633         * X11Keyboard.cs: New file - Extrapolates and interpolates key
34634         down/up foo into WM_CHAR foo
34635         * KeyboardLayouts.cs: Common keyboard layouts
34636         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
34637         post messages into the main queue.
34638
34639 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
34640
34641         * Button.cs: implement ProcessMnemonic
34642         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
34643           brushes everytime
34644         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
34645         * ButtonBase.cs: Show HotkeyPrefix (not the &)
34646
34647 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
34648         
34649         * MonthCalendar.cs: Implemented click-hold for next/previous month
34650           and date selection
34651           
34652 2004-12-11  Peter Bartok  <pbartok@novell.com>
34653
34654         * X11Structs.cs:
34655           - Added XKeyboardState (moved from XplatUIX11.cs)
34656           - Added XCreateGC related enums and structures
34657           - Added GXFunction for XSetFunction
34658
34659         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
34660
34661         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
34662           CaretVisible() calls
34663
34664         * ToolTip.cs: Added code to prevent stealing focus from app windows
34665
34666         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
34667           DestroyCaret, SetCaretPos and CaretVisible)
34668
34669         * XplatUIX11.cs:
34670           - Added implementation for caret functions
34671           - Moved hover variables into a struct, to make it a bit easier
34672             on the eyes and to debug
34673           - Removed XKeyboardState (moved to XplatUIX11.cs)
34674           - Moved Keyboard properties into the properties region
34675
34676         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
34677           call to get a graphics context for our control
34678
34679         * XplatUIOSX.cs: Added empty overrides for the new caret functions
34680
34681         * TreeView.cs: Fixed bug. No matter what color was set it would always
34682           return SystemColors.Window
34683
34684         * XplatUIWin32.cs: Implemented caret overrides
34685
34686 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
34687
34688         * ListBox.cs: fire events, implement missing methods and properties,
34689         sorting.
34690
34691 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
34692
34693         * MonthCalendar.cs: invalidation bug fixing
34694         * ThemeWin32Classic.cs: paint fixing
34695
34696 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
34697
34698         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
34699         prepare the CGContextRef there now.
34700
34701 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
34702
34703         * MonthCalendar.cs:
34704           - optimisationL only invalidate areas that have changed
34705         * ThemeWin32Classic.cs:
34706           - only paint parts that intersect with clip_area
34707
34708 2004-12-09  Peter Bartok  <pbartok@novell.com>
34709
34710         * Application.cs: Undid changes from r37004 which cause problems
34711         on X11
34712
34713 2004-12-09  Ravindra  <rkumar@novell.com>
34714
34715         * ToolBar.cs: Added support for displaying ContextMenu
34716         attached to a button on ToolBar.
34717         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
34718         property.
34719
34720 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
34721
34722         * Label.cs: autosize works in text change and removes unnecessary
34723         invalidate
34724
34725 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
34726
34727         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
34728         remove warnings
34729
34730 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
34731
34732         * XplatUIOSX.cs: Added mouse move/click/grab support
34733         Remove some debugging WriteLines not needed anymore.
34734         Add window resizing/positioning.
34735         Fix visibility on reparenting.
34736
34737 2004-12-08  Peter Bartok  <pbartok@novell.com>
34738
34739         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
34740
34741 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
34742
34743         * XplatUIOSX.cs: Initial checkin
34744         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
34745
34746 2004-12-03  Ravindra <rkumar@novell.com>
34747
34748         * ListView.cs: Added some keybindings and fixed scrolling.
34749         ScrollBars listen to ValueChanged event instead of Scroll
34750         Event. This would let us take care of all changes being
34751         done in the scrollbars' values programmatically or manually.
34752         * ListView.cs (CanMultiselect): Added a check for shift key.
34753         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
34754         * ListViewItem.cs (Clone): Fixed. We need to make a copy
34755         of ListViewSubItemCollection as well.
34756
34757 2004-12-06  Peter Bartok <pbartok@novell.com>
34758
34759         * Control.cs (Parent): Added check and exception to prevent
34760         circular parenting
34761
34762 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
34763
34764         * ListBox.cs: implemented clipping, selection single and multiple,
34765         bug fixing
34766
34767 2004-12-03  Ravindra <rkumar@novell.com>
34768
34769         * ListView.cs (ListView_KeyDown):
34770         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
34771         when CTRL key is pressed.
34772         * ListViewItem.cs (Selected): Fixed setting the property.
34773
34774 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
34775
34776         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
34777
34778         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
34779         MinimizeBox, ShowInTaskbar, TopMost properties.
34780
34781         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
34782         will be implemented).
34783
34784 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
34785
34786         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
34787
34788         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
34789         tests.
34790         
34791         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
34792         
34793         * TreeView.cs: BackColor is Colors.Window.
34794
34795 2004-12-01  Jackson Harper  <jackson@ximian.com>
34796
34797         * TreeView.cs: When resizing the tree if the user is making it
34798         smaller we don't get expose events, so we need to handle adding
34799         the horizontal scrollbar in the size changed handler as well as
34800         the expose handler.
34801
34802 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
34803
34804         * DrawItemState.cs: fixes wrong enum values
34805
34806 2004-12-01  Jackson Harper  <jackson@ximian.com>
34807
34808         * TreeView.cs: Resize the hbar as well as the vbar on resize.
34809
34810 2004-12-01  Jackson Harper  <jackson@ximian.com>
34811
34812         * NodeLabelEditEventArgs.cs:
34813         * NodeLabelEditEventHandler.cs:
34814         * OpenTreeNodeEnumerator.cs:
34815         * TreeNode.cs:
34816         * TreeNodeCollection.cs:
34817         * TreeView.cs:
34818         * TreeViewAction.cs:
34819         * TreeViewCancelEventArgs.cs:
34820         * TreeViewCancelEventHandler.cs:
34821         * TreeViewEventArgs.cs:
34822         * TreeViewEventHandler.cs: Initial implementation.
34823
34824 2004-12-01  Ravindra <rkumar@novell.com>
34825
34826         * ListView.cs (CalculateListView): Fixed scrolling related
34827         calculations. Also, removed some debug statements from other
34828         places.
34829         * ListViewItem.cs: Changed access to 'selected' instance variable
34830         from private to internal.
34831         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
34832
34833 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
34834
34835         * ThemeWin32Classic.cs: remove cache of brush and pens for
34836         specific controls and use the global system, fixes scrollbutton
34837         bugs (for small sizes, disabled, etc)
34838         
34839         * ScrollBar.cs: does not show the thumb for very small controls
34840         (as MS) and allow smaller buttons that the regular size
34841
34842 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
34843
34844         * UpDownBase.cs: Add abstract methods for the interface.
34845         Add new virtual methods (need to be hooked up to TextEntry when it
34846         exists).
34847         Add override methods for most features.
34848         Computes the size, forces the height of the text entry.
34849
34850         * NumericUpDown.cs: Put here the current testing code.
34851
34852         * Set eol-style property on all files that do not have mixed line
34853         endings, to minimize the future problems.  There are still a few
34854         files with mixed endings, and someone should choose whether they
34855         want to move it or not.
34856
34857 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
34858
34859         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
34860         System.Colors
34861         
34862 2004-11-30  Ravindra <rkumar@novell.com>
34863
34864         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
34865         drawing and replaced use of SystemColors by theme colors.
34866         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
34867         * ListView.cs (ListViewItemCollection.Add): Throw exception when
34868         same ListViewItem is being added more than once.
34869
34870 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
34871
34872         * MonthCalendar.cs:
34873           - ControlStyles love to make the control not flicker
34874           
34875 2004-11-30  Peter Bartok  <pbartok@novell.com>
34876
34877         * CharacterCasing.cs: Added
34878
34879 2004-11-29  Peter Bartok  <pbartok@novell.com>
34880
34881         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
34882           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
34883           I am removing these files as they conflict with already completed
34884           work. While it is fantastic to get contributions to MWF, I
34885           respectfully ask that everyone please coordinate their contributions
34886           through mono-winforms-list or #mono-winforms at this time. We're
34887           explicitly avoiding stubbing and don't want controls that don't have
34888           their basic functionality implemented in svn. Please also see
34889           http://www.mono-project.com/contributing/winforms.html
34890
34891
34892 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
34893
34894         * Application.cs (ModalRun): Don't hang after exit.
34895
34896         * Theme.cs: New TreeViewDefaultSize property.
34897
34898         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
34899         with less hardcoded SystemColors constant.
34900         Implemented TreeViewDefaultSize.
34901
34902         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
34903         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
34904
34905
34906 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
34907
34908         * MonthCalendar.cs:
34909           - Fix NextMonthDate and PrevMonthDate click moving calendar
34910
34911 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
34912
34913         * MonthCalendar.cs:
34914           - Fix usage of ScrollChange Property when scrolling months
34915
34916 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
34917
34918         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
34919          - Fixes menu destroying
34920          - Support adding and removing items on already created menus
34921
34922 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
34923
34924         * MonthCalendar.cs:
34925           - Re-worked all bolded dates handling to match win32
34926         * ThemeWin32Classic.cs:
34927           - Fixed rendering with bolded dates
34928
34929 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
34930
34931         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
34932         - Horizontal scroolbar
34933         - Multicolumn
34934         - Fixes
34935
34936
34937 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
34938
34939         * MonthCalendar.cs:
34940           - Fix Usage of MaxSelectionCount from SelectionRange
34941           - Fixed Shift + Cursor Selection
34942           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
34943           - Fixed normal cursor selection to be compat with win32
34944           - Fixed Shift + Mouse Click selection
34945
34946 2004-11-24  Peter Bartok <pbartok@novell.com>
34947
34948         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
34949         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
34950         * XplatUIX11.cs:
34951           - CreatedKeyBoardMsg now updates keystate with Alt key
34952           - Added workaround for timer crash to CheckTimers, Jackson will
34953             develop a proper fix and check in later
34954           - Implemented DispatchMessage
34955           - Removed calling the native window proc from GetMessage (call
34956             now moved to DispatchMessage)
34957
34958         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
34959           the keydata (Fixes bug #69831)
34960
34961         * XplatUIWin32.cs:
34962           - (DispatchMessage): Switched to return IntPtr
34963           - Added DllImport for SetFocus
34964
34965 2004-11-24  Ravindra <rkumar@novell.com>
34966
34967         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
34968         background drawing.
34969         * ListViewItem.cs: Fixed various properties, calculations
34970         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
34971         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
34972         and some internal properties. Fixed MouseDown handler and Paint
34973         method.
34974
34975 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
34976
34977         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
34978
34979 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
34980
34981         * ContainerControl.cs: correct accidental check in of local changes
34982
34983 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
34984
34985         * ThemeWin32Classic.cs:
34986                 - Fixed Drawing Last month in grid (sometimes not showing)
34987         * MonthCalendar.cs:
34988                 - Fixed title width calculation bug (makeing title small)
34989
34990 2004-11-23  Peter Bartok <pbartok@novell.com>
34991
34992         * XplatUIX11.cs:
34993           - Added generation of WM_MOUSEHOVER event
34994           - Added missing assignment of async_method atom
34995           - Fixed WM_ERASEBKGND; now only redraws the exposed area
34996
34997 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
34998
34999         * ThemeWin32Classic.cs:
35000                 - Fixed Drawing of today circle when showtodaycircle not set
35001                 - fixed drawing of first and last month in the grid (gay dates)
35002         * MonthCalendar.cs:
35003                 - Fixed Drawing of today circle
35004                 - Fixed drawing of grady dates
35005                 - Fixed HitTest for today link when ShowToday set to false
35006                 - Fixed DefaultSize to obey ShowToday
35007
35008 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
35009
35010         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
35011         * System.Windows.Forms/Theme.cs
35012         * MonthCalendar.cs: added for MonthCalendar
35013         * SelectionRange.cs: added for MonthCalendar
35014         * Day.cs: added for MonthCalendar: added for MonthCalendar
35015         * DateRangeEventArgs.cs: added for MonthCalendar
35016         * DateRangeEventHandler.cs: added for MonthCalendar
35017
35018 2004-11-22  Ravindra <rkumar@novell.com>
35019
35020         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
35021         property.
35022
35023 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
35024
35025         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
35026         event handler.
35027         
35028         * NumericUpDown.cs: Added new implementation.
35029         * UpDownBase.cs: Added new implementation.
35030
35031         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
35032         implementations.
35033         
35034         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
35035         implementations.
35036
35037         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
35038         methods.
35039
35040 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
35041
35042         * Timer.cs  (Dispose): Should call the base dispose when
35043         overriding.
35044
35045 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
35046
35047         * ScrollBar.cs: updates thumb position when max, min or increment
35048         is changed
35049
35050 2004-11-21  Ravindra <rkumar@novell.com>
35051
35052         * ListView.cs: Implemented item selection, activation and
35053         column header style. Fixed properties to do a redraw, if
35054         required. Added support for MouseHover, DoubleClick, KeyDown
35055         and KeyUp event handling and some minor fixes.
35056         * ListViewItem.cs: Fixed constructor.
35057         * ThemeWin32Classic.cs: Improved drawing for ListView.
35058
35059 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
35060
35061         * ThemeWin32Classic.cs: initial listbox drawing code
35062         * DrawMode.cs: new enumerator
35063         * ListControl.cs: stubbed class
35064         * ListBox.cs: initial implementation
35065         * Theme.cs: new methods definitions
35066         * SelectionMode.cs: new enumerator
35067
35068 2004-11-17  Peter Bartok  <pbartok@novell.com>
35069
35070         * XplatUIWin32.cs: Added double-click events to the class style
35071         * Control.cs (WndProc):
35072           - Added handling of click-count to MouseDown/ MouseUp events.
35073           - Added handling of middle and right mouse buttons
35074           - Removed old debug code
35075
35076 2004-11-17  Jackson Harper  <jackson@ximian.com>
35077
35078         * XplatUIX11.cs: Use the new Mono.Unix namespace.
35079
35080 2004-11-17  Ravindra <rkumar@novell.com>
35081
35082         * ListView.cs: Added event handling for MouseMove/Up/Down.
35083         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
35084         * ThemeWin32Classic.cs: We need to clear the graphics context and
35085         draw column header in a proper state.
35086
35087
35088 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
35089
35090         *  Menu.cs: fixes signature
35091
35092 2004-11-16  Peter Bartok  <pbartok@novell.com>
35093
35094         * XplatUIX11.cs (GetMessage): Implemented generation of
35095           double click mouse messages
35096
35097 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
35098
35099         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
35100         not by menu
35101
35102 2004-11-11  Peter Bartok  <pbartok@novell.com>
35103
35104         * HandleData.cs: Added Visible property
35105         * XplatUIX11.cs (IsVisible): Now uses Visible property from
35106           HandleData
35107         * XplatUIX11.cs: Removed old debug leftovers
35108         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
35109         * Control.cs (WndProc): Removed old debug leftovers,
35110           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
35111           needed WM_SIZE handling
35112
35113 2004-11-11  Jackson Harper  <jackson@ximian.com>
35114
35115         * OwnerDrawPropertyBag.cs:
35116         * TreeViewImageIndexConverter.cs: Initial implementation
35117
35118 2004-11-10  Jackson Harper  <jackson@ximian.com>
35119
35120         * ThemeWin32Classic.cs:
35121         * TabControl.cs: instead of moving tabs by the slider pos just
35122         start drawing at the tab that is offset by the slider. This way
35123         scrolling always moves by exactly one tab.
35124
35125 2004-11-10  Jackson Harper  <jackson@ximian.com>
35126
35127         * TabControl.cs: You can only scroll left when the slider has
35128         already ben moved right.
35129         
35130 2004-11-10  Jackson Harper  <jackson@ximian.com>
35131
35132         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
35133         the clip area.
35134         
35135 2004-11-10  Jackson Harper  <jackson@ximian.com>
35136
35137         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
35138         clip area.
35139         
35140 2004-11-09  Jackson Harper  <jackson@ximian.com>
35141
35142         * TabControl.cs (CalcXPos): New helper method so we can determine
35143         the proper place to start drawing vertical tabs.
35144         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
35145         
35146 2004-11-09  Jackson Harper  <jackson@ximian.com>
35147
35148         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
35149         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
35150         and Bottom, left and right are illegal values for this and
35151         multiline is enabled when the alignment is set to left or right.
35152         (DrawTab): Each alignment block should draw the text itself now
35153         because Left requires special love. Also add rendering for Left
35154         aligned tabs.
35155         
35156 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
35157
35158         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
35159         does not destroy the windows, removes debugging messages
35160
35161 2004-11-09  jba  <jba-mono@optusnet.com.au>
35162
35163         * ThemeWin32Classic.cs
35164         (DrawButtonBase): Fix verticle text rect clipping in windows
35165         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
35166         rendering and incorrect text rect clipping
35167         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
35168         rendering and incorrect text rect clipping
35169         
35170 2004-11-08  Jackson Harper  <jackson@ximian.com>
35171
35172         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
35173         bottom when they are bottom aligned so the bottoms of the tabs get
35174         displayed.
35175         * TabControl.cs (DropRow): Move rows up instead of down when the
35176         tab control is bottom aligned.
35177
35178 2004-11-08 13:59  pbartok
35179
35180         * XplatUIX11.cs:
35181           - Added handling for various window styles
35182           - Added handling for popup windows
35183           - Added SetTopmost handling
35184
35185 2004-11-08 13:55  pbartok
35186
35187         * XplatUIWin32.cs:
35188           - Added argument to SetTopmost method
35189           - Fixed broken ClientToScreen function
35190
35191 2004-11-08 13:53  pbartok
35192
35193         * XplatUIStructs.cs:
35194           - Added missing WS_EX styles
35195
35196 2004-11-08 13:53  pbartok
35197
35198         * XplatUI.cs, XplatUIDriver.cs:
35199           - Added argument to SetTopmost
35200
35201 2004-11-08 13:52  pbartok
35202
35203         * X11Structs.cs:
35204           - Added XSetWindowAttributes structure
35205           - Improved XWindowAttributes structure
35206           - Added SetWindowValuemask enum
35207           - Added window creation arguments enum
35208           - Added gravity enum
35209           - Added Motif hints structure
35210           - Added various Motif flags and enums
35211           - Added PropertyMode enum for property functions
35212
35213 2004-11-08 13:50  pbartok
35214
35215         * Form.cs:
35216           - Fixed arguments for updated SetTopmost method
35217
35218 2004-11-08 13:49  pbartok
35219
35220         * ToolTip.cs:
35221           - Fixed arguments for updated SetTopmost function
35222           - Fixed usage of PointToClient
35223
35224 2004-11-08 13:44  pbartok
35225
35226         * MenuAPI.cs:
35227           - Added Clipping of children and siblings
35228
35229 2004-11-08 13:41  pbartok
35230
35231         * MainMenu.cs:
35232           - Removed SetMenuBarWindow call. We do this in Form.cs
35233
35234 2004-11-08 13:40  jackson
35235
35236         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
35237           scrolling jimmi in the correct location with bottom aligned tabs
35238
35239 2004-11-08 13:36  pbartok
35240
35241         * ContainerControl.cs:
35242           - Implemented BindingContext
35243           - Implemented ParentForm
35244
35245 2004-11-08 12:46  jackson
35246
35247         * TabControl.cs: Put bottom rendered tabs in the right location
35248
35249 2004-11-08 07:15  jordi
35250
35251         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
35252           removes dead code
35253
35254 2004-11-05 17:30  jackson
35255
35256         * TabControl.cs: When selected tabs are expanded make sure they
35257           don't go beyond the edges of the tab control
35258
35259 2004-11-05 14:57  jackson
35260
35261         * TabControl.cs: Reset show_slider so if the control is resized to
35262           a size where it is no longer needed it's not displayed anymore
35263
35264 2004-11-05 13:16  jackson
35265
35266         * TabControl.cs: Make tab pages non visible when added to the
35267           control
35268
35269 2004-11-05 12:42  jackson
35270
35271         * TabControl.cs: Implement SizeMode.FillToRight
35272
35273 2004-11-05 12:16  jackson
35274
35275         * Control.cs: Do not call CreateHandle if the handle is already
35276           created
35277
35278 2004-11-05 11:46  jackson
35279
35280         * TabControl.cs: Remove superflous call to CalcTabRows
35281
35282 2004-11-05 09:07  jackson
35283
35284         * XplatUIX11.cs: Update for Mono.Posix changes
35285
35286 2004-11-05 07:00  ravindra
35287
35288         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
35289           scrolling.
35290
35291 2004-11-04 22:47  jba
35292
35293         * ThemeWin32Classic.cs:
35294           - Fix Button rendering for FlatStyle = Flat or Popup
35295           - Fix RadioButton and CheckBox rendering when Appearance = Button
35296             (normal and flatstyle).
35297           - Correct outer rectangle color when drawing focus rectangle
35298           - Adjust button bounds to be 1 px smaller when focused
35299           - Make button not draw sunken 3d border when pushed (windows compat)
35300           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
35301           - Offset the text in RadioButton and Checkbox when being rendered as
35302           a button.
35303           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
35304           radiobuttons
35305           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
35306           - Fixed disabled text rendering for normally rendered radiobuttons
35307
35308 2004-11-04 10:26  jackson
35309
35310         * TabControl.cs: Recalculate tab rows when resizing
35311
35312 2004-11-04 07:47  jordi
35313
35314         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
35315           collection completion, drawing issues, missing features
35316
35317 2004-11-04 05:03  ravindra
35318
35319         * ScrollBar.cs:
35320                 - We need to recalculate the Thumb area when
35321                 LargeChange/maximum/minimum values are changed.
35322           - We set the 'pos' in UpdatePos() method to minimum, if it's less
35323                 than minimum. This is required to handle the case if large_change is
35324                 more than max, and use LargeChange property instead of large_change
35325                 variable.
35326           - We return max+1 when large_change is more than max, like MS does.
35327
35328 2004-11-04 04:29  ravindra
35329
35330         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
35331                 - Changed default value signatures (prefixed all with ListView).
35332                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
35333                 ListView.
35334           - Fixed calculations for ListViewItem and implemented Clone()
35335           method.
35336
35337 2004-11-04 04:26  ravindra
35338
35339         * Theme.cs, ThemeWin32Classic.cs:
35340                 - Changed default ListView values signatures (prefixed all with
35341                 ListView).
35342           - Fixed default size values for VScrollBar and HScrollBar.
35343                 - Fixed DrawListViewItem method.
35344
35345 2004-11-04 04:05  ravindra
35346
35347         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
35348
35349 2004-11-04 04:04  ravindra
35350
35351         * ImageList.cs: Implemented the missing overload for Draw method.
35352
35353 2004-11-03 19:29  jackson
35354
35355         * TabControl.cs: Handle dropping rows on selection properly
35356
35357 2004-11-03 11:59  jackson
35358
35359         * TabControl.cs: remove debug code
35360
35361 2004-11-03 11:52  jackson
35362
35363         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
35364           the scrolly widgerywoo
35365
35366 2004-11-02 13:52  jackson
35367
35368         * TabControl.cs: Resize the tab pages and tabs when the tab control
35369           is resized
35370
35371 2004-11-02 13:40  jackson
35372
35373         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
35374           selected tab to the bottom
35375
35376 2004-11-02 13:39  jackson
35377
35378         * TabPage.cs: Store the tab pages row
35379
35380 2004-11-02 12:33  jordi
35381
35382         * MenuItem.cs: fixes handle creation
35383
35384 2004-11-02 11:42  jackson
35385
35386         * TabControl.cs: signature fix
35387
35388 2004-11-02 08:56  jackson
35389
35390         * TabControl.cs: Calculate whether the tab is on an edge properly.
35391           Remove top secret debugging code
35392
35393 2004-11-01 19:57  jackson
35394
35395         * TabControl.cs: Add click handling, and proper sizing
35396
35397 2004-11-01 19:47  jackson
35398
35399         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
35400           tab controls
35401
35402 2004-11-01 19:39  jackson
35403
35404         * TabPage.cs: add internal property to store the bounds of a tab
35405           page
35406
35407 2004-10-30 04:23  ravindra
35408
35409         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
35410           values.
35411
35412 2004-10-30 04:21  ravindra
35413
35414         * ListView.cs, ListViewItem.cs: Added support for scrolling and
35415           fixed calculations.
35416
35417 2004-10-30 03:06  pbartok
35418
35419         * XplatUIX11.cs:
35420           - Removed extension of DllImported libs
35421
35422 2004-10-29 09:55  jordi
35423
35424         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
35425           navigation, itemcollection completion, menu fixes
35426
35427 2004-10-27 22:58  pbartok
35428
35429         * XplatUIX11.cs:
35430           - Now throws a nice error message when no X display could be opened
35431
35432 2004-10-26 13:51  jordi
35433
35434         * ListView.cs: removes warning
35435
35436 2004-10-26 03:55  ravindra
35437
35438         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
35439           ThemeWin32Classic.cs: Some formatting for my last checkins.
35440
35441 2004-10-26 03:36  ravindra
35442
35443         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
35444           control and default values.
35445
35446 2004-10-26 03:35  ravindra
35447
35448         * Theme.cs: Added some default values for ListView control.
35449
35450 2004-10-26 03:33  ravindra
35451
35452         * ToolBar.cs: ToolBar should use the user specified button size, if
35453           there is any. Added a size_specified flag for the same.
35454
35455 2004-10-26 03:33  ravindra
35456
35457         * ColumnHeader.cs: Added some internal members and calculations for
35458           ColumnHeader.
35459
35460 2004-10-26 03:32  ravindra
35461
35462         * ListViewItem.cs: Calculations for ListViewItem.
35463
35464 2004-10-26 03:31  ravindra
35465
35466         * ListView.cs: Added some internal members and calculations for
35467           ListView.
35468
35469 2004-10-22 13:31  jordi
35470
35471         * MenuAPI.cs: speedup menus drawing
35472
35473 2004-10-22 13:16  jackson
35474
35475         * XplatUIX11.cs: Make sure to update exposed regions when adding an
35476           expose event
35477
35478 2004-10-22 11:49  jackson
35479
35480         * Control.cs: oops
35481
35482 2004-10-22 11:41  jackson
35483
35484         * Control.cs: Check to see if the window should have its background
35485           repainted by X when drawing.
35486
35487 2004-10-22 11:31  jackson
35488
35489         * XplatUIX11.cs: When invalidating areas only use XClearArea if
35490           clear is true, this way we do not get flicker from X repainting the
35491           background
35492
35493 2004-10-22 11:28  jackson
35494
35495         * XEventQueue.cs: Queue properly
35496
35497 2004-10-21 09:38  jackson
35498
35499         * XEventQueue.cs: Fix access modifier
35500
35501 2004-10-21 09:36  jackson
35502
35503         * XEventQueue.cs: Don't loose messages
35504
35505 2004-10-21 09:22  jackson
35506
35507         * XEventQueue.cs: Don't loose messages
35508
35509 2004-10-20 04:15  jordi
35510
35511         * BootMode.cs: enum need it by SystemInfo
35512
35513 2004-10-19 21:58  pbartok
35514
35515         * XplatUIWin32.cs:
35516           - Small sanity check
35517
35518 2004-10-19 21:56  pbartok
35519
35520         * Form.cs:
35521           - Added private FormParentWindow class which acts as the container
35522             for our form and as the non-client area where menus are drawn
35523           - Added/Moved required tie-ins to Jordi's menus
35524           - Fixed/Implemented the FormStartPosition functionality
35525
35526 2004-10-19 21:52  pbartok
35527
35528         * Control.cs:
35529           - Removed unneeded locals
35530           - Added code to all size and location properties to understand and
35531             deal with the parent container of Form
35532
35533 2004-10-19 21:33  pbartok
35534
35535         * Application.cs:
35536           - Fixed to deal with new Form subclasses for menus
35537
35538 2004-10-19 17:48  jackson
35539
35540         * XEventQueue.cs: commit correct version of file
35541
35542 2004-10-19 16:50  jackson
35543
35544         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
35545
35546 2004-10-19 16:15  jordi
35547
35548         * MenuAPI.cs: MenuBarCalcSize returns the height
35549
35550 2004-10-19 08:31  pbartok
35551
35552         * Control.cs:
35553           - Added missing call to PreProcessMessage before calling OnXXXKey
35554           methods
35555
35556 2004-10-19 00:04  ravindra
35557
35558         * ToolTip.cs: Fixed constructor.
35559
35560 2004-10-18 09:31  jordi
35561
35562         * MenuAPI.cs: menuitems in menubars do not have shortcuts
35563
35564 2004-10-18 09:26  jordi
35565
35566         * MenuItem.cs: fixes MenuItem class signature
35567
35568 2004-10-18 08:56  jordi
35569
35570         * MenuAPI.cs: prevents windows from showing in the taskbar
35571
35572 2004-10-18 00:28  ravindra
35573
35574         * ToolTip.cs: Suppressed a warning message.
35575
35576 2004-10-18 00:27  ravindra
35577
35578         * Control.cs: Default value of visible property must be true.
35579
35580 2004-10-17 23:19  pbartok
35581
35582         * ToolTip.cs:
35583           - Complete implementation
35584
35585 2004-10-17 23:19  pbartok
35586
35587         * XplatUIX11.cs:
35588           - Added EnableWindow method
35589           - Added SetModal stub
35590           - Added generation of WM_ACTIVATE message (still needs testing)
35591           - Added SetTopMost stub
35592           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
35593
35594 2004-10-17 23:17  pbartok
35595
35596         * XplatUIWin32.cs:
35597           - Removed VirtualKeys to XplatUIStructs
35598           - Implemented SetTopMost method
35599           - Implemented EnableWindow method
35600           - Bugfix in ScreenToClient()
35601           - Bugfixes in ClientToScreen()
35602
35603 2004-10-17 22:51  pbartok
35604
35605         * XplatUIStructs.cs:
35606           - Added WS_EX styles to WindowStyles enumeration
35607
35608 2004-10-17 22:50  pbartok
35609
35610         * XplatUI.cs, XplatUIDriver.cs:
35611           - Added method for enabling/disabling windows
35612           - Added method for setting window modality
35613           - Added method for setting topmost window
35614
35615 2004-10-17 22:49  pbartok
35616
35617         * ThemeWin32Classic.cs:
35618           - Added ToolTip drawing code
35619
35620 2004-10-17 22:49  pbartok
35621
35622         * Theme.cs:
35623           - Added ToolTip abstracts
35624
35625 2004-10-17 22:47  pbartok
35626
35627         * Form.cs:
35628           - Fixed Form.ControlCollection to handle owner relations
35629           - Added Owner/OwnedForms handling
35630           - Implemented Z-Ordering for owned forms
35631           - Removed unneeded private overload of ShowDialog
35632           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
35633             so I hope)
35634           - Fixed Close(), had wrong default
35635           - Added firing of OnLoad event
35636           - Added some commented out debug code for Ownership handling
35637
35638 2004-10-17 22:16  pbartok
35639
35640         * Control.cs:
35641           - Fixed/implemented flat list of controls
35642
35643 2004-10-17 22:14  pbartok
35644
35645         * Application.cs:
35646           - Added code to simulate modal dialogs on Win32
35647
35648 2004-10-17 16:11  jordi
35649
35650         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
35651           mouse event
35652
35653 2004-10-17 13:39  jordi
35654
35655         * MenuAPI.cs: menu drawing fixes
35656
35657 2004-10-15 09:10  ravindra
35658
35659         * StructFormat.cs: General Enum.
35660
35661 2004-10-15 09:09  ravindra
35662
35663         * SizeGripStyle.cs: Enum for Form.
35664
35665 2004-10-15 09:08  ravindra
35666
35667         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
35668           in Theme for ListView.
35669
35670 2004-10-15 09:06  ravindra
35671
35672         * ColumnHeader.cs: Flushing some formatting changes.
35673
35674 2004-10-15 09:05  ravindra
35675
35676         * ListViewItem.cs: Implemented GetBounds method and fixed coding
35677           style.
35678
35679 2004-10-15 09:03  ravindra
35680
35681         * ListView.cs: Implemented Paint method and fixed coding style.
35682
35683 2004-10-15 07:34  jordi
35684
35685         * MenuAPI.cs: fix for X11
35686
35687 2004-10-15 07:32  ravindra
35688
35689         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
35690                 - Renamed Paint() method to Draw() for clarity. Also, moved
35691                 DrawImage() to OnPaint().
35692
35693 2004-10-15 07:25  ravindra
35694
35695         * CheckBox.cs, RadioButton.cs:
35696                 - Removed Redraw (), we get it from ButtonBase.
35697                 - Implemented Paint (), to do class specific painting.
35698
35699 2004-10-15 07:16  ravindra
35700
35701         * ButtonBase.cs:
35702                 - Redraw () is not virtual now.
35703                 - Added an internal virtual method Paint (), so that
35704                 derived classes can do their painting on their own.
35705                 - Modified OnPaint () to call Paint ().
35706
35707 2004-10-15 06:43  jordi
35708
35709         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
35710           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
35711
35712 2004-10-15 00:30  ravindra
35713
35714         * MessageBox.cs:
35715                 - MessageBox on windows does not have min/max buttons.
35716                 This change in CreateParams fixes this on Windows. We
35717                 still need to implement this windowstyle behavior in
35718                 our X11 driver.
35719
35720 2004-10-14 05:14  ravindra
35721
35722         * ToolBar.cs:
35723                 - Changed Redraw () to do a Refresh () always.
35724                 - Fixed the MouseMove event handling when mouse is pressed,
35725                 ie drag event handling.
35726                 - Replaced the usage of ToolBarButton.Pressed property to
35727                 ToolBarButton.pressed internal variable.
35728
35729 2004-10-14 05:10  ravindra
35730
35731         * ToolBarButton.cs:
35732                 - Added an internal member 'inside' to handle mouse move
35733                 with mouse pressed ie mouse drag event.
35734                 - Changed 'Pressed' property to return true only when
35735                 'inside' and 'pressed' are both true.
35736                 - Some coding style love.
35737
35738 2004-10-14 00:17  ravindra
35739
35740         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
35741           public method.
35742
35743 2004-10-14 00:15  ravindra
35744
35745         * ButtonBase.cs: Redraw () related improvements.
35746
35747 2004-10-14 00:14  ravindra
35748
35749         * MessageBox.cs: Moved InitFormSize () out of Paint method and
35750           removed unnecessary calls to Button.Show () method.
35751
35752 2004-10-13 17:50  pbartok
35753
35754         * XplatUIX11.cs:
35755           - Formatting fix
35756           - Removed destroying of window until we solve the problem of X
35757             destroying the window before us on shutdown
35758
35759 2004-10-13 16:32  pbartok
35760
35761         * ButtonBase.cs:
35762           - Now Redraws on MouseUp for FlatStyle Flat and Popup
35763
35764 2004-10-13 14:18  pbartok
35765
35766         * XplatUIX11.cs:
35767           - Added code to destroy the X window
35768
35769 2004-10-13 14:18  pbartok
35770
35771         * XplatUIWin32.cs:
35772           - Added code to destroy a window
35773
35774 2004-10-13 14:12  pbartok
35775
35776         * ButtonBase.cs:
35777           - Added the Redraw on Resize that got dropped in the last rev
35778
35779 2004-10-13 09:06  pbartok
35780
35781         * ThemeWin32Classic.cs:
35782           - Path from John BouAntoun:
35783             * Fix check rendering (centre correctly for normal style, offset
35784               correctly for FlatStyle).
35785             * Fix border color usage (use backcolor) for FlatStyle.Popup
35786             * Use checkbox.Capture instead of checkbox.is_pressed when
35787               rendering flatstyle states.
35788
35789 2004-10-12 21:48  pbartok
35790
35791         * ThemeWin32Classic.cs:
35792           - Removed all occurences of SystemColors and replaced them with the
35793             matching theme color
35794
35795 2004-10-12 21:41  pbartok
35796
35797         * ThemeWin32Classic.cs:
35798           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
35799             him using the function for flatstyle drawing
35800           - Changed functions to use the new version of CPDrawBorder3D
35801
35802 2004-10-12 21:15  pbartok
35803
35804         * ControlPaint.cs:
35805           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
35806             match MS documentation. They need to return defined colors if the
35807             passed color matches the configured control color. Thanks to John
35808             BouAntoun for pointing this out.
35809
35810 2004-10-12 20:57  pbartok
35811
35812         * Control.cs:
35813           - Fix from John BouAntoun: Raise ForeColorChanged event when text
35814             color is changed
35815
35816 2004-10-12 20:46  pbartok
35817
35818         * CheckBox.cs:
35819           - Fix from John BouAntoun: Now properly sets the Appearance property
35820
35821 2004-10-12 20:45  pbartok
35822
35823         * ThemeWin32Classic.cs:
35824           - Fixes from John BouAntoun: now handles forecolors and backcolors
35825             for flatstyle rendered controls much better; It also fixes normal
35826             checkbox rendering when pushed or disabled.
35827
35828 2004-10-08 02:50  jordi
35829
35830         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
35831           work
35832
35833 2004-10-07 08:56  jordi
35834
35835         * ThemeWin32Classic.cs: Removes deletion of cached brushes
35836
35837 2004-10-06 03:59  jordi
35838
35839         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
35840           XplatUIWin32.cs: removes warnings from compilation
35841
35842 2004-10-05 12:23  jackson
35843
35844         * RadioButton.cs: Fix ctor
35845
35846 2004-10-05 11:10  pbartok
35847
35848         * MessageBox.cs:
35849           - Partial implementation by Benjamin Dasnois
35850
35851 2004-10-05 10:15  jackson
35852
35853         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
35854           by John BouAntoun
35855
35856 2004-10-05 03:07  ravindra
35857
35858         * ToolBar.cs:
35859                 - Removed a private method, Draw ().
35860                 - Fixed the ButtonDropDown event handling.
35861                 - Fixed MouseMove event handling.
35862
35863 2004-10-05 03:04  ravindra
35864
35865         * ThemeWin32Classic.cs:
35866                 - Added DrawListView method and ListViewDefaultSize property.
35867                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
35868                 - Changed DOS style CRLF to Unix format (dos2unix).
35869
35870 2004-10-05 03:03  ravindra
35871
35872         * Theme.cs:
35873                 - Added DrawListView method and ListViewDefaultSize property.
35874
35875 2004-10-05 02:42  ravindra
35876
35877         * ToolBarButton.cs: Added an internal member dd_pressed to handle
35878           clicks on DropDown arrow.
35879
35880 2004-10-04 22:56  jackson
35881
35882         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
35883           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
35884           Control handle the buffers, derived classes should not have to
35885           CreateBuffers themselves.
35886
35887 2004-10-04 21:20  jackson
35888
35889         * StatusBar.cs: The control handles resizing the buffers now.
35890
35891 2004-10-04 21:18  jackson
35892
35893         * Control.cs: When resizing the buffers should be invalidated. This
35894           should be handled in Control not in derived classes.
35895
35896 2004-10-04 14:45  jackson
35897
35898         * TabPage.cs: oops
35899
35900 2004-10-04 02:14  pbartok
35901
35902         * LeftRightAlignment.cs:
35903           - Initial check-in
35904
35905 2004-10-04 01:09  jordi
35906
35907         * ThemeWin32Classic.cs: fixes right button position causing right
35908           button not showing on horizontal scrollbars
35909
35910 2004-10-02 13:12  pbartok
35911
35912         * XplatUIX11.cs:
35913           - Simplified the Invalidate method by using an X call instead of
35914             generating the expose ourselves
35915           - Added an expose when the window background is changed
35916           - Implemented ClientToScreen method
35917
35918 2004-10-02 13:08  pbartok
35919
35920         * XplatUIWin32.cs:
35921           - Added Win32EnableWindow method (test for implementing modal
35922           dialogs)
35923           - Added ClientToScreen method and imports
35924
35925 2004-10-02 13:07  pbartok
35926
35927         * XplatUI.cs, XplatUIDriver.cs:
35928           - Added ClientToScreen coordinate translation method
35929
35930 2004-10-02 13:06  pbartok
35931
35932         * KeyPressEventArgs.cs:
35933           - Fixed access level for constructor
35934
35935 2004-10-02 13:06  pbartok
35936
35937         * NativeWindow.cs:
35938           - Changed access level for the window_collection hash table
35939
35940 2004-10-02 13:05  pbartok
35941
35942         * Form.cs:
35943           - Added KeyPreview property
35944           - Added Menu property (still incomplete, pending Jordi's menu work)
35945           - Implemented ProcessCmdKey
35946           - Implemented ProcessDialogKey
35947           - Implemented ProcessKeyPreview
35948
35949 2004-10-02 13:02  pbartok
35950
35951         * Control.cs:
35952           - Added private method to get the Control object from the window
35953           handle
35954           - Implemented ContextMenu property
35955           - Implemented PointToScreen
35956           - Implemented PreProcessMessage
35957           - Implemented IsInputChar
35958           - Implemented IsInputKey
35959           - Implemented ProcessCmdKey
35960           - Completed ProcessKeyEventArgs
35961           - Fixed message loop to call the proper chain of functions on key
35962           events
35963           - Implemented ProcessDialogChar
35964           - Implemented ProcessDialogKey
35965           - Implemented ProcessKeyMessage
35966           - Implemented ProcessKeyPreview
35967           - Added RaiseDragEvent stub (MS internal method)
35968           - Added RaiseKeyEvent stub (MS internal method)
35969           - Added RaiseMouseEvent stub (MS Internal method)
35970           - Added RaisePaintEvent stub (MS Internal method)
35971           - Added ResetMouseEventArgs stub (MS Internal method)
35972           - Implemented RtlTranslateAlignment
35973           - Implemented RtlTranslateContent
35974           - Implemented RtlTranslateHorizontal
35975           - Implemented RtlTranslateLeftRight
35976           - Added generation of KeyPress event
35977
35978 2004-10-02 05:57  ravindra
35979
35980         * ListViewItem.cs: Added attributes.
35981
35982 2004-10-02 05:32  ravindra
35983
35984         * ListView.cs: Added attributes.
35985
35986 2004-10-01 11:53  jackson
35987
35988         * Form.cs: Implement the Close method so work on MessageBox can
35989           continue.
35990
35991 2004-09-30 14:06  pbartok
35992
35993         * XplatUIX11.cs:
35994           - Bug fixes
35995
35996 2004-09-30 11:34  jackson
35997
35998         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
35999
36000 2004-09-30 07:26  ravindra
36001
36002         * ListViewItemConverter.cs: Converter for ListViewItem.
36003
36004 2004-09-30 07:26  ravindra
36005
36006         * SortOrder.cs: Enum for ListView control.
36007
36008 2004-09-30 07:25  ravindra
36009
36010         * ColumnHeader.cs: Supporting class for ListView control.
36011
36012 2004-09-30 07:24  ravindra
36013
36014         * ListView.cs, ListViewItem.cs: Initial implementation.
36015
36016 2004-09-30 07:20  ravindra
36017
36018         * ItemActivation.cs: Enum for ListView Control.
36019
36020 2004-09-29 20:29  pbartok
36021
36022         * XplatUIX11.cs:
36023           - Added lookup of pixel value for background color; tries to get a
36024             color 'close' to the requested color, it avoids having to create a
36025             colormap.  Depending on the display this could mean the used color
36026             is slightly off the desired color. Might have to change it to a more
36027             resource intensive colormap approach, but it will work as a
36028           workaround to avoid red screens.
36029
36030 2004-09-29 14:27  jackson
36031
36032         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
36033
36034 2004-09-28 12:44  pbartok
36035
36036         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
36037           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
36038           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
36039           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
36040           TrackBar.cs, VScrollBar.cs:
36041           - Streamlined Theme interfaces:
36042             * Each DrawXXX method for a control now is passed the object for
36043               the control to be drawn in order to allow accessing any state the
36044               theme might require
36045
36046             * ControlPaint methods for the theme now have a CP prefix to avoid
36047               name clashes with the Draw methods for controls
36048
36049             * Every control now retrieves it's DefaultSize from the current
36050             theme
36051
36052 2004-09-28 12:17  jackson
36053
36054         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
36055           drawing
36056
36057 2004-09-24 14:57  jackson
36058
36059         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
36060           Gives us a nice little performance boost.
36061
36062 2004-09-24 12:02  jackson
36063
36064         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
36065           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
36066           Control and supporting classes. Initial checkin
36067
36068 2004-09-23 13:08  jackson
36069
36070         * Form.cs: Temp build fixage
36071
36072 2004-09-23 01:39  ravindra
36073
36074         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
36075           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
36076           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
36077           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
36078           EventHandlers needed by ListView Control.
36079
36080 2004-09-22 14:12  pbartok
36081
36082         * ScrollableControl.cs:
36083           - Implemented DockPadding property
36084           - Implemented AutoScroll property
36085           - Implemented AutoScrollMargin property
36086           - Implemented AutoScrollMinSize property
36087           - Implemented AutoScrollPosition property
36088           - Implemented DisplayRectangle property (still incomplete)
36089           - Implemented CreateParams property
36090           - Implemented HScroll property
36091           - Implemented VScroll property
36092           - Implemented OnVisibleChanged property
36093
36094 2004-09-22 14:09  pbartok
36095
36096         * Form.cs:
36097           - Added Form.ControllCollection class
36098           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
36099             RemoveOwnedForm (still incomplete, missing on-top and common
36100             minimize/maximize behaviour)
36101           - Added StartPosition property (still incomplete, does not use when
36102             creating the form)
36103           - Added ShowDialog() methods (still incomplete, missing forcing the
36104             dialog modal)
36105
36106 2004-09-22 14:05  pbartok
36107
36108         * Application.cs:
36109           - Added message loop for modal dialogs
36110
36111 2004-09-22 14:02  pbartok
36112
36113         * GroupBox.cs:
36114           - Fixed wrong types for events
36115
36116 2004-09-22 14:00  pbartok
36117
36118         * Shortcut.cs, FormWindowState.cs:
36119           - Fixed wrong values
36120
36121 2004-09-22 12:01  jackson
36122
36123         * Control.cs: Text is never null
36124
36125 2004-09-20 22:14  pbartok
36126
36127         * XplatUIWin32.cs:
36128           - Fixed accessibility level for Idle handler
36129
36130 2004-09-20 18:54  jackson
36131
36132         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
36133           XplatUIX11.cs: New message loop that uses poll so we don't get a
36134           busy loop
36135
36136 2004-09-17 10:43  pbartok
36137
36138         * ScrollBar.cs:
36139           - Fixed behaviour of arrow buttons. Now properly behaves like
36140             Buttons (and like Microsoft's scrollbar arrow buttons)
36141
36142 2004-09-17 10:14  pbartok
36143
36144         * ScrollBar.cs:
36145           - Added missing release of keyboard/mouse capture
36146
36147 2004-09-17 06:18  jordi
36148
36149         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
36150           Theme.cs: Very early menu support
36151
36152 2004-09-16 17:45  pbartok
36153
36154         * XplatUIWin32.cs:
36155           - Fixed sending a window to the front
36156           - Added overload for SetWindowPos to avoid casting
36157
36158 2004-09-16 17:44  pbartok
36159
36160         * Control.cs:
36161           - Added SendToBack and BringToFront methods
36162
36163 2004-09-16 07:00  ravindra
36164
36165         * Copyright: Added Novell URL.
36166
36167 2004-09-16 07:00  ravindra
36168
36169         * ToolBar.cs: Invalidate should be done before redrawing.
36170
36171 2004-09-15 21:19  ravindra
36172
36173         * ColumnHeaderStyle.cs: Enum for ListView Control.
36174
36175 2004-09-15 21:18  ravindra
36176
36177         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
36178           ListView Control.
36179
36180 2004-09-13 18:26  jackson
36181
36182         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
36183           properly
36184
36185 2004-09-13 18:13  jackson
36186
36187         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
36188           a second thread and post messages into the main threads message
36189           queue. This makes timing much more consistent. Both win2K and XP
36190           have a minimum timer value of 15 milliseconds, so we now do this
36191           too.
36192
36193 2004-09-13 15:18  pbartok
36194
36195         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
36196           XplatUIX11.cs:
36197           - Added Z-Ordering methods
36198
36199 2004-09-13 10:56  pbartok
36200
36201         * Form.cs:
36202           - Fixed #region names
36203           - Moved properties and methods into their proper #regions
36204
36205 2004-09-13 10:51  pbartok
36206
36207         * Form.cs:
36208           - Added Accept and CancelButton properties
36209           - Added ProcessDialogKey() method
36210
36211 2004-09-13 08:18  pbartok
36212
36213         * IWindowTarget.cs:
36214           - Initial check-in
36215
36216 2004-09-10 21:50  pbartok
36217
36218         * Control.cs:
36219           - Added DoDragDrop() [incomplete]
36220           - Properly implemented 'Visible' handling
36221           - Added SetVisibleCore()
36222           - Implemented FindChildAtPoint()
36223           - Implemented GetContainerControl()
36224           - Implemented Hide()
36225
36226 2004-09-10 19:28  pbartok
36227
36228         * Control.cs:
36229           - Moved methods into their appropriate #regions
36230           - Reordered methods within regions alphabetically
36231
36232 2004-09-10 18:57  pbartok
36233
36234         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
36235           - Added method to retrieve text from window
36236
36237 2004-09-10 18:56  pbartok
36238
36239         * Control.cs:
36240           - Moved some internal functions into the internal region
36241           - Implemented FontHeight
36242           - Implemented RenderRightToLeft
36243           - Implemented ResizeRedraw
36244           - Implemented ShowFocusCues
36245           - Implemented ShowKeyboardCues
36246           - Implemented FromChildHandle
36247           - Implemented FromHandle
36248           - Implemented IsMnemonic
36249           - Implemented ReflectMessage
36250           - All public and protected Static Methods are now complete
36251
36252 2004-09-10 16:54  pbartok
36253
36254         * Control.cs:
36255           - Implemented remaining missing public instance properties
36256           - Alphabetized some out of order properties
36257
36258 2004-09-10 05:51  ravindra
36259
36260         * PictureBox.cs: Added a check for null image.
36261
36262 2004-09-10 00:59  jordi
36263
36264         * GroupBox.cs: remove cvs tag
36265
36266 2004-09-09 05:25  ravindra
36267
36268         * ToolBar.cs: Make redraw accessible from ToolBarButton.
36269
36270 2004-09-09 05:23  ravindra
36271
36272         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
36273           parent redraw.
36274
36275 2004-09-09 02:28  pbartok
36276
36277         * ThemeWin32Classic.cs:
36278           - Improve disabled string look
36279
36280 2004-09-09 01:15  jordi
36281
36282         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
36283           args and handler
36284
36285 2004-09-08 23:56  ravindra
36286
36287         * ItemBoundsPortion.cs: It's enum, not a class!
36288
36289 2004-09-08 23:47  ravindra
36290
36291         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
36292           Enums for Form.
36293
36294 2004-09-08 21:13  ravindra
36295
36296         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
36297           ListView control.
36298
36299 2004-09-08 21:03  ravindra
36300
36301         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
36302           avoid crash.
36303
36304 2004-09-08 21:01  ravindra
36305
36306         * ScrollableControl.cs: Removed unreachable code.
36307
36308 2004-09-08 06:45  jordi
36309
36310         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
36311
36312 2004-09-08 01:00  jackson
36313
36314         * XplatUIX11.cs: Only run the timers when updating the message
36315           queue. This effectively gives X messages a higher priority then
36316           timer messages. Timers still need love though
36317
36318 2004-09-07 14:01  jackson
36319
36320         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
36321           this for us and the handle is no longer valid.
36322
36323 2004-09-07 13:59  jackson
36324
36325         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
36326           loop that manages to not crash. TODO: Add poll and cleanup timers
36327
36328 2004-09-07 11:12  jordi
36329
36330         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
36331
36332 2004-09-07 03:40  jordi
36333
36334         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
36335           fixes, methods, multiple links
36336
36337 2004-09-06 06:55  jordi
36338
36339         * Control.cs: Caches ClientRectangle rectangle value
36340
36341 2004-09-05 02:03  jordi
36342
36343         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
36344           certain situations
36345
36346 2004-09-04 11:10  jordi
36347
36348         * Label.cs: Refresh when font changed
36349
36350 2004-09-02 16:24  pbartok
36351
36352         * Control.cs:
36353           - Added sanity check to creation of double buffer bitmap
36354
36355 2004-09-02 16:24  pbartok
36356
36357         * ButtonBase.cs:
36358           - Fixed selection of text color
36359           - Fixed handling of resize event; now properly recreates double
36360             buffering bitmap
36361           - Added missing assignment of TextAlignment
36362           - Added proper default for TextAlignment
36363
36364 2004-09-02 14:26  pbartok
36365
36366         * RadioButton.cs:
36367           - Added missing RadioButton.RadioButtonAccessibleObject class
36368
36369 2004-09-02 14:26  pbartok
36370
36371         * Control.cs:
36372           - Added missing Control.ControlAccessibleObject class
36373           - Started to implement Select()ion mechanisms, still very incomplete
36374
36375 2004-09-02 14:25  pbartok
36376
36377         * AccessibleObject.cs:
36378           - Added missing methods
36379
36380 2004-09-02 14:23  pbartok
36381
36382         * AccessibleNavigation.cs, AccessibleSelection.cs:
36383           - Initial check-in
36384
36385 2004-09-02 10:32  jordi
36386
36387         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
36388           pool for pens, brushes, and hatchbruses
36389
36390 2004-09-01 15:30  jackson
36391
36392         * StatusBar.cs: Fix typo
36393
36394 2004-09-01 14:44  pbartok
36395
36396         * RadioButton.cs:
36397           - Fixed state
36398
36399 2004-09-01 14:39  pbartok
36400
36401         * Button.cs, RadioButton.cs:
36402           - Functional initial check-in
36403
36404 2004-09-01 14:01  pbartok
36405
36406         * CheckBox.cs:
36407           - Added missing default
36408           - Added missing region mark
36409
36410 2004-09-01 09:10  jordi
36411
36412         * Label.cs: fixes method signatures, new methods, events, fixes
36413           autosize
36414
36415 2004-09-01 07:19  jordi
36416
36417         * Control.cs: Init string variables with an empty object
36418
36419 2004-09-01 04:20  jordi
36420
36421         * Control.cs: fires OnFontChanged event
36422
36423 2004-08-31 20:07  pbartok
36424
36425         * ButtonBase.cs:
36426           - Enabled display of strings
36427
36428 2004-08-31 20:05  pbartok
36429
36430         * Form.cs:
36431           - Added (partial) implementation of DialogResult; rest needs to be
36432             implemented when the modal loop code is done
36433
36434 2004-08-31 19:55  pbartok
36435
36436         * CheckBox.cs:
36437           - Fixed to match the removal of the needs_redraw concept
36438
36439 2004-08-31 19:55  pbartok
36440
36441         * ButtonBase.cs:
36442           - Removed the rather odd split between 'needs redraw' and redrawing
36443           - Now handles the events that require regeneration (ambient
36444             properties and size)
36445
36446 2004-08-31 19:41  pbartok
36447
36448         * Control.cs:
36449           - Added firing of BackColorChanged event
36450           - Added TopLevelControl property
36451           - Fixed handling of WM_ERASEBKGRND message
36452
36453 2004-08-31 12:49  pbartok
36454
36455         * ButtonBase.cs:
36456           - Removed debug
36457           - Minor fixes
36458
36459 2004-08-31 12:48  pbartok
36460
36461         * CheckBox.cs:
36462           - Finished (famous last words)
36463
36464 2004-08-31 04:35  jordi
36465
36466         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
36467           scrolling bugs, adds new methods
36468
36469 2004-08-30 14:42  pbartok
36470
36471         * CheckBox.cs:
36472           - Implemented CheckBox drawing code
36473
36474 2004-08-30 14:42  pbartok
36475
36476         * ButtonBase.cs:
36477           - Made Redraw() and CheckRedraw() virtual
36478           - Improved mouse up/down/move logic to properly track buttons
36479
36480 2004-08-30 09:44  pbartok
36481
36482         * CheckBox.cs:
36483           - Updated to fix broken build. Not complete yet.
36484
36485 2004-08-30 09:28  pbartok
36486
36487         * CheckState.cs:
36488           - Initial checkin
36489
36490 2004-08-30 09:17  pbartok
36491
36492         * Appearance.cs:
36493           - Initial check-in
36494
36495 2004-08-27 16:12  ravindra
36496
36497         * ToolBarButton.cs: Added TypeConverter attribute.
36498
36499 2004-08-27 16:07  ravindra
36500
36501         * ImageIndexConverter.cs: Implemented.
36502
36503 2004-08-27 14:17  pbartok
36504
36505         * Control.cs:
36506           - Removed unneeded stack vars
36507           - First attempt to fix sizing issues when layout is suspended
36508
36509 2004-08-25 15:35  jordi
36510
36511         * ScrollBar.cs: more fixes to scrollbar
36512
36513 2004-08-25 14:04  ravindra
36514
36515         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
36516           Added the missing divider code and grip for ToolBar Control.
36517
36518 2004-08-25 13:20  pbartok
36519
36520         * Control.cs:
36521           - Control now properly passes the ambient background color to child
36522             controls
36523
36524 2004-08-25 13:20  jordi
36525
36526         * ScrollBar.cs: small bug fix regarding bar position
36527
36528 2004-08-25 12:33  pbartok
36529
36530         * Timer.cs:
36531           - Now only calls SetTimer or KillTimer if the enabled state has
36532           changed
36533
36534 2004-08-25 12:33  pbartok
36535
36536         * XplatUIWin32.cs:
36537           - Fixed timer handling, now seems to work
36538           - Improved error message for window creation
36539
36540 2004-08-25 12:32  pbartok
36541
36542         * Control.cs:
36543           - Fixed generation of MouseUp message
36544
36545 2004-08-25 12:29  jordi
36546
36547         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
36548           and fixes for progressbar
36549
36550 2004-08-24 18:43  ravindra
36551
36552         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
36553           in ToolBar control.
36554
36555 2004-08-24 17:15  pbartok
36556
36557         * Panel.cs:
36558           - Added #region
36559           - Added missing events
36560           - Alphabetized
36561
36562 2004-08-24 17:14  pbartok
36563
36564         * StatusBar.cs, PictureBox.cs:
36565           - Now uses Control's CreateParams
36566
36567 2004-08-24 16:36  pbartok
36568
36569         * XplatUIX11.cs:
36570           - Fixed background color handling
36571           - Fixed sending of enter/leave events on a grab
36572
36573 2004-08-24 16:35  pbartok
36574
36575         * X11Structs.cs:
36576           - Refined definitions for CrossingEvent
36577
36578 2004-08-24 12:37  jordi
36579
36580         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
36581           formmating, methods signature, and adds missing events
36582
36583 2004-08-24 12:24  jordi
36584
36585         * Control.cs: fire OnEnabledChanged event
36586
36587 2004-08-24 11:17  pbartok
36588
36589         * XplatUIWin32.cs:
36590           - Implemented SetTimer() and KillTimer()
36591
36592 2004-08-24 11:16  pbartok
36593
36594         * XplatUIX11.cs:
36595           - Now uses Remove instead of Add to kill the timer
36596
36597 2004-08-24 10:16  jackson
36598
36599         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
36600           picture boxes in the theme now. Draw picture box borders and obey
36601           sizing modes
36602
36603 2004-08-24 05:49  jackson
36604
36605         * Timer.cs: Remove top secret debugging code
36606
36607 2004-08-24 05:34  jackson
36608
36609         * PictureBox.cs: Temp hack to make picture boxes draw their full
36610           image
36611
36612 2004-08-24 05:29  jackson
36613
36614         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
36615           XplatUIX11.cs: Move timers to the driver level. On X they are
36616           queued by the driver and checked on idle.
36617
36618 2004-08-24 01:07  jackson
36619
36620         * XplatUIX11.cs: Use a queue for async messages instead of passing
36621           them as ClientMessages since that was totally broken. Also simply
36622           check for events and return an idle message if none are found. This
36623           gives us an idle handler, and prevents deadlocking when no messages
36624           are in the queue.
36625
36626 2004-08-23 18:19  ravindra
36627
36628         * XplatUIWin32.cs: Removed the unwanted destructor.
36629
36630 2004-08-23 17:27  pbartok
36631
36632         * ButtonBase.cs:
36633           - Finishing touches. Works now, just needs some optimizations.
36634
36635 2004-08-23 16:53  jordi
36636
36637         * ScrollBar.cs: small fix
36638
36639 2004-08-23 16:45  pbartok
36640
36641         * Application.cs:
36642           - Removed debug output
36643           - Simplifications
36644
36645 2004-08-23 16:43  jordi
36646
36647         * ScrollBar.cs: [no log message]
36648
36649 2004-08-23 16:10  pbartok
36650
36651         * Form.cs:
36652           - Fixed handling of WM_CLOSE message
36653           - Removed debug output
36654
36655 2004-08-23 16:09  pbartok
36656
36657         * Application.cs:
36658           - Added handling of Idle event
36659           - Added handling of form closing
36660           - Fixed reporting of MessageLoop property
36661           - Removed some unneeded code, should provide a bit of a speedup
36662
36663 2004-08-23 15:22  pbartok
36664
36665         * Control.cs:
36666           - Added InitLayout() method
36667           - Added code to properly perform layout when Anchor or Dock property
36668             is changed
36669           - Changed 'interpretation' of ResumeLayout. MS seems to have a
36670             LAMESPEC, tried to do it in a way that makes sense
36671
36672 2004-08-23 14:10  jordi
36673
36674         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
36675           properties and methods
36676
36677 2004-08-23 13:55  pbartok
36678
36679         * Control.cs:
36680           - Properly fixed Jordi's last fix
36681           - Now uses Cursor's Position property instead of calling XplatUI
36682           directly
36683
36684 2004-08-23 13:44  jordi
36685
36686         * PaintEventHandler.cs: Adding missing attribute
36687
36688 2004-08-23 13:39  pbartok
36689
36690         * Cursor.cs:
36691           - Implemented Position property
36692
36693 2004-08-23 13:39  pbartok
36694
36695         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
36696           - Added method to move mouse cursor
36697
36698 2004-08-23 13:39  pbartok
36699
36700         * XplatUIX11.cs:
36701           - Fixed setting of background color
36702           - Added method to move mouse cursor
36703
36704 2004-08-23 13:16  jordi
36705
36706         * Control.cs: avoids null exception
36707
36708 2004-08-22 17:46  jackson
36709
36710         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
36711           PictureBox
36712
36713 2004-08-22 17:40  jackson
36714
36715         * XplatUIX11.cs: Add some missing locks
36716
36717 2004-08-22 15:10  pbartok
36718
36719         * Control.cs, Form.cs:
36720           - Removed OverlappedWindow style from Control, instead it's default
36721             now is child
36722           - Made form windows OverlappedWindow by default
36723
36724 2004-08-22 13:34  jackson
36725
36726         * ScrollBar.cs: Update the position through the Value property so
36727           the OnValueChanged event is raised.
36728
36729 2004-08-22 12:04  pbartok
36730
36731         * SWF.csproj:
36732           - Added Cursor.cs and UserControl.cs
36733
36734 2004-08-22 12:03  pbartok
36735
36736         * Cursor.cs:
36737           - Started implementation, not usable yet
36738
36739 2004-08-22 12:00  pbartok
36740
36741         * UserControl.cs:
36742           - Implemented UserControl (complete)
36743
36744 2004-08-21 19:20  ravindra
36745
36746         * ToolBar.cs: Correcting the formatting mess of VS.NET.
36747
36748 2004-08-21 18:49  ravindra
36749
36750         * ToolBar.cs: Probably this completes the missing attributes in
36751           toolbar control.
36752
36753 2004-08-21 18:03  ravindra
36754
36755         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
36756           Fixed toolbar control signatures.
36757
36758 2004-08-21 16:32  pbartok
36759
36760         * LinkLabel.cs:
36761           - Signature Fixes
36762
36763 2004-08-21 16:30  pbartok
36764
36765         * Label.cs:
36766           - Signature fixes
36767
36768 2004-08-21 16:19  pbartok
36769
36770         * Control.cs, Label.cs:
36771           - Signature fixes
36772
36773 2004-08-21 15:57  pbartok
36774
36775         * ButtonBase.cs:
36776           - Added loads of debug output for development
36777           - Fixed typo in method name
36778
36779 2004-08-21 15:52  pbartok
36780
36781         * ToolBarButtonClickEventArgs.cs:
36782           - Added missing base class
36783
36784 2004-08-21 14:53  pbartok
36785
36786         * Control.cs:
36787           - Updated to match new GrabWindow signature
36788
36789 2004-08-21 14:51  pbartok
36790
36791         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
36792           - Added method to get default display size
36793
36794 2004-08-21 14:23  pbartok
36795
36796         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
36797           - Added method to query current grab state
36798           - Added argument to allow confining a grab to a window
36799
36800 2004-08-21 14:22  pbartok
36801
36802         * Keys.cs:
36803           - Added [Flags] attribute so that modifiers can be used in bitwise
36804           ops
36805
36806 2004-08-21 14:21  pbartok
36807
36808         * TrackBar.cs, ScrollBar.cs:
36809           - Replaced direct XplatUI calls with their Control counterpart
36810
36811 2004-08-21 13:32  pbartok
36812
36813         * Control.cs:
36814           - Implemented Created property
36815
36816 2004-08-21 13:28  pbartok
36817
36818         * Control.cs:
36819           - Implemented ContainsFocus
36820
36821 2004-08-21 13:26  pbartok
36822
36823         * Control.cs:
36824           - Implemented CausesValidation
36825
36826 2004-08-21 13:21  pbartok
36827
36828         * Control.cs:
36829           - Implemented CanFocus
36830           - Implemented CanSelect
36831           - Implemented Capture
36832
36833 2004-08-21 12:35  pbartok
36834
36835         * XplatUIWin32.cs:
36836           - Fixed bug with Async message handling
36837           - Implemented getting the ModifierKeys
36838
36839 2004-08-21 12:32  jackson
36840
36841         * AsyncMethodResult.cs: Make sure we have the mutex before we
36842           release it. Fixes BeginInvoke on windows
36843
36844 2004-08-21 11:31  pbartok
36845
36846         * XplatUIWin32.cs, XplatUIX11.cs:
36847           - Drivers now return proper mouse state
36848
36849 2004-08-21 10:54  jackson
36850
36851         * Control.cs: Implement EndInvoke
36852
36853 2004-08-21 10:48  jackson
36854
36855         * Timer.cs: Remove unneeded finalizer
36856
36857 2004-08-20 19:52  ravindra
36858
36859         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
36860           in mouse event handling in the ToolBar control.
36861
36862 2004-08-20 19:50  ravindra
36863
36864         * ImageList.cs: Changed draw method to use the arguments passed in
36865           to draw the image.
36866
36867 2004-08-20 18:58  pbartok
36868
36869         * XplatUIStructs.cs:
36870           - Added private message for async communication
36871
36872 2004-08-20 17:38  ravindra
36873
36874         * Control.cs: Made RightToLeft property virtual and removed a
36875           Console.WriteLine.
36876
36877 2004-08-20 14:39  jordi
36878
36879         * ThemeGtk.cs: use style_attach
36880
36881 2004-08-20 14:39  pbartok
36882
36883         * XplatUIWin32.cs:
36884           - Added jackson's Async code from X11 to Win32
36885
36886 2004-08-20 14:09  pbartok
36887
36888         * SWF.csproj:
36889           - Added all new files
36890
36891 2004-08-20 14:09  pbartok
36892
36893         * Control.cs:
36894           - Added call to set window background color
36895
36896 2004-08-20 14:03  pbartok
36897
36898         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
36899           - Added method for setting the window background
36900
36901 2004-08-20 14:02  pbartok
36902
36903         * XplatUIWin32.cs:
36904           - Added method for setting the background color
36905           - Added handling for erasing the window background
36906
36907 2004-08-20 13:45  jordi
36908
36909         * TrackBar.cs: fixes timer, new properties and methods
36910
36911 2004-08-20 13:34  jackson
36912
36913         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
36914           correct thread
36915
36916 2004-08-20 13:22  jackson
36917
36918         * Timer.cs: Timer Tick events are now handed through Controls Async
36919           mechanism so the callbacks are executed in the same thread as X
36920
36921 2004-08-20 13:19  jackson
36922
36923         * XplatUIDriver.cs: Expose functionality to send async messages
36924           through the driver
36925
36926 2004-08-20 13:18  jackson
36927
36928         * Control.cs: Implement Begininvoke
36929
36930 2004-08-20 13:14  jackson
36931
36932         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
36933           messages through the driver
36934
36935 2004-08-20 13:12  jackson
36936
36937         * XplatUIX11.cs: Lock before all X operations. Also added Async
36938           method functionality through XSendEvent
36939
36940 2004-08-20 13:11  jackson
36941
36942         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
36943           This will screw up on 64 bit systems)
36944
36945 2004-08-20 13:10  jackson
36946
36947         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
36948           Async messages through X/Win32
36949
36950 2004-08-19 19:39  pbartok
36951
36952         * XplatUIX11.cs:
36953           - Updated code to match new HandleData.DeviceContext type
36954
36955 2004-08-19 19:38  pbartok
36956
36957         * HandleData.cs:
36958           - Made DeviceContext a generic object to allow usage from various
36959           drivers
36960           - Added support for queueing Windows messages
36961
36962 2004-08-19 19:37  pbartok
36963
36964         * XplatUIWin32.cs:
36965           - Added generation of MouseEnter, MouseLeave and MouseHover events
36966           - Added cleanup on EndPaint
36967
36968 2004-08-19 19:17  pbartok
36969
36970         * Control.cs:
36971           - Added handling of WM_MOUSEHOVER
36972           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
36973           code
36974
36975 2004-08-19 18:55  jordi
36976
36977         * ThemeGtk.cs: fixes button order
36978
36979 2004-08-19 18:12  jordi
36980
36981         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
36982
36983 2004-08-19 17:09  pbartok
36984
36985         * Control.cs:
36986           - Added Right property
36987           - Added RightToLeft property
36988
36989 2004-08-19 16:27  jordi
36990
36991         * ThemeGtk.cs: experimental GTK theme support
36992
36993 2004-08-19 16:26  jordi
36994
36995         * ITheme.cs, Theme.cs: move themes from an interface to a class
36996
36997 2004-08-19 16:25  jordi
36998
36999         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
37000           theme enhancaments
37001
37002 2004-08-19 16:04  pbartok
37003
37004         * XplatUIX11.cs:
37005           - Added colormap basics
37006           - Added a way to re-initialize with a different display handle
37007           - Fixed setting of the window background color
37008           - Added various X11 imports related to colors and colormaps
37009
37010 2004-08-19 15:51  pbartok
37011
37012         * X11Structs.cs:
37013           - Removed packing hints (Paolo suggested this a while back)
37014           - fixed colormap type
37015           - Added default Atom types
37016           - Added Screen and color structs and enums
37017
37018 2004-08-19 15:39  pbartok
37019
37020         * ImageList.cs:
37021           - Added missing Draw() method
37022           - Added missing RecreateHandle event
37023
37024 2004-08-19 15:30  pbartok
37025
37026         * Form.cs:
37027           - Added handling of WM_CLOSE
37028
37029 2004-08-18 13:16  jordi
37030
37031         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
37032           a table
37033
37034 2004-08-18 09:56  jordi
37035
37036         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
37037
37038 2004-08-17 15:31  ravindra
37039
37040         * SWF.csproj: Updated project.
37041
37042 2004-08-17 15:25  pbartok
37043
37044         * Control.cs:
37045           - Drawing improvement; don't call UpdateBounds if we are not visible
37046             (or have been minimized)
37047
37048 2004-08-17 15:24  pbartok
37049
37050         * XplatUIWin32.cs:
37051           - Finished IsVisible
37052           - Added Win32GetWindowPlacement
37053
37054 2004-08-17 15:08  jackson
37055
37056         * Panel.cs: Initial checkin of the Panel
37057
37058 2004-08-17 14:25  pbartok
37059
37060         * Control.cs:
37061           - Fixed broken handling of default window sizes
37062
37063 2004-08-17 13:29  jackson
37064
37065         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
37066           has a large startup time.
37067
37068 2004-08-17 10:25  jackson
37069
37070         * HandleData.cs: union areas properly
37071
37072 2004-08-17 10:12  jackson
37073
37074         * HandleData.cs: union areas properly
37075
37076 2004-08-16 20:00  ravindra
37077
37078         * ToolBar.cs, ToolBarButton.cs: Added attributes.
37079
37080 2004-08-16 18:48  ravindra
37081
37082         * ToolBar.cs: Added attributes.
37083
37084 2004-08-16 17:17  ravindra
37085
37086         * SWF.csproj: Updated project.
37087
37088 2004-08-16 17:16  jackson
37089
37090         * XplatUIX11.cs: Check for more expose events before sending a
37091           WM_PAINT so they can all be grouped together. This makes dragging a
37092           window across another window redraw in a sane way.
37093
37094 2004-08-16 15:47  pbartok
37095
37096         * Control.cs:
37097           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
37098             support OnMouseEnter/Leave()
37099           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
37100             exposure handling
37101
37102 2004-08-16 15:46  pbartok
37103
37104         * XplatUIStructs.cs, XplatUIX11.cs:
37105           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
37106           OnMouseEnter/Leave()
37107
37108 2004-08-16 15:34  jackson
37109
37110         * XplatUIX11.cs: Group multiple expose events in HandleData, make
37111           sure messages get the message field set to WM_NULL if they are not
37112           handled.
37113
37114 2004-08-16 15:24  jackson
37115
37116         * HandleData.cs: HandleData is used for storing message information
37117           for window handles
37118
37119 2004-08-15 17:23  ravindra
37120
37121         * ColorDepth.cs: Added attribute.
37122
37123 2004-08-15 17:23  ravindra
37124
37125         * SWF.csproj: Updated project for ToolBar Control.
37126
37127 2004-08-15 17:20  ravindra
37128
37129         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
37130           control and also dos2unix format.
37131
37132 2004-08-15 17:13  ravindra
37133
37134         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
37135           ToolBarButtonClickEventArgs.cs,
37136           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
37137           ToolBarTextAlign.cs: First Implementation of ToolBar control.
37138
37139 2004-08-15 15:31  pbartok
37140
37141         * ButtonBase.cs:
37142           - First (mostly) working version
37143
37144 2004-08-13 16:15  pbartok
37145
37146         * Control.cs:
37147           - Fixed Anchor default
37148
37149 2004-08-13 15:43  pbartok
37150
37151         * Control.cs:
37152           - Changed GetCursorPos signature
37153
37154 2004-08-13 15:42  pbartok
37155
37156         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
37157           - Changed signature for GetCursorPos
37158
37159 2004-08-13 15:25  pbartok
37160
37161         * XplatUIX11.cs:
37162           - Cleanup
37163           - Fixed resizing/exposure handling
37164
37165 2004-08-13 15:22  jordi
37166
37167         * ThemeWin32Classic.cs: removes redundant code and fixes issues
37168           with tickposition
37169
37170 2004-08-13 14:55  jordi
37171
37172         * TrackBar.cs: change from wndproc to events
37173
37174 2004-08-13 13:00  jordi
37175
37176         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
37177           XplatUIX11.cs: implements PointToClient (ScreenToClient)
37178
37179 2004-08-13 12:53  pbartok
37180
37181         * XplatUIWin32.cs:
37182           - Changed GetWindowPos to also provide client area size
37183           - Fixed broken prototypes for several win32 functions
37184
37185 2004-08-13 12:53  pbartok
37186
37187         * XplatUI.cs, XplatUIDriver.cs:
37188           - Changed GetWindowPos to also provide client area size
37189
37190 2004-08-13 12:52  pbartok
37191
37192         * XplatUIX11.cs:
37193           - Added generation of WM_POSCHANGED
37194           - Changed GetWindowPos to also provide client area size
37195
37196 2004-08-13 12:52  pbartok
37197
37198         * Control.cs:
37199           - Added Dispose() and destructor
37200           - Fixed resizing and bounds calculation
37201           - Fixed Layout
37202           - Added memory savings for invisible windows
37203
37204 2004-08-13 12:46  jordi
37205
37206         * TrackBar.cs: adds timer and grap window
37207
37208 2004-08-13 10:25  jackson
37209
37210         * Timer.cs: SWF Timer
37211
37212 2004-08-12 16:59  pbartok
37213
37214         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
37215           - Implemented method to get current mouse position
37216
37217 2004-08-12 14:29  jordi
37218
37219         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
37220           enhancement, fix mouse problems, highli thumb, etc
37221
37222 2004-08-12 13:31  pbartok
37223
37224         * Control.cs:
37225           - Fixed Anchoring bugs
37226
37227 2004-08-12 13:01  jackson
37228
37229         * StatusBar.cs: Don't forget things
37230
37231 2004-08-12 12:54  jackson
37232
37233         * ThemeWin32Classic.cs: Handle owner draw status bars
37234
37235 2004-08-12 12:54  jackson
37236
37237         * StatusBar.cs: Implement missing properties, events, and methods.
37238           Handle mouse clicking
37239
37240 2004-08-12 10:19  jackson
37241
37242         * StatusBarPanelClickEventArgs.cs,
37243           StatusBarPanelClickEventHandler.cs: Classes for handling status
37244           bar panel click events
37245
37246 2004-08-12 10:10  jackson
37247
37248         * Control.cs: Add missing properties
37249
37250 2004-08-12 09:46  pbartok
37251
37252         * BindingsManagerBase.cs:
37253           - Name changed to BindingManagerBase.cs
37254
37255 2004-08-12 09:25  jordi
37256
37257         * ScrollableControl.cs: calls ctrlbase instead of exeception
37258
37259 2004-08-11 16:28  pbartok
37260
37261         * InputLanguageChangingEventArgs.cs:
37262           - Never check in before compiling. Fixes the last check-in
37263
37264 2004-08-11 16:26  pbartok
37265
37266         * InputLanguageChangingEventArgs.cs:
37267           - More signature fixes
37268
37269 2004-08-11 16:20  pbartok
37270
37271         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
37272           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
37273           ImageListStreamer.cs, InputLanguage.cs,
37274           InputLanguageChangedEventArgs.cs,
37275           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
37276           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
37277           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
37278           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
37279           - Signature fixes
37280
37281 2004-08-11 16:16  pbartok
37282
37283         * Application.cs:
37284           - Fixed Signature
37285           - Added .Net 1.1 method
37286
37287 2004-08-11 15:25  pbartok
37288
37289         * SWF.csproj:
37290           - Fixed BindingManagerBase.cs filename
37291
37292 2004-08-11 15:22  pbartok
37293
37294         * BindingManagerBase.cs:
37295           - Was checked in with wrong filename
37296
37297 2004-08-11 14:50  pbartok
37298
37299         * SWF.csproj:
37300           - Updated
37301
37302 2004-08-11 13:41  jordi
37303
37304         * XplatUIWin32.cs: Fixes ClientRect
37305
37306 2004-08-11 13:19  pbartok
37307
37308         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
37309           XplatUIX11.cs:
37310           - We had SetWindowPos and MoveWindow to set window positions and
37311             size, removed MoveWindow. We have GetWindowPos, so it made sense to
37312             keep SetWindowPos as matching counterpart
37313           - Added some X11 sanity checking
37314
37315 2004-08-11 12:59  pbartok
37316
37317         * Control.cs:
37318           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
37319             (It seems that SetBounds is just a front for SetBoundsCore and
37320              SetBoundsCore updates the underlying window system and
37321              UpdateBounds is responsible for updating the variables associated
37322              with the Control and sending the events)
37323           - Major cleanup of Size handling; we now have two sizes, client_size
37324             and bounds. Bounds defines the window with decorations, client_size
37325             without them.
37326
37327 2004-08-11 12:55  pbartok
37328
37329         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
37330           - Added method to calculate difference between decorated window and
37331             raw client area
37332
37333 2004-08-11 12:54  pbartok
37334
37335         * Label.cs:
37336           - Forcing redraw on resize
37337
37338 2004-08-11 11:43  pbartok
37339
37340         * ImageList.cs:
37341           - Removed disposing of the actual images when the list is disposed
37342
37343 2004-08-11 09:13  pbartok
37344
37345         * Control.cs:
37346           - Now properly reparents windows
37347
37348 2004-08-11 08:37  pbartok
37349
37350         * Control.cs:
37351           - Duh!
37352
37353 2004-08-11 07:47  pbartok
37354
37355         * Control.cs:
37356           - Rewrote the collection stuff. Might not be as fast now, not
37357             keeping the number of children around and accessible directly, but
37358             it's more straightforward
37359
37360 2004-08-11 07:44  pbartok
37361
37362         * AccessibleObject.cs:
37363           - Fixed to match ControlCollection rewrite
37364
37365 2004-08-11 07:43  pbartok
37366
37367         * ImageList.cs:
37368           - Added missing creation of the collection list
37369
37370 2004-08-10 20:08  jackson
37371
37372         * StatusBar.cs: Get the paint message from WndProc
37373
37374 2004-08-10 19:31  jackson
37375
37376         * ThemeWin32Classic.cs: Create Brushes as little as possible
37377
37378 2004-08-10 19:20  jackson
37379
37380         * UICues.cs: Add Flags attribute
37381
37382 2004-08-10 19:19  jackson
37383
37384         * StatusBarPanel.cs: Signature cleanup
37385
37386 2004-08-10 19:10  jackson
37387
37388         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
37389           Initial implementation of status bar item drawing
37390
37391 2004-08-10 17:27  jordi
37392
37393         * TrackBar.cs: add missing methods, properties, and restructure to
37394           hide extra ones
37395
37396 2004-08-10 16:24  jackson
37397
37398         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
37399           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
37400           attribute
37401
37402 2004-08-10 13:21  jordi
37403
37404         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
37405           enhancements and standarize on win colors defaults
37406
37407 2004-08-10 12:52  jackson
37408
37409         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
37410           ThemeWin32Classic.cs: Implement DrawItem functionality
37411
37412 2004-08-10 12:47  jordi
37413
37414         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
37415
37416 2004-08-10 12:32  jordi
37417
37418         * Control.cs: throw ontextchange event
37419
37420 2004-08-10 11:43  pbartok
37421
37422         * Control.cs:
37423           - Added more to the still unfinished Dock/Anchor layout code
37424
37425 2004-08-10 11:39  pbartok
37426
37427         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
37428           - Added GetWindowPos method
37429
37430 2004-08-10 11:36  pbartok
37431
37432         * XplatUIWin32.cs:
37433           - Implemented several methods
37434
37435 2004-08-10 09:47  jackson
37436
37437         * TrackBar.cs: Allow control to handle buffering
37438
37439 2004-08-10 09:41  jackson
37440
37441         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
37442
37443 2004-08-10 09:24  jackson
37444
37445         * Label.cs, LinkLabel.cs: Let Control handle buffering.
37446
37447 2004-08-10 09:09  jackson
37448
37449         * StatusBar.cs: Let Control handle all the buffering.
37450
37451 2004-08-10 09:08  jackson
37452
37453         * Control.cs: Control will now handle the buffering code, so each
37454           control does not have to implement this.
37455
37456 2004-08-10 08:34  jackson
37457
37458         * XplatUIDriver.cs: Use default colors from the theme
37459
37460 2004-08-09 17:12  pbartok
37461
37462         * ImageList.cs:
37463           - Fixed several bugs Ravindra pointed out
37464
37465 2004-08-09 16:11  pbartok
37466
37467         * Control.cs:
37468           - Added incomplete dock layout code
37469           - Added support for mouse wheel
37470
37471 2004-08-09 16:09  pbartok
37472
37473         * XplatUIX11.cs:
37474           - Added handling for middle and right mousebutton
37475           - Added handling for mouse wheel
37476           - Added handling for key state and mouse state and position
37477           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
37478           messages
37479
37480 2004-08-09 15:40  jackson
37481
37482         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
37483           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
37484           checkin
37485
37486 2004-08-09 15:37  jackson
37487
37488         * StatusBar.cs: Initial implementation of StatusBar
37489
37490 2004-08-09 15:36  jackson
37491
37492         * ITheme.cs: Add support for drawing status bar and getting status
37493           bar item sizes
37494
37495 2004-08-09 15:35  pbartok
37496
37497         * MouseButtons.cs:
37498           - Fixed values
37499
37500 2004-08-09 15:34  jackson
37501
37502         * ThemeWin32Classic.cs: Add support for drawing status bar and get
37503           status bar item sizes
37504
37505 2004-08-09 15:21  jackson
37506
37507         * ThemeWin32Classic.cs: Use known colors for default control
37508           colours
37509
37510 2004-08-09 15:12  jackson
37511
37512         * ThemeWin32Classic.cs: Make the default font static, it is static
37513           in control so this doesn't change functionality and creating fonts
37514           is sloooooow.
37515
37516 2004-08-09 14:56  pbartok
37517
37518         * X11Structs.cs:
37519           - Added GrabMode enum
37520
37521 2004-08-09 14:55  pbartok
37522
37523         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
37524           - Removed Run method, was only required for initial development
37525
37526 2004-08-09 14:51  pbartok
37527
37528         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
37529           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
37530           capture
37531
37532 2004-08-09 13:48  pbartok
37533
37534         * XplatUIX11.cs:
37535           - Fixed default sizing for child windows
37536
37537 2004-08-09 12:56  pbartok
37538
37539         * XplatUIX11.cs:
37540           - Added generation of WM_DESTROY message
37541           - Added handling of window manager induced shutdown
37542
37543 2004-08-09 11:31  jackson
37544
37545         * ThemeWin32Classic.cs: New names for control properties
37546
37547 2004-08-09 11:25  jackson
37548
37549         * Control.cs: Use new color names
37550
37551 2004-08-09 11:02  jackson
37552
37553         * XplatUI.cs: Get default window properties from the theme
37554
37555 2004-08-09 11:01  jackson
37556
37557         * ITheme.cs: The theme engine now controls default window
37558           properties
37559
37560 2004-08-09 11:00  jackson
37561
37562         * ThemeWin32Classic.cs: Add default window color properties
37563
37564 2004-08-09 10:17  jackson
37565
37566         * ThemeWin32Classic.cs: Use correct default back color
37567
37568 2004-08-09 10:05  jackson
37569
37570         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
37571           the theme now.
37572
37573 2004-08-09 09:56  jackson
37574
37575         * XplatUI.cs: Remove defaults, these are handled by the theme now.
37576
37577 2004-08-09 09:54  jackson
37578
37579         * Control.cs: Get default properties from the theme.
37580
37581 2004-08-09 09:53  jackson
37582
37583         * ITheme.cs: Themes now handle default control properties
37584
37585 2004-08-09 09:53  jackson
37586
37587         * ThemeWin32Classic.cs: Themes now handle default control
37588           properties so coloring will be consistent
37589
37590 2004-08-08 16:54  jordi
37591
37592         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
37593
37594 2004-08-08 15:08  jordi
37595
37596         * XplatUIX11.cs: fixes keyboard crash
37597
37598 2004-08-08 13:47  jordi
37599
37600         * Label.cs: add cvs header info
37601
37602 2004-08-08 12:09  jackson
37603
37604         * ThemeWin32Classic.cs: Add pen_buttonface
37605
37606 2004-08-08 11:52  jordi
37607
37608         * Label.cs, LinkLabel.cs: [no log message]
37609
37610 2004-08-08 11:34  jordi
37611
37612         * ThemeWin32Classic.cs: Use Windows Standard Colours
37613
37614 2004-08-07 17:32  jordi
37615
37616         * TrackBar.cs: throw exceptions of invalid enums values
37617
37618 2004-08-07 17:31  jordi
37619
37620         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
37621           draw method name
37622
37623 2004-08-07 16:56  jackson
37624
37625         * HorizontalAlignment.cs: Initial checkin
37626
37627 2004-08-07 13:16  jordi
37628
37629         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
37630           methods
37631
37632 2004-08-07 13:05  jordi
37633
37634         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
37635           GetSysColor defines
37636
37637 2004-08-06 18:01  pbartok
37638
37639         * ThemeWin32Classic.cs:
37640           - Fixed some rounding issues with float/int
37641
37642 2004-08-06 18:00  jackson
37643
37644         * DockStyle.cs, AnchorStyles.cs:
37645
37646                   Add flags and serializable attributes.
37647
37648 2004-08-06 17:46  pbartok
37649
37650         * XplatUIX11.cs:
37651           - Implemented GetParent
37652
37653 2004-08-06 17:18  pbartok
37654
37655         * TrackBar.cs:
37656           - Fixed some rounding issues with float/int
37657
37658 2004-08-06 17:17  pbartok
37659
37660         * X11Structs.cs, XplatUIX11.cs:
37661           - Fixed Refresh and Invalidate
37662
37663 2004-08-06 15:30  pbartok
37664
37665         * Control.cs, X11Structs.cs, XplatUIX11.cs:
37666           - Fixed recursive loop when resizing
37667           - Improved/fixed redrawing on expose messages
37668
37669 2004-08-06 09:53  jordi
37670
37671         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
37672           keyboard navigation
37673
37674 2004-08-06 08:02  pbartok
37675
37676         * X11Structs.cs, XplatUIX11.cs:
37677           - Fixed reparenting
37678           - Fixed window border creation
37679
37680 2004-08-05 15:38  pbartok
37681
37682         * XplatUIX11.cs:
37683           - Attempted fix for reparenting problems
37684
37685 2004-08-04 15:14  pbartok
37686
37687         * Control.cs:
37688           - Fixed Invalidation bug (calculated wrong client area)
37689           - Added ClientSize setter
37690
37691 2004-08-04 15:13  pbartok
37692
37693         * Form.cs:
37694           - Added AutoScale properties
37695
37696 2004-08-04 15:13  pbartok
37697
37698         * SWF.csproj:
37699           - Added latest files
37700
37701 2004-08-04 14:11  pbartok
37702
37703         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
37704           XplatUIX11.cs:
37705           - Added Invalidate handling
37706
37707 2004-08-03 17:09  jordi
37708
37709         * XplatUIDriver.cs: fixes spelling mistake
37710
37711 2004-07-27 09:53  jordi
37712
37713         * TrackBar.cs: fixes trackbar events, def classname, methods
37714           signature
37715
37716 2004-07-27 09:29  jordi
37717
37718         * ScrollBar.cs: fixes scrollbar events
37719
37720 2004-07-27 04:38  jordi
37721
37722         * Control.cs: changes to be able to run winforms samples
37723
37724 2004-07-26 11:42  jordi
37725
37726         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
37727           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
37728
37729 2004-07-26 05:41  jordi
37730
37731         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
37732           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
37733           implementation
37734
37735 2004-07-22 09:22  jordi
37736
37737         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
37738           check link overlapping, implement events, and fixes
37739
37740 2004-07-21 10:28  jordi
37741
37742         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
37743
37744 2004-07-21 10:19  jordi
37745
37746         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
37747           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
37748           LinkLabelLinkClickedEventArgs.cs,
37749           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
37750           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
37751           implementation
37752
37753 2004-07-19 13:09  jordi
37754
37755         * Control.cs, Label.cs: label control re-written: added missing
37756           functionlity, events, and properties
37757
37758 2004-07-19 10:49  jordi
37759
37760         * Control.cs: fixes SetBounds logic
37761
37762 2004-07-19 01:29  jordi
37763
37764         * Control.cs: Call RefreshWindow only if the window has created
37765
37766 2004-07-15 14:05  pbartok
37767
37768         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
37769           - Implemented ImageList and ImageList.ImageCollection classes
37770           - Added ColorDepth enumeration
37771           - Updated SWF VS.Net project
37772
37773 2004-07-15 11:06  jordi
37774
37775         * XplatUIStructs.cs: added MsgButons enum
37776
37777 2004-07-15 11:03  jordi
37778
37779         * Control.cs: added basic mouse handeling events
37780
37781 2004-07-15 03:38  jordi
37782
37783         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
37784           Vertical TrackBar control implementation
37785
37786 2004-07-13 09:33  jordi
37787
37788         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
37789
37790 2004-07-13 09:31  jordi
37791
37792         * Control.cs, Form.cs: commit: new properties and fixes form size
37793           problems
37794
37795 2004-07-09 14:13  miguel
37796
37797         * ProgressBar.cs: Spelling
37798
37799 2004-07-09 11:25  pbartok
37800
37801         * ProgressBar.cs:
37802           - Removed usage of Rectangle for drawing. Miguel pointed out it's
37803           faster
37804
37805 2004-07-09 11:17  miguel
37806
37807         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
37808
37809                 * ProgressBar.cs: Fixed spelling for `block'
37810
37811                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
37812                 style guidelines.
37813
37814                 Avoid using the += on rect.X, that exposed a bug in the compiler.
37815
37816 2004-07-08 23:21  pbartok
37817
37818         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
37819           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
37820           BaseCollection.cs, Binding.cs, BindingContext.cs,
37821           BindingMemberInfo.cs, BindingsCollection.cs,
37822           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
37823           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
37824           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
37825           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
37826           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
37827           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
37828           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
37829           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
37830           FrameStyle.cs, GiveFeedbackEventArgs.cs,
37831           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
37832           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
37833           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
37834           InputLanguageChangedEventArgs.cs,
37835           InputLanguageChangedEventHandler.cs,
37836           InputLanguageChangingEventArgs.cs,
37837           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
37838           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
37839           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
37840           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
37841           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
37842           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
37843           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
37844           QueryAccessibilityHelpEventArgs.cs,
37845           QueryAccessibilityHelpEventHandler.cs,
37846           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
37847           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
37848           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
37849           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
37850           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
37851           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
37852           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
37853           XplatUIX11.cs, lang.cs:
37854           - Initial check-in
37855
37856