2008-05-02 George Giolfan <georgegiolfan@yahoo.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
2
3         * Theme.cs, ThemeWin32Classic.cs, TreeView.cs: Refactored:
4         Moved TreeView.DrawNodePlusMinus to Theme.TreeViewDrawNodePlusMinus.
5
6 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7
8         * OpenFileDialog.cs: Implement 2.0 SP1 stuffs.
9
10 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
11
12         * FileDialogCustomPlace.cs, FileDialogCustomPlacesCollection.cs:
13         Implement 2.0 SP1 stuffs.
14
15 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
16
17         * FileDialog.cs: Implement 2.0 SP1 stuffs.
18
19 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
20
21         * Control.cs, ContainerControl.cs, DataGridView.cs, TextBoxBase.cs:
22         Implement CanEnableIme property. (2.0 SP1)
23
24 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
25
26         * BindingManagerBase.cs, PropertyManager.cs: Hide GetItemProperties
27         from the 2.0 API.
28
29 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
30
31         * Control.cs: Provide an internal way for a control to override
32         the setting of Height.
33         * DateTimePicker.cs: Remove SetBoundsCore from 2.0 profile,
34         set height using new method.
35
36 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
37
38         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawMixedCheckBox.
39
40 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
41
42         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
43         ControlPaint.DrawMixedCheckBox now calls Theme.CPDrawMixedCheckBox.
44
45 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
46
47         * ThemeVisualStyles.cs: Added support for StatusBar.
48
49 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
50
51         * DataObject.cs: Add the other IDataObject interface.
52
53 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
54
55         * ThemeWin32Classic.cs: Refactored: extracted DrawStatusBarBackground,
56         DrawStatusBarSizingGrip, DrawStatusBarPanelBackground.
57
58 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
59
60         * DataGridViewCheckBoxCell.cs, DataGridViewImageCell.cs: Fix parameter names.
61         * ListView.cs: Hide non-public API.
62         * MaskedTextBox.cs: Remove extra attribute.
63
64 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
65
66         * DataGridViewImageCell.cs: Use formatted value instead of value
67         to calculate preferred size.
68
69 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
70
71         * ListBox.cs: Move some initialization around so that selected_indices
72         is not accessed before it is created.
73
74 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
75
76         * InputLanguageCollection.cs: Implement the collection better.
77         [Fixes bug #385506]
78
79 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
80
81         * ToolStripDropDownItem.cs: Get the correct event object for
82         DropDownItemClicked.
83         * ToolStripMenuItem.cs: Raise DropDownItemClicked on our owner.
84         [Fixes bug #385475]
85
86 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
87
88         * DataGridViewRowCollection.cs: We don't currently support shared 
89         rows.  Should fix test failures caused by previous commit.
90
91 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
92
93         * DataGridViewRow.cs: Fixes for cloning the row, ensure header cell's
94         datagridview gets set.  Only paint cells in visible columns.
95         * DataGridViewCell.cs: Draw border after cell content.
96         * DataGridView.cs: Invalidate after setting some properties.  Only
97         use visible columns.  Fit hit test bug with areas in the col/row header
98         area but not in a row or col.  Implement UpdateCell/Row methods.
99
100 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
101
102         * DataGridViewElement.cs: Don't throw NIEX.
103         * DataGridViewColumnHeaderCell.cs: Draw error icons for top left header cells.
104         * DataGridViewColumnDesignTimeVisibleAttribute.cs: Don't throw NIEX.
105         * DataGridViewCheckBoxColumn.cs: Implement ToString.
106         * DataGridViewCheckBoxCell.cs: Allow DBNull as a value.
107         * DataGridViewCell.cs: Don't raise CellFormatting for RowHeader cells,
108         if the user filled in the formatting Value, use it.
109
110 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
111
112         * DataGridViewTextBoxCell.cs: Fix for objects that cannot be cast
113         to a string.
114
115 2008-04-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
116
117         * BindingSource.cs: Some corrections to Filter property, as well as
118         setting it for our list when resetting it.
119
120 2008-04-29  Jonathan Pobst  <monkey@jpobst.com>
121
122         * ScrollBar.cs: Don't let dragging the thumb grip set the value greater
123         than the maximum.  Fixes reopened bug #384182.
124
125 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
126
127         * ToolStripDropDown.cs: Fix offscreen position for DropDown itens.
128         Fixes remaining issues of #367490.
129
130 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
131
132         * ToolStripDropDown.cs: Screen.Bound dont return right value then use 
133         SystemInformation.WorkingArea to get max_screen value.
134
135 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
136
137         * BindingSource.cs: Implement Filter and RemoveFilter.
138
139 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
140
141         * MenuAPI.cs: Prevent sub-menu positon to be less than zero.
142
143 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
144
145         * X11Dnd.cs: When trying to convert data and we know we started the
146         dnd loop, don't try to use the cached data if the loop is not running,
147         which means that the data has been resetted.
148         Fixes #378191.
149
150 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
151
152         * MenuAPI.cs: Force first menu subitem to show from left to right to mimic
153         win32 behavior.
154
155 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
156
157         * MenuAPI.cs: Check the screen limits before show sub-menus and prevent
158         it to drawn off screen edge. Fixes bug #367490.
159
160 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
161
162         * MenuAPI.cs: In PopupWindow.RefreshItems uses a temp point var to store
163         menu position to have only one assignment of Location var.
164
165 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
166
167         * MenuAPI.cs: Implement the right key for sub-menus. Thanks Ernesto Carrea
168         for this patch. Fixes bug #384115.
169
170 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
171
172         * ScrollBar.cs: If SmallChange is larger than LargeChange, make them
173         the same.  If LargeChange is zero, set a minimum size for the scroll
174         thumb grip.  [Fixes bug #384182]
175
176 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
177
178         * TextBoxTextRenderer.cs: Don't turn &A into a prefix for textboxen.
179         [Fixes bug #384181]
180
181 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
182
183         * ListBox.cs: Math.Min should be Math.Max.  [Fixes bug #384183]
184
185 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
186
187         * ThemeVisualStyles.cs: Added partial support for ScrollBar (based on the
188         patch from Ernesto).
189
190 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
191
192         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawComboButton.
193
194 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
195
196         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawButton.
197
198 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
199
200         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawRadioButton.
201
202 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
203
204         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawScrollButton.
205
206 2008-04-27  George Giolfan  <georgegiolfan@yahoo.com>
207
208         * ThemeVisualStyles.cs: Added support for ButtonBase.UseVisualStyleBackColor.
209
210 2008-04-27  Andreia Gaita <avidigal@novell.com> 
211
212         * HtmlWindow.cs, HtmlHistory.cs: Throw on DomHistory getter (it's
213           supposed to return a reference to an mshtml interface, which we
214           don't support).
215         * HtmlElement.cs: Throw on DomElement getter (it's supposed to return a
216           reference to an mshtml interface, which we don't support). Code
217           formatting cleanup.
218         * HtmlDocument.cs: Add DefaultEncoding getter implementation. Throw on
219           DomDocument getter (it's supposed to return a reference to an
220           mshtml interface, which we don't support). Code formatting cleanup.
221
222 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
223
224         * ListView.cs: Ouch, forgot to commit.
225
226 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
227
228         * ListView.cs: 
229         * ThemeWin32Classic.cs: Fire the -until now- forgotten CacheVirtualItems event.
230
231 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
232
233         * ListView.cs: When calculating box selection for virtual mode, don't
234         look for intersection with item's text, but item bounds, since that
235         would mean read ListViewItem's text for _every_ item, and that's
236         something we just can't do in virtual mode (items are only requested
237         when drawn).
238
239 2008-04-26  George Giolfan  <georgegiolfan@yahoo.com>
240
241         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCaptionButton and
242         partial support for managed windows (based on the patch from Ernesto).
243
244 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
245
246         * ListView.cs: When doing a key search use FindItemWithText method
247         instead of doing the search by ourselves, this way we avoid
248         duplicating the code and also we handle the special case for virtual
249         mode. To achieve that make our private overload of FindItemWithText
250         internal and also have a 'roundtrip' parameter.
251
252 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
253
254         * ListView.cs: When doing the layout don't request the
255         ListViewItem instance if we are in virtual mode (since we can't request it
256         until the item is actully drawn).
257
258 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
259
260         * ThemeVisualStyles.cs: Added support for ProgressBar (based on the patch 
261         from Ernesto).
262
263 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
264
265         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCheckBox (based on 
266         the patch from Ernesto).
267
268 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
269
270         * ThemeEngine.cs: Added code to select ThemeVisualStyles.
271         * ThemeVisualStyles.cs: Added.
272
273 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
274
275         * IDeviceContext.cs: Added a missing using.
276
277 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
278
279         * ButtonBase.cs: Made IsDefault protected internal.
280         * ButtonRenderer.cs: Made GetPushButtonRenderer(PushButtonState) internal.
281
282 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
283
284         * Application.cs: Included VisualStyles-related members in the 1.1 profile.
285         * ButtonRenderer.cs, CheckBoxRenderer.cs, Padding.cs, PaddingConverter.cs,
286         RadioButtonRenderer.cs: Included in the 1.1 profile.
287         * IDeviceContext.cs: Added.
288         * TextRenderer.cs: Included a member in the 1.1 profile.
289
290 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
291
292         * ThemeWin32Classic.cs: Added ShouldPaintFocusRectangle(ButtonBase).
293
294 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
295
296         * ErrorProvider.cs: Make the error icons come after the control
297         they refer to.  It isn't the way the MS does it, but its better
298         than what we were doing.  See bug #368587.
299
300 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
301
302         * InputLanguage.cs, InputLanguageCollection.cs: Apply patch
303         from Eric Albright that lazy loads the input language as ensures
304         everything gets properly initialized.  Fixes bug #373871.
305
306 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
307
308         * ToolStrip.cs: Don't use ToolStripControlHosts when figuring up
309         implicit mnemonics.  [Fixes bug #383000]
310
311 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
312
313         * X11Dnd.cs: When canceling the operation, automatically restore the
314         default cursor - normally the default cursor is restored when the
315         mouse buttons are released, but we should be able to restore it even
316         if the buttons are still pressed (for example, when pressing ESC to
317         cancel).
318         Fixes #381894.
319
320 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
321
322         * X11Dnd.cs: When starting a new drad and drop operation, set control
323         field to null, just as the other fields, to avoid calling any
324         operation on a previous control. Also, when calling DndLeave on a
325         control, set it to null, thus we don't fire that event multiple times
326         for that control.
327         Fixes #209264.
328
329 2008-04-23  Geoff Norton  <gnorton@novell.com>
330
331         * XplatUICarbon.cs: Ensure that we have a valid hwnd before accessing
332         the whole_window object.  Fixes #377084.
333
334 2008-04-23  Andreia Gaita <avidigal@novell.com> 
335
336         * HtmlElement.cs: Implement RaiseEvent (event injection into the
337           embedded browser)
338
339 2008-04-23  Jonathan Pobst  <monkey@jpobst.com>
340
341         * DataGridViewColumnHeaderCell.cs: Implement some NIEX stuffs.
342
343 2008-04-23  Andreia Gaita <avidigal@novell.com> 
344
345         * HtmlElement.cs, HtmlDocument.cs: Implement javscript method
346           invocation
347
348 2008-04-23  Andreia Gaita <avidigal@novell.com> 
349
350         * HtmlElement.cs, HtmlDocument.cs: Implement custom event handler
351           attaching/detaching
352
353 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
354
355         * X11Dnd.cs: When the drop was cancelled, or could just not be
356         performed, return DragDropEffect.None always (match .net).
357
358 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
359
360         * DataGridViewRowHeaderCell.cs: Fill in some NIEX stuff.
361
362 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
363
364         * DataGridViewRowCollection.cs: Revert something I didn't mean to commit.
365
366 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
367
368         * DataGridView.cs: Add support for error icon tool tips.
369         * DataGridViewCell.cs: ErrorIconBounds needs to call GetErrorIconBounds.
370         * DataGridViewRowHeaderCell.cs: Need internal way to get ErrorIconBounds.
371
372 2008-04-22  Ivan N. Zlatev  <contact@i-nz.net>
373
374         * X11Structs.cs: Add mouse button masks enum.
375         * XplatUIX11.cs, Hwnd.cs: Send WM_ENTERSIZEMOVE and 
376         WM_EXITSIZEMOVE only once at the beginning and at the end of the 
377         form resize/move operation instead of for each step of it.
378         [Fixes bug #346529 for the x11 backend]
379
380 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
381
382         * DataGridView*: Implement support for drawing error icons.
383
384 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
385
386         * TreeView.cs: Make vbar and hbar internal.
387         * TreeNode.cs: If collapsing the node removes one of the TreeView's
388         scrollbars, invalidate the whole thing.
389         [Fixes bug #382001]
390
391 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
392
393         * TreeView.cs: Calling Sort() sets Sorted = true.
394         * TreeNodeCollection.cs: Try to find the owner TreeView to determine
395         if the nodes need to be sorted.
396         [Fixes bug #382028]
397
398 2008-04-21  Ivan N. Zlatev  <contact@i-nz.net>
399
400         * Form.cs: Fire SizeChanged for both when the form is minimized and 
401         restored.
402         * XplatUIX11.cs: Instead of tracking minimization on UnmapNotify track it 
403         on PropertyNotify of _NET_WM_STATE. Much much cleaner.
404
405 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
406
407         * ComboBox.cs: If the combobox is disabled, draw a disabled
408         background before painting anything else.
409         [Fixes bug #381729]
410
411 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
412
413         * X11Dnd.cs: Wehn the drag and drop operation is cancelled don't
414         forget to send a Leave event to the target window - just as .net does
415         when cancelling dnd operations.
416
417 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
418
419         * X11Dnd.cs: Stop tracking messages as part of the dnd operation as
420         soon as possible - this happens when we send the drop message to the
421         target window. This way we avoid firing any DragOver _after_ drop finished.
422         Fixes #378179.
423
424 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
425
426         * XplatUIX11.cs: Send WM_WINDOWPOSCHANGED when a toplevel is minimized.
427         * Form.cs: Handle form minimization as a special state, where size doesn't 
428         change, but we have to fire SizeChanged.
429         [Fixes bug #325122 for the win32 and x11 backends]
430
431 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
432
433         * XplatUIX11.cs: Win32 doesn't send WM_(KILL|SET)FOCUS 
434         if the handle is disabled.
435         [Fixes bug #371751]
436
437 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
438
439         * XplatUIX11.cs: Enable Maximize/Minimize/Close ability (not decorations) 
440         for forms with FormBorderStyle.None.
441         [Fixes bug #349571]
442
443 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
444
445         * XplatUIX11.cs: Implement support for WM_ENTERSIZEMOVE and 
446         WM_EXITSIZEMOVE.
447         [Fixes bug #346529 for the X11 backend]
448
449 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
450
451         * XplatUIX11.cs: 
452           - Send a mouse Enter message after say dragging the mouse with a 
453           button down and then release it in another client.
454           - Reset the cursor to prevent X11 from remembering it and setting it 
455           before the control gets WM_SETCURSOR.
456           - Qeueue a mouse move after a mouse enter like win32.
457           [Fixes bug #323234]
458
459 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
460
461         * XplatUIX11.cs: Implement limited support for WM_SYSCOMMAND. 
462         It's sent when the form gets moved, resized, closed.
463         * XplatUIStructs.cs: Add SystemCommands enum for WM_SYSCOMMAND.
464         [Fixes bug #359193 for X11]
465
466 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
467
468         * Form.cs: Add a ValidateChildren for the 1.1 profile. Fixes 
469         the build.
470
471 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
472
473         * ListView.cs: Move CalculateDetailsGroupItemsCount to the NET_2_0 
474         group. Fixes the 1.1 build.
475
476 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
477
478         * ListView.cs: Use display indexes for selection in Details view, as
479         well as do the proper layout based on display indexes for that view
480         too.
481
482 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
483
484         * ListView.cs: Focused item information is now stored as a display
485         index, and display indexes are used all over the place for selection,
486         instead of ListViewItem.Index values, which doesn't give us enough
487         information to modify the selection in groups mode, and was broken.
488
489 2008-04-18  Ivan N. Zlatev  <contact@i-nz.net>
490
491         * Control.cs: Do not fire MouseDown if validation of the control has 
492         failed.
493         * Form.cs: Validate the form before closing.
494         [Fixes bugs #330501 and #353310]
495
496 2008-04-18  Andreia Gaita <avidigal@novell.com> 
497
498         * WebBrowserBase.cs: Added WndProc, DrawToBitmap,
499           CreateWebBrowserSiteBase implementations
500         * HtmlElement.cs: Add missing OuterHTML, OuterText setters, stubbed
501           Style and TabIndex setters
502
503 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
504
505         * ListViewGroup.cs: When returning the actual item count, return the
506         proper count for default group.
507         Fix the tests.
508
509 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
510
511         * ListView.cs:
512         * ListViewGroup.cs: When calculating groups layout, get the actual
513         number of items per group, since groups added to the group BUT not
514         added to the ListView are just ignored, and can cause some nasty
515         exceptions because of the lack of synchronization. Also for
516         ListViewGroup don't use lazy initialization for items, since we 
517         the common scenario is to use it always - and it helps us to  refactor
518         and clean the .ctor overloads.
519
520 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
521
522         * ListView.cs: When adding an item to a ListViewItemCollection
523         belonging to a group (ListViewGroup.Items), don't generate a redraw if
524         the added item hasn't beeen previously added to the ListView instance
525         refered by the group, since it will be ignored. This should avoid some 
526         really nasty flickering.
527
528 2008-04-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
529
530         * ListView.cs: When accessing an item in a specific display
531         position, use the helper method GetItemAtDisplayIndex, instead of
532         direct access to the reordered_items_indices array. When doing layout
533         for groups set the correct Items index for the display position (since
534         in groups mode items don't have the same position as in Items
535         collection).
536         * ListViewGroup.cs: Add a field to store the starting item number,
537         which is later used when calculating the layout.
538
539         Fixes #360805.
540
541 2008-04-17  Gert Driesen  <drieseng@users.sourceforge.net>
542
543         * Application.cs: Fixed ProductVersion to fallback to the assembly
544         version. Fixes regression for bug #325413.
545
546 2008-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
547
548         * ListView.cs: New helper method to retrieve an item in a _specific
549         display_ position (the items can be displayed in a different order
550         than one of Items collection).
551         * ThemeWin32Classic.cs: When drawing, instead of iterating over Items
552         collection, use ListView.GetItemAtDisplayIndex, to get an item in a
553         specific display position (again remember that items can be sorted
554         different than Items).
555
556 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
557
558         * DataGridViewColumnCollection.cs: Create a cached copy of our sorted
559         list and update it when the collection changes.  We were recreating
560         this several times per row paint and for every pixel the mouse moved
561         across the grid.
562         * DataGridViewColumn.cs: Regenerate cached sorted list when DisplayIndex
563         changes.
564
565 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
566
567         * DataGridViewColumnCollection.cs: Convert our internal sorted columns
568         list to use generics.
569         * DataGridView.cs, DataGridViewRow.cs: Use generic sorted column list
570         and remove unneccessay casts.
571
572 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
573
574         * DataGridViewBand.cs: Add internal way to set displayed variable.
575         * DataGridViewRow.cs: Don't paint cells in non-displayed columns.
576         * DataGridView.cs: Make sure we always keep track of Displayed
577         rows and columns, and only draw things that are displayed.
578
579 2008-04-16  Atsushi Enomoto  <atsushi@ximian.com>
580
581         * X11Keyboard.cs, XplatUIX11.cs : manage key state regardless of
582           whether the key events are filtered or not. Introduced
583           PreFilter() process for this purpose. This fixes atokx3/iiimx
584           shift state issue.
585
586 2008-04-16  Andreia Gaita <avidigal@novell.com> 
587
588         * HtmlHistory.cs: Implement Length property
589
590 2008-04-15  Jonathan Pobst  <monkey@jpobst.com>
591
592         * DataGridView.cs: Call EndEdit when a sort is performed so we take
593         away the edit textbox.  Refactor to reuse column sort code.
594
595 2008-04-12  Everaldo Canuto  <ecanuto@novell.com>
596
597         * MenuAPI.cs: Remove the code that save and restore capture status of 
598         grab_control, this fixes some Menu and Context menu bugs but maybe it can
599         cause some others, I cant figure the possible problems of this patch but
600         right now remove the code looks to be better than keep it. This patch fixes
601         bugs #357638, #378721 and #379570.
602
603 2008-04-12  Andreia Gaita <avidigal@novell.com> 
604
605         * HtmlDocument.cs, HtmlElement.cs, HtmlHistory.cs, WebBrowser.cs:
606         Implement OuterHtml, OuterText, Enabled, Scroll*, *Rectangle properties,
607         add missing properties and event handlers.
608         
609 2008-04-14  Jonathan Pobst  <monkey@jpobst.com>
610
611         * ListBox.cs: Make sure the LargeChange we are setting is at least
612         zero, to prevent an IOORE.  [Fixes bug #379531]
613
614 2008-04-13  Andy Hume <andyhume32@yahoo.co.uk>
615
616         * ComboBox.cs: Support item navigation by entering text.  Firstly, 
617         in DropDownList mode, for each key-press select the next item 
618         starting with that letter.
619         For other modes, when no item selected, on arrow-up/-down and open 
620         drop-down select the first item matching the text in the textbox.
621
622 2008-04-14  Atsushi Enomoto  <atsushi@ximian.com>
623
624         * X11Keyboard.cs : Control.FromHandle() could return null
625           in MoveCurrentCaretPos().
626
627 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
628
629         * ListView.cs: When changing the size in VirtualMode, also Reset the
630         selection.
631         * ListViewItem.cs: Don't call SelectedIndexCollection.Reset when
632         changing selection info for VirtualMode.
633         Fixes #372618.
634
635 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
636
637         * ThemeWin32Classic.cs: When drawing ListViewItem instancesin Details
638         view, don't use LineLimit for the first item - use NoWrap *always*
639         instead, since ListView.LabelWrap is not used for this view.
640         Fixes #378054.
641
642 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
643
644         * Binding.cs: Call UpdateIsBinding when setting control - probably
645         Binding is already usable and we don't need to wait to check the
646         IsBinding state. Also for 1.1 profile use IsHandleCreated instead of
647         Created, just like 2.0 does.
648         * CurrencyManager.cs: I'm so lame - the previous check was wrong.
649
650 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
651
652         * Binding.cs: Just realized we don't need to have a handler for
653         BindingContextChanged, since this info should be now consumed directly
654         in the BindingManagerBase. And also, the manager.IsBindingSuspended
655         state info is checked directly, instead of caching it.
656
657         * CurrencyManager.cs: IsSuspended should return always false if Count
658         == 0.
659
660 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
661
662         * Binding.cs: When calling PushData, return if manager.Count == 0,
663         since we just don't have data to be read. Also, when setting the
664         Control for binding, hook up some events to refresh the IsBinding
665         state when BindingContext change or control gets created; use
666         Control.IsHandleCreated instead of Control.Created check to set
667         IsBinding state - we *actually* need to modify IsBinding when control
668         is created, but we don't have any Created event, only HandleCreated.
669         Fixes part of #349364.
670
671 2008-04-11  Geoff Norton  <gnorton@novell.com>
672
673         * XplatUICarbon.cs: Expose Caret to the Carbon layer.  Guard against
674         warping a null Caret.
675
676 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
677
678         * DataGridView.cs: Implement row/column autosizing methods. Implement
679         autosorting.
680         * DataGridViewColumnHeaderCell.cs: Add painting of the sort glyph.
681         * DataGridViewRowCollection.cs: Add an internal sorting method.
682
683 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
684
685         * ThemeWin32Classic.cs: Apply patch from Ernesto to cache an expensive
686         value in ListView drawing code.
687
688 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
689
690         * FileDialog.cs: Only call FileOk when Ok is clicked, not when Cancel
691         is clicked.  Respect the user setting Cancel in FileOk.
692
693 2008-04-11  Geoff Norton  <gnorton@novell.com>
694
695         * ListView.cs: Avoid setting and resetting control Width/Heights and
696         calculate the final value and set it once.  Prevents a feedback loop
697         on the mac.
698
699 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
700
701         * TreeView.cs: Clamp setting the scrollbar value using SafeValueSet.
702         [Fixes bug #378869]
703
704 2008-04-10  Atsushi Enomoto  <atsushi@ximian.com>
705
706         * X11Keyboard.cs, X11Structs.cs : make over-the-spot mode default.
707           Add some on-the-spot code, but it seems we don't need it.
708
709 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
710
711         * Form.cs: Add method for DataGridView to trigger focus cues
712         even when it handles the tab keypress.
713
714 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
715
716         * DataGridView.cs: More keyboard handling, tab, esc.
717         * DataGridViewTextBoxEditingControl.cs: Don't request arrow keys
718         when at the beginning or end of the text in the text box.
719
720 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
721
722         * DataGridViewCell.cs: Guard against an NRE causing a test to fail.
723
724 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
725
726         * DataGridView.cs: Some fixups for showing and adding the edit control.
727         * DataGridViewButtonColumn.cs: Implement ToString.
728         * DataGridViewCell.cs: Size and position the control simultaneously.
729         * DataGridViewTextBoxCell.cs: Use base to position control.
730
731 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
732
733         * DataGridViewCell.cs: Fix up some formatting and painting code.
734         * DataGridViewImageCell.cs: Implement some NIEX methods.
735
736 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
737
738         * ToolStripItemCollection.cs: What moving an item from one owner
739         to another, remove from source owner before adding to destination.
740         [Fixes bug #378109]
741
742 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
743
744         * PictureBox.cs: Call Load when ImageLocation is set.
745         [Fixes bug #378308]
746
747 2008-04-09  Atsushi Enomoto  <atsushi@ximian.com>
748
749         * X11Keyboard.cs, XplatUIX11.cs :
750           Implement over-the-spot mode (with some odd offsets).
751           - set preedit position when caret is set.
752           - Wrap XMoveResizeWindow() to move preedit position.
753
754 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
755
756         * X11keyboard.cs: Fix last patch, maxval must be less not greater than
757         array lenght.
758
759 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
760
761         * KeyboardLayouts.cs: Uses GENERATING_RESOURCES to make VKeyTableIndex
762         and ScanTableIndex public, it fix compilations errors when compiling
763         WinForms to generate keyboard layout resources.
764
765 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
766
767         * X11keyboard.cs: Prevent keyboard errors when vitual table theres 
768         different element count than scan table. It prevents some errors in non
769         standard keyboards.
770
771 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
772
773         * DataGridViewHeaderCell.cs: Implement some NIEX methods.
774
775 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
776
777         * DataGridView.cs: Call OnContentClick.
778         * DataGridViewCell.cs: Do a null check on ValueType instead
779         of valueType.
780         * DataGridViewCheckBoxCell.cs: Implement.
781
782 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
783
784         * X11Keyboard.cs : Do not cast IntPtr to int. Use long.
785
786 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
787
788         * X11Keyboard.cs : Check XGetIMValues() return value in
789           case it does not return input styles in some environment.
790
791 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
792
793         * X11Keyboard.cs : sizeof(IntPtr) != 4 on amd64.
794
795 2008-04-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
796
797         * BindingContext.cs: Stub UpdateBinding method.
798
799 2008-04-07  Atsushi Enomoto  <atsushi@ximian.com>
800
801         * X11Structs.cs : added couple of structs for XIM support.
802         * X11Keyboard.cs :
803           Release XIM in case it failed to create XIC. 
804           Use consts for XNblah string.
805           Add support for IM style customization and XIC creation
806           for preedit-position and preedit-callback.
807           Right now use MONO_WINFORMS_XIM_STYLE environment variable
808           (list of: over-the-spot | on-the-spot | root). Only root
809           mode works so far.
810
811           (redoing r99172 with fix.)
812
813 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
814
815         * TreeView.cs: Center the checkbox a little better.
816
817 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
818
819         * ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs, ThemeWin32Classic.cs:
820         Apply very nice patch from Ernesto Carrea that simplifies our
821         scrollbar drawing.  [From bug #376146]
822
823 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
824
825         * TreeView.cs: Correct the location of the root node checkbox when
826         ShowRootLines = false.  Don't draw the root lines for the root node
827         when ShowRootLines = false.  [Fixes bug #377535]
828
829 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
830
831         * WebBrowserBase.cs: Added missing attributes and fixed attributes.
832         Fixed line endings.
833         * WebBrowser.cs: Added missing attributes and fixed attributes. Fixed
834         line endings.
835         * MaskedTextBox.cs: Added missing attribute. Code formatting.
836         * PageSetupDialog.cs: Added missing attribute. Code formatting.
837         * HtmlWindowCollection.cs: Code formatting. Fixed line endings.
838         * ImeMode.cs: Added missing field.
839         * HtmlWindow.cs: Code formatting. Fixed line endings.
840         * HtmlElement.cs: Code formatting. Fixed line endings. Fixed compiler
841         warnings.
842         * HtmlHistory.cs: Code formatting. Fixed line endings.
843         * HtmlDocument.cs: Code formatting. Fixed line endings.
844         * ToolStripPanel.cs: Added missing IList implementation.
845         * HtmlElementCollection.cs: Code formatting. Fixed line endings.
846
847 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
848
849         * BindingContext.cs: Changed argument names to fix corcompare errors.
850         * DataGridView.cs: Removed extra explicit interface implementation
851         of IDropTarget. Code formatting.
852         * FlowLayoutPanel.cs: Changed argument names to fix corcompare errors.
853         * ComboBox.cs: Changed argument names to fix corcompare errors.
854         * DataGridTextBoxColumn.cs: Changed argument names to fix corcompare
855         errors.
856         * GridColumnStylesCollection.cs: Changed argument names to fix
857         corcompare errors. Removed extra tabs.
858         * GridTableStylesCollection.cs: Changed argument names to fix corcompare
859         errors.
860         * Control.cs: Changed argument names to fix corcompare errors. Code
861         formatting. Removed extra explicit IList implementation.
862         * TextBox.cs: Changed argument names to fix corcompare errors. Code
863         formatting. Use string.Empty instead of "".
864         * GridItemCollection.cs: Changed argument names to fix corcompare
865         errors. Code formatting.
866         * DataGridViewTopLeftHeaderCell.cs: Changed argument names to fix
867         corcompare errors. Code formatting.
868         * ImageList.cs: Changed argument names to fix corcompare errors.
869         * ToolStripItem.cs: Changed argument names to fix corcompare errors.
870         * DataGridViewRowCollection.cs: Changed argument names to fix
871         corcompare errors. Code formatting.
872         * TableLayoutPanel.cs: Changed argument names to fix corcompare errors.
873         * DataGridViewSelectedCellCollection.cs: Changed argument names to
874         fix corcompare errors. Code formatting.
875         * DataGridViewComboBoxCell.cs: Changed argument names to fix
876         corcompare errors. Code formatting.
877         * LinkLabel.cs: Changed argument names to fix corcompare errors.
878         * TreeNode.cs: Changed argument names to fix corcompare errors. Code
879         formatting.
880         * PropertyGrid.cs: Changed argument names to fix corcompare errors.
881         Code formatting.
882         * BindingSource.cs: Changed argument names to fix corcompare errors.
883         Removed extra explicit interface implementations.
884         * DataGridViewSelectedRowCollection.cs: Changed argument names to
885         fix corcompare errors. Code formatting.
886         * ToolStripItemCollection.cs: Removed extra explicit interface
887         implementation of IList.ReadOnly.
888         * DataGridViewColumnCollection.cs: Changed argument names to fix
889         corcompare errors. Code formatting.
890         * DataGridViewRow.cs: Rename converter to match MS. Code formatting.
891         * ListView.cs:  Changed argument names to fix corcompare errors.
892         * DataGridViewHeaderCell.cs: Changed argument names to fix corcompare
893         errors.
894         * DataGridBoolColumn.cs: Changed argument names to fix corcompare
895         errors.
896         * ListBindingHelper.cs: Changed argument names to fix corcompare
897         errors.
898         * DataGridViewSelectedColumnCollection.cs: Changed argument names to
899         fix corcompare errors. Code formatting.
900         * ToolStripPanel.cs: Removed extra explicit implementation of
901         IDropTarget interface.
902         * ListBox.cs: Changed argument names to fix corcompare errors. Code
903         formatting. Removed extra tabs and spaces.
904         * DataGridViewCellCollection.cs: Changed argument names to fix
905         corcompare errors.
906         * Help.cs: Changed argument names to fix corcompare errors. Code
907         formatting.
908         * TabControl.cs: Changed argument names to fix corcompare errors.
909         * DataGridColumnStyle.cs: Changed argument names to fix corcompare
910         errors.
911         * TableLayoutSettings.cs: Changed argument names to fix corcompare
912         errors.
913
914 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
915
916         * ListBindingHelper.cs: When returning properties, only return those
917         that are browsable. Also, don't do a linear search of the properties,
918         but use the indexer of the PropertyDescriptorCollection class.
919
920 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
921
922         * BindingSource.cs: Implement GetRelatedCurrencyManager by adding a
923         Dictionary containing the related (child) currency managers. Also,
924         when setting DataSource, add datasource to our List if it is not a list.
925
926 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
927
928         * PropertyGridTextBox.cs: Fix background color of the buttons.
929         * PropertyGridView.cs: Make the entry less jumpy.
930
931 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
932
933         * PropertyGrid.cs: Fix unused variable warnings.
934
935 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
936
937         * PropertyGridView.cs: Fix expansion via [+] misbehavior on 
938         double-click. It expanded it once in the mouse down and then 
939         again in the double-click handler.
940
941 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
942         
943         * GridEntry.cs: ICustomTypeDescriptor support for PropertyOwner, 
944         TypeConverter and UITypeEditors.
945
946 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
947
948         * Control.cs: Visibility should be set synchronously, 
949         so we must also redraw once it is and not rely on layouting or 
950         other code to repaint.
951         [Fixes bug #339898]
952
953 2008-04-04  Jonathan Pobst  <monkey@jpobst.com>
954
955         * DataGridViewCell.cs: Respect DataGridView.GridColor.
956
957 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
958
959         * Control.cs: Invalidate when the alpha channel is less than 255,
960         not only when control is transparent.
961
962 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
963
964         * DataGridViewRowPrePaintEventArgs.cs, DataGridViewRowPostPaintEventArgs.cs:
965         Implement some painting convenience methods that threw NIEX.
966
967 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
968
969         * DataGridView.cs: Call CellMouse[Enter|Move|Leave] properly.
970         * DataGridViewLinkCell.cs: Implement.
971
972 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
973
974         * GridEntry.cs: Report the conversion exception error description.
975         [Fixes bug #375792]
976
977 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
978
979         * PropertyGridView.cs: Do not scroll to item on resize.
980         [Fixes bug #375789]
981
982 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
983
984         * BindingContext.cs: When retrieving a BindingManagerBase, if the
985         dataSource parameter is ICurrencyManagerProvider, then return
986         ICurrencyManagerProvider.CurrencyManager/GetRelatedCurrencyManager
987         instead of creating a new one.
988
989 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
990
991         * BindingSource.cs: Implement support for Type instances as
992         DataSource.
993
994 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
995
996         * DataGridView.cs: Minor cleanups and call CellMouseUp.
997         * DataGridViewCell.cs: Make some painting routines internally virtual.
998         * DataGridViewButtonCell.cs: Implement.
999
1000 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
1001
1002         * Control.cs: We always need to invalidate our children with
1003         transparent backgrounds when we are invalidated.
1004         [Fixes bug #376081]
1005
1006 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1007
1008         * BindingSource.cs: EndEdit and CancelEdit should call EndCurrentEdit
1009         and CancelCurrentEdit on CurrencyManager respectively. Implement
1010         support for ICancelAddNew too.
1011
1012 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1013
1014         * CurrencyManager.cs: When calling EndCurrentEdit/CancelCurrentEdit,
1015         call EndNew/CancelNew if list is ICancelAddNew.
1016
1017 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
1018
1019         * DataGridView.cs: Guard against an exception while painting
1020         if there are no rows.
1021
1022 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
1023
1024         * DataGridView.cs: Implement a bunch of keyboard commands.
1025
1026 2008-03-31  Jonathan Pobst  <monkey@jpobst.com>
1027
1028         * ToolBar.cs: Don't do our painting if UserPaint is set.  If UserPaint
1029         isn't set, don't call OnPaint.  [Fixes bug #375300]
1030
1031 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1032
1033         * BindingSource.cs: IsBindingSuspended, ResumeBinding and
1034         SuspendBinding depend on CurrencyManager. Implement RemoveCurrent,
1035         hookup the remaining events related to CurrencyManager, and fire
1036         OnListChanged also for the Clear () method.
1037
1038 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1039
1040         * BindingSource.cs: Use Current and Position implementations in
1041         CurrencyManager instead of using our own routines, since we need 
1042         to be in synch with it. Count should NEVER return a -1 value, and 
1043         also report ListChanged events for both simple IList data 
1044         sources (manually) as well for IBindingList ones (by hooking up an
1045         event handler for it).
1046
1047 2008-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1048
1049         * BindingSource.cs: Make one .ctor call the another, to avoid
1050         duplicate code. Add the CurrencyManager property, and also for AddNew
1051         throw the proper exceptions and show better error messages.
1052
1053 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
1054
1055         * ComboBox.cs: Only adjust selectedindex if Handle has been
1056         created.  Fixes failing test.
1057
1058 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
1059
1060         * ComboBox.cs: Adjust selectedindex if we insert a new item
1061         above the current selectedindex in a sorted ComboBox.
1062         [Fixes bug #374654]
1063
1064 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
1065
1066         * ComboBox.cs: Support PageUp/PageDown when dropdown is closed.
1067         [Fixes bug #374712]
1068
1069 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
1070
1071         * DataGridViewTextBoxCell.cs: Implement stuffs.
1072
1073 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
1074
1075         * TreeView.cs: Create the scrollbars even earlier to be
1076         double dog certain they are created before they are accessed.
1077
1078 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
1079
1080         * XplatUIX11.cs: Remove a no-op line that csc was choking on.
1081
1082 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
1083
1084         * ScrollBar.cs: Create an internal safe Value setter so we
1085         won't crash if we try to set a value outside the min and max.
1086         * TextBoxBase.cs: Use safe value setter to guard against a
1087         potential NRE that is being reported by Reflector.
1088
1089 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
1090
1091         * TreeView.cs: Create the scrollbars earlier in the constructor
1092         to attempt to guard against an NRE in SetTop in Reflector.
1093
1094 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
1095
1096         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCell.cs,
1097         DataGridViewRowCollection.cs: Do not scroll column and row headers,
1098         show messagebox on data format error, use column display index
1099         correctly, make sure HitTest supports new layout stuff,
1100         make sure scrollbars support new layout stuff.
1101
1102 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
1103
1104         * XplatUIX11.cs : Patch by Doug Rintoul.
1105           For some IM engines, keypress events need to delay call
1106           to XPending() and XNextEvent() in the loop so that it
1107           does not mess the orders in XIM commit callback.
1108           Some KeyRelease events such as shift keys need to be
1109           processed both in the IM engine and winforms driver
1110           itself since winforms holds its own state check.
1111
1112           For details, see: http://lists.ximian.com/pipermail/mono-winforms-list/2008-March/003279.html
1113
1114 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
1115
1116         * X11Keyboard.cs, XplatUIX11.cs :
1117           add primitive support for XIM input support (preedit-
1118           nothing and status-nothing). It requires precise event
1119           capturing (XSelectInput/"filterEvents") and different
1120           call to XFilterEvent against root window.
1121           Get composed string and send dummy WM_IME_COMPOSITION.
1122           Free XIM and XIC instances in finalizer.
1123
1124           (This first patch does not include suggested changes
1125            by Doug Rintoul. It will follow.)
1126
1127 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
1128
1129         * DataGridView.cs: When binding to a property, if the property
1130         doesn't have a setter, set the column to readonly.
1131         [Fixes bug #343965]
1132
1133 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
1134
1135         * ComboBox.cs: Guard against NRE if an arrow key is hit while
1136         we aren't dropped down.  Support Home/End in DropDownList mode.
1137         [Fixes bug #371990]
1138
1139 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
1140
1141         * TreeNodeCollection.cs: Don't increment count until we've
1142         saved our index to return.
1143         [Fixes bug #373603]
1144
1145 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
1146
1147         * Label.cs: Add padding to the label's AutoSize calculation.
1148         [Fixes bug #373792]
1149
1150 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1151
1152         * ListBindingHelper.cs: Actually implement GetListName method.
1153
1154 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1155
1156         * BindingSource.cs: Throw the propert expceptions for some methods, as
1157         well as detect the list item type for Add method if DataSource is null.
1158
1159 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
1160
1161         * DataGridViewCell.cs: I don't know why I commented this out,
1162         putting it back for now.
1163
1164 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
1165
1166         * DataGridViewCell.cs: Remove storage for owning column, just
1167         use column index.
1168         * DataGridViewColumn.cs: Make getter for HeaderTextSet.
1169         * DataGridViewColumnHeaderCell.cs: If the header text has been
1170         explicitly set, return it.
1171         [Fixes bug #325979]
1172
1173 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
1174
1175         * DataGridViewRowCollection.cs: Disable row sharing when
1176         using data binding.  Its a great feature, but lets work on
1177         getting DGV usable first before we worry about optimizations.
1178
1179 2008-03-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1180
1181         * BindingSource.cs: When resetting our internal list, compute list
1182         item type information to be used for indirect list access. Also
1183         implement/tune some properties and methods related to the list access
1184         too.
1185         * ListBindingHelper.cs: Add a stub for GetListName method, used from
1186         BindingSource.
1187
1188 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
1189
1190         * DataGridView.cs: If RowCount is increased while ColumnCount
1191         is zero, add a column.  [Fixes bug #331649]
1192
1193 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
1194
1195         * DataGridViewRowCollection.cs: When adding new rows for
1196         databinding, make sure they are place before the add row.
1197         [Fixes bug #343961]
1198
1199 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
1200
1201         * DataGridViewRow.cs: Draw cells in column DisplayIndex order
1202         instead of Index order.
1203
1204 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
1205
1206         * DataGridView.cs: If columns are added by increasing ColumnCount,
1207         they need to be DataGridViewTextBoxColumns, not DataGridViewColumn.
1208         [Fixes bug #325588]
1209
1210 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
1211
1212         * DataGridView.cs: Turn off and on the "new row" when 
1213         AllowUserToAddRows is toggled.  When the handle is created,
1214         set current cell and selected cell/row/col.
1215
1216 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
1217
1218         * ComboBox.cs: When navigating the drop down by keyboard, we
1219         need to scroll the list box if our selection moves out of the
1220         currently shown items.  [Fixes bug #371990]
1221
1222 2008-03-24  Luke Page <luke.a.page@gmail.com>
1223
1224         * RichTextBox.cs: Handles visible rtf tag and no longer shows the text
1225         on the control. Also now handles unicode compatibility characters and
1226         stores the unicode compatibility length on the stack. Fixes Bugs
1227         #355198 and #366436.
1228
1229 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1230
1231         * BindingSource..cs: Take into account DataMember when re-creating the
1232         List property, and also create a specific kind of list as needed.
1233
1234 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1235
1236         * ListBindingHelper.cs: Add a new case for GetList () method - when we
1237         get an empty IEnumerable, try to detect whether the datamember is
1238         valid or not for that type, if true, return null, and throw exception
1239         otherwise.
1240
1241 2008-03-22  Jonathan Pobst  <monkey@jpobst.com>
1242
1243         * ComboBox.cs: Alt-Down should drop down the list, Esc should
1244         retract it.  [Fixes bug #371989]
1245
1246 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
1247
1248         * PropertyGrid.cs: Initialize the sorting button as pushed.
1249
1250 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
1251
1252         * PropertyGrid.cs: 
1253          - Visually select the PropertyTab.
1254          - Filter Properties by Attributes properly.
1255
1256 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
1257
1258         * MenuItem.cs: Remove menu item from parent when disposed.
1259         [Fixes bug #372845]
1260
1261 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
1262
1263         * ToolBar.cs: Don't reset layout_type if Dock = None.
1264
1265 2008-03-21  Andreia Gaita <avidigal@novell.com> 
1266
1267         * UserControl.cs: Select the first available control when we get focus.
1268           Fixes #372616
1269
1270 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
1271
1272         * DataGridViewCell.cs, DataGridViewTextBoxCell.cs: Don't paint
1273         the content if we are in edit mode.  [Fixes bug #343964]
1274
1275 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
1276
1277         * DataGridViewCell.cs: Fix border painting for column headers.
1278
1279 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1280
1281         * BindingSource.cs: When setting or resetting data source,
1282         use ListBindingHelper.GetList () method, since it will get the list in
1283         case datasource is IListSource.
1284
1285 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
1286
1287         * DataGridViewCell.cs: Implement lots more stuffs.
1288
1289 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
1290
1291         * PropertyGridView.cs, GridEntry.cs: Implement support for 
1292         UITypeEditor.IsDropDownResizable.
1293
1294 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
1295
1296         * DataGridViewCell.cs: Remove unused variables, improve how
1297         several of the property getters work.
1298         * DataGridViewRow.cs: Don't call setSize on a cell, cell should
1299         get its size from the parent row/col.
1300
1301 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
1302
1303         * PropertyGrid.cs: Ensure PropertiesTab is visible even if the 
1304         user alters manually the PropertyTabs collection via the 
1305         PropertyTabs property.
1306
1307 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1308
1309         * ListBindingHelper.cs: Implement -previously- ignored cases. We have
1310         new tests for them to be sure to be compatible with .net.
1311
1312 2008-03-20  Andreia Gaita <avidigal@novell.com> 
1313
1314         * WebBrowserBase.cs: Fix attributes, add events
1315         * WebBrowser.cs: Fix Padding signature
1316
1317 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
1318
1319         * PropertyGrid.cs, PropertyGridView.cs: Implement PropertyTab support.
1320
1321 2008-03-19  Jonathan Pobst  <monkey@jpobst.com>
1322
1323         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCellStyle.cs,
1324         DataGridViewLinkCell.cs, DataGridViewRow.cs, DataGridViewRowHeaderCell.cs,
1325         DataGridViewTextBoxCell.cs: Changes so that DataGridViewCell
1326         passes the new suite of tests for it.
1327
1328 2008-03-18  Andreia Gaita <avidigal@novell.com> 
1329
1330         * WebBrowser.cs: Add missing attributes, missing Padding and
1331           DefaultSize properties, remove extraneous getters
1332
1333 2008-03-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1334
1335         * ListBindingHelper.cs: Implement a pair of GetListItemProperties
1336         method overloads.
1337
1338 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
1339
1340         * ComboBox.cs: Move resetting the selected index to keypress
1341         instead of textchanged.  Changing the text programmatically
1342         should not trigger resetting the selected index.  Fixes test.
1343
1344 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
1345
1346         * ComboBox.cs: When the user types into the textbox, reset
1347         the selected index to -1.  [Fixes bug #371672]
1348
1349 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
1350
1351         * FileDialog.cs: Support Control-A for selecting everything
1352         in an OpenFileDialog.  [Fixes bug #371564]
1353
1354 2008-03-15  Jonathan Pobst  <monkey@jpobst.com>
1355
1356         * DataGridView.cs: When row/column visible/height properties
1357         change, invalidate.  Take the NIEX out of InvalidateRow/Column
1358         etc.  We don't support them yet, but we can just invalidate
1359         everything until we do support them.  (Added MonoTODO).  Set
1360         proper control styles.
1361         * DataGridViewRow.cs: Don't call PaintHeader if row headers
1362         are turned off. 
1363
1364 2008-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1365
1366         * ListBindingHelper.cs: Implement 2.0 GetListItemType methods.
1367
1368 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
1369
1370         * DataGridViewRow.cs: Only paint the white background in
1371         cell bounds, the row bounds extends past the cells if the 
1372         grid width isn't as wide as the DGV.
1373
1374 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
1375
1376         * DataGridView*: Completely revamp the drawing to match the
1377         public API.  Our grids now look better, and call all the
1378         appropriate methods and event to allow users to override
1379         the painting and do their own.
1380
1381 2008-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1382
1383         * ListBindingHelper.cs: Implement 2.0 GetList methods.
1384
1385 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
1386
1387         * DataGridView.cs: Implement BorderStyle.
1388
1389 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
1390
1391         * FileDialog.cs: Apply patch from Andy Hume: Any time we
1392         are comparing attributes, make sure we only look at the
1393         one we are interested.  These calls were failing if there
1394         were more than one attribute.
1395         [Fixes bug #370385]
1396
1397 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
1398
1399         * DataGridColumnStyle.cs: Hide ctor from 1.1 profile.
1400
1401 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
1402
1403         * PageSetupDialog.cs: Stub EnableMetric.
1404         * PrintControllerWithStatusDialog.cs: Implement IsPreview.
1405         * PrintPreviewDialog.cs: Add ProcessDialogKey,
1406         ProcessTabKey.
1407
1408 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
1409
1410         * MonthCalendar.cs: Remove unused variable.
1411
1412 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
1413
1414         * DataGridView*.cs: corcompare stuffs.
1415
1416 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
1417
1418         * MonthCalendar.cs: Remove an incorrect invalidate optimization.
1419         The savings aren't worth the extra code to fix the optimization.
1420         [Fixes bug #368585]
1421
1422 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
1423
1424         * ToolBar.cs: Always call base.Dock in the Dock override so that
1425         Control's layout_type gets reset correctly.
1426         [Fixes bug #368882]
1427
1428 2008-03-11  Ivan N. Zlatev  <contact@i-nz.net>
1429
1430         * X11Dnd.cs: End DnD operation also for the middle mouse button.
1431
1432 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
1433
1434         * ContainerControl.cs: We can't do MenuStrip implicit mnemonics
1435         at the same time we do explicit ones, because we have to give all
1436         other controls on the container a chance to handle explicit ones
1437         first.  If no one has an explicit mnemonic, then we can let the
1438         MenuStrip have a shot at implicit mnemonics.
1439         * MenuStrip.cs: Create an implicit mnemonic function.
1440         * ToolStrip.cs: When processing explicit mnemonics, don't do implicit
1441         mnemonics for MenuStrips.
1442         [Fixes bug #368493]
1443
1444 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
1445
1446         * AxHost.cs, Binding.cs, DataGridView.cs, DataGridViewCell.cs,
1447         DataGridColumnStyle.cs: corcompare stuffs.
1448
1449 2008-03-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1450
1451         * FileDialog.cs: Don't add any ColumnHeader to Columns if view is not
1452         Details - This is needed after we added the bits to use any available
1453         column also for List and SmallIcon view. 
1454
1455 2008-03-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1456
1457         * ListBox.cs: Fire SelectedIndexChanged and SelectedValueChanged events
1458         at the proper place, not only when changing SelectedIndex and changing
1459         the selection using keys/mouse, as .net does.
1460
1461 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1462
1463         * ControlBindingsCollection.cs: Implement last 2.0
1464         DefaultDataSourceUpdateMode property. Also fix a wrong instruction
1465         in the new 2.0 Add methods.
1466
1467 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1468
1469         * ListBox.cs: When calling SelectedIndexCollection.Clear,
1470         return if no items are previously selected - this is done to avoid 
1471         firing OnSelectedIndexChanged without need to do so. Also,
1472         when creating handle ensure that the focused item is visible (as
1473         .net does).
1474
1475 2008-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1476
1477         * ListBox.cs: Rewrote/refactored most of selection code. We require
1478         the following things in selection: a) keep selection sorted (both
1479         indices and items), b) SelectedIndices automatically detect the
1480         selection mode, c) SelectedIndex should be the first selected item
1481         index, d) Need to Focus/adjust scroll bar when selecting a new item,
1482         not only for SelectedIndex, which is specially important in Multi*
1483         selection modes. To achieve this we are moving the selection core to
1484         SelectedIndexCollection and make depend all selection modifications on
1485         it.
1486         Fixes #366438.
1487
1488 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
1489
1490         * ToolStrip.cs: Enable implicit mnemonics for drop down
1491         menu strips.  [Fixes part of bug #367692]
1492
1493 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
1494
1495         corcompare - fix parameter names [stragglers].
1496         Binding.cs, BindingsCollection.cs, GridColumnStylesCollection.cs,
1497         HelpEventHandler.cs, Label.cs, ListView.cs, Message.cs,
1498         TabControl.cs.
1499
1500 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
1501
1502         Control.cs: Don't call ProcessMenuKey on WM_SYSKEYUP if there
1503         was a mnemonic pressed as well as Alt.  Also, if nothing handles a
1504         mnemonic, let the ToolStripManager have it even if it doesn't
1505         have a matching mnemonic.
1506         [Fixes bug #367499]
1507
1508 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
1509
1510         corcompare - fix warning about implicit implementation
1511         * ToolStrip.cs: Add IToolStripData interface.
1512         * IToolStripData.cs: Add.
1513
1514 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
1515
1516         corcompare - fix warning about implicit implementation
1517         * Control.cs, ToolStripPanelRow.cs: Add IBounds interface.
1518         * IBounds.cs: Add.
1519
1520 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
1521
1522         corcompare - fix parameter names [N-Z].
1523         LinkArea.cs, NativeWindow.cs, NotifyIcon.cs, PageSetupDialog.cs,
1524         Panel.cs, PrintDialog.cs, PrintPreviewControl.cs, PropertyGrid.cs,
1525         PropertyManager.cs, RichTextBox.cs,
1526         ScrollBar.cs, SelectionRange.cs, SplitContainer.cs, StatusBar.cs,
1527         StatusBarDrawItemEventArgs.cs, StatusBarPanelClickEventArgs.cs,
1528         StatusStrip.cs, TabControl.cs, TableLayoutColumnStyleCollection.cs,
1529         TableLayoutRowStyleCollection.cs, TableLayoutStyleCollection.cs,
1530         TextBoxBase.cs, ThreadExceptionDialog.cs, ToolStrip.cs,
1531         ToolStripContentPanel.cs, ToolStripDropDown.cs,
1532         ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
1533         ToolStripPanel.cs, ToolStripSeparator.cs,
1534         TreeNode.cs, TreeView.cs, TreeViewHitTestInfo.cs,
1535         UICuesEventHandler.cs, UpDownBase.cs.
1536
1537 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
1538
1539         corcompare - fix parameter names [G-M].
1540         GridColumnStylesCollection.cs, GridItemCollection.cs,
1541         GridTableStylesCollection.cs, GroupBox.cs, Help.cs,
1542         HelpProvider.cs, ImageListStreamer.cs, InputLanguageCollection.cs,
1543         Label.cs, LayoutEngine.cs, LinkClickedEventArgs.cs,
1544         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewGroupCollection.cs,
1545         ListViewItem.cs, Menu.cs, MenuItem.cs, MenuStrip.cs, MouseEventArgs.cs.
1546
1547 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
1548
1549         corcompare - fix parameter names [A-F].
1550         Control.cs, DataGridBoolColumn.cs, DataGridColumnStyle.cs,
1551         DataGridTextBoxColumn.cs, DataGridViewButtonCell.cs,
1552         DataGridViewCellCollection.cs, DataGridViewCellParsingEventArgs.cs,
1553         DataGridViewCheckBoxCell.cs, DataGridViewColumnDesignTimeVisibleAttribute.cs,
1554         DataGridViewComboBoxCell.cs, DataGridViewHeaderCell.cs,
1555         DataGridViewImageCell.cs, DataObject.cs, DomainUpDown.cs,
1556         DrawItemEventArgs.cs, FolderBrowserDialog.cs, FontDialog.cs, Form.cs.
1557
1558 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
1559
1560         * GridEntry.cs: Do not convert not only if the types match, 
1561         but also if the property type is assigneable from the value's
1562         type.
1563         [Fixes bug #366566]
1564
1565 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
1566
1567         * PropertyGridView.cs: 
1568          - Subscribe to the listbox only once and not everytime.
1569          - Update the textbox even if SetValue fails.
1570          - Close the listbox before calling TrySetValue just in case.
1571          [Fixes bug #366569]
1572
1573 2008-03-03  Jonathan Pobst  <monkey@jpobst.com>
1574
1575         * Control.cs: Hide ICollection.CopyTo from the 1.1 profile.
1576
1577 2008-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1578
1579         * ListView.cs: Implement support for custom column width based on
1580         Columns collection (we were previously using this collection only
1581         with Details view).
1582         Fixes #364484.
1583
1584 2008-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1585
1586         * ListViewItem.cs: For Tile view, always set bounds for the first
1587         subitem (which is the main one), and also don't let Width be larger
1588         than ListView.TileSize.Width. Improve code readibility also.
1589         * ThemeWin32Classic.cs: When painting the ListViewItem instances
1590         in Tile view, _always_ use the NoWrap flag.
1591         Fixes #360798.
1592
1593 2008-02-29  Ivan N. Zlatev  <contact@i-nz.net>
1594
1595         * PropertyGrid.cs: Check for null PropertyDescriptor.Name just 
1596         in case.
1597         * GridEntry.cs: For MS compitability make all child properties 
1598         readonly if the parent is readonly. Ugh.
1599         [Fixes bug #365945 and #365944]
1600
1601 2008-02-29  Andreia Gaita <avidigal@novell.com> 
1602
1603         * HtmlHistory.cs: Fix sigs for Forward and Back to navigate by index
1604           relative to the history
1605
1606 2008-02-29  Andreia Gaita <avidigal@novell.com>
1607
1608         * HtmlElement.cs: More handlers for mouse and key events
1609
1610 2008-02-28  Andreia Gaita <avidigal@novell.com>
1611
1612         * WebBrowserBase.cs: MouseClick sig changed.
1613         * HtmlHistory.cs: Implement history navigation
1614         * HtmlElement.cs: Add event handlers, and connect them.
1615
1616 2008-02-28  Ivan N. Zlatev  <contact@i-nz.net>
1617
1618         * GridEntry.cs: 
1619          - Use PropertyDescriptor.DisplayName instead of .Name for Label,
1620            so that DisplayNameAttribute doesn't get ignored.
1621          - Check for ParenthesizeNameAttribute and parenthesize the Label.
1622          - Add support for PasswordPropertyTextAttribute
1623         * PropertyGridView.cs: Check if an entry is a password.
1624         [Fixes bugs #365589, #365586, #365588]
1625
1626 2008-02-28  Andreia Gaita <avidigal@novell.com>
1627
1628         * PropertyGridView.cs: Revert the message filtering change, as we
1629         need it to block after all. Remove block parameter, unnecessary.
1630
1631 2008-02-27  Jonathan Pobst  <monkey@jpobst.com>
1632
1633         * UserControl.cs: Better implementation of GetPreferredSize.
1634         First step to fixing bug #361441.
1635
1636 2008-02-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1637
1638         * Binding.cs: Actually implement data binding support for 
1639         classes implementing IBindableComponent.
1640         * ControlBindingsCollection.cs: Likewise.
1641
1642 2008-02-26  Andreia Gaita  <avidigal@novell.com>
1643
1644         * PropertyGridView.cs: Use a message filter to check when to 
1645         close the dropdown
1646
1647 2008-02-26  Andreia Gaita  <avidigal@novell.com>
1648
1649         * Application.cs: Change the message_filters loop so a filter 
1650         can be removed while looping.
1651
1652 2008-02-26  Ivan N. Zlatev  <contact@i-nz.net>
1653
1654         * GridEntry.cs: Optimization in ToggleValue so that it caches
1655         the current value.
1656         * PropertyGridView.cs: An optimization so that the property isn't 
1657         re-read twice for each StandardValue added to the drop-down menu.
1658         Patch by Andy Hume <andyhume32@yahoo.co.uk> under the MIT/X11
1659         license.
1660         [Fixes bug #362755]
1661
1662 2008-02-26  Jonathan Pobst  <monkey@jpobst.com>
1663
1664         * Application.cs: Apply patch from Justin Cherniak to match
1665         MS better for ProductName, ProductVersion, and CompanyName.
1666         [Fixes bug #361709]
1667
1668 2008-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1669
1670         * Binding.cs: Actually implement 2.0 NullValue property. Also
1671         when changing the formatting related properties, only update the state
1672         if formatting_enabled is true (we don't mind otherwise).
1673
1674 2008-02-25  Jonathan Pobst  <monkey@jpobst.com>
1675
1676         * ToolStrip.cs: Don't raise ItemClicked for disabled items.
1677         [Fixes bug #364486]
1678
1679 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
1680
1681         * GridEntry.cs: Use the PropertyDescriptor.PropertyType instead 
1682         of GetType on the current value as it uses reflection to 
1683         determine the type. This fixes the case where the new value is 
1684         null. 
1685
1686 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
1687
1688         * PropertyGridView.cs: Limit mousewheel scrolling to not scroll
1689         past the view.
1690
1691 2008-02-24  Luke Page  <luke.a.page@gmail.com>
1692
1693         * Line.cs, TextControl.cs: Implement offset x and y so that a
1694         document doesn't have to begin  at (0,0) on the viewpoint.
1695         * TextBox.cs, TextBoxBase.cs: RightToLeft switches the scroll
1696         bars and switches the text alignment (and therefore is now
1697         implemented for textbox). Fixes #321383.
1698
1699 2008-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1700
1701         * Binding.cs: Actually implement 2.0 FormatString and FormatInfo
1702         properties. Also when changing FormattingEnabled update the control
1703         property -as .Net does-.
1704
1705 2008-02-22  Carlos Alberto Cortez <calberto.cortez@Å‹mail.com>
1706
1707         * ControlBindingsCollection.cs: Add the missing 2.0 Add overloads.
1708         * Binding.cs: Add stubs for the overloads of the Add method in
1709         CBCollection.
1710
1711 2008-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1712
1713         * Binding.cs: PullData () returns a false value if we got an exception.
1714         Also when validating the control and we get an error, instead of
1715         setting the value of the previous one, cancel the event (tested in 1.1
1716         and 2.0).
1717
1718 2008-02-22  Jonathan Pobst  <monkey@jpobst.com>
1719
1720         * TreeView.cs: Make selected_node and highlighted_node internal.
1721         * TreeNodeCollection.cs: Reset selected_node and highlighted_node
1722         to null when Nodes.Clear is called.
1723         [Fixes bug #363884]
1724
1725 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
1726
1727         * FontDialog.cs: Ensure that when the Font is set in code,
1728         all the gui pieces are updated accordingly.
1729         [Fixes bug #361020]
1730
1731 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
1732
1733         * TextRenderer.cs: Respect proposed size for MeasureString.
1734         * ThemeWin32Classics.cs: If our CheckBox/RadioButton isn't
1735         autosize, use a proposed width to force wrapping for long text.
1736         [Fixes bug #360981]
1737
1738 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
1739
1740         * TreeView.cs: Factor in checkboxes = false and state images in
1741         to HitTest.  [Fixes bug #363360]
1742
1743 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
1744
1745         * ThemeWin32Classic.cs: Only look at the Date part of a DateTime
1746         when drawing the selected range.
1747         [Fixes bug #363648]
1748
1749 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
1750
1751         * ToolStripContainer.cs: Add SupportsTransparentBackColor and
1752         ResizeRedraw control styles.
1753         [Fixes bug #363555]
1754
1755 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
1756
1757         * TreeView.cs: StateImages are basically custom checkboxes, so
1758         factor their size the same as real checkboxes when determining
1759         what got clicked.
1760         [Fixes bug #363367]
1761
1762 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
1763
1764         * MessageBox.cs: Make the message box wider if the form caption
1765         is longer than the text in the form.
1766         [Fixes bug #361137]
1767
1768 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
1769
1770         * PropertyGridView.cs: Fix a NRE when closing the drop down form.
1771
1772 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
1773
1774         * TreeNode.cs: Guard against an NRE when the parent's
1775         StateImageList hasn't been set.
1776         [Fixes bug #363353]
1777
1778 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
1779
1780         * SplitContainer.cs: Add SupportsTransparentBackColor and
1781         OptimizedDoubleBuffering control styles.
1782         [Fixes bug #363303]
1783
1784 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
1785
1786         * Application.cs: For the app data paths and the registry key paths,
1787         ensure they are created before returning them to the user.
1788         [Fixes bug #361709]
1789
1790 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
1791
1792         * Application.cs: Guard against an NRE in CompanyName and
1793         ProductName.
1794
1795 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
1796
1797         * Application.cs: For CompanyName, ProductName, and ProductVersion,
1798         make sure we handle all three cases correctly: attribute is present,
1799         attribute is present but is an empty string, and attribute is not
1800         present.
1801
1802 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
1803
1804         * PropertyGridView.cs: 
1805          - Fix a NRE that caused a test failure
1806          - Another performance improvement - cache the standard values
1807          listbox.
1808
1809 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
1810
1811         * ComboBox.cs: Fix previous change to affect both 1.1 and 2.0
1812         code paths.
1813
1814 2008-02-19  Ivan N. Zlatev  <contact@i-nz.net>
1815
1816         * PropertyGridView.cs: Fix a big performance bug.
1817
1818 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
1819
1820         * SelectionRange.cs: Apply patch from Andy Hume to make
1821         constructor behavior more accurate.  [Fixes bug #362117]
1822
1823 2008-02-19  Andreia Gaita <avidigal@novell.com> 
1824
1825         * Control.cs: Added a new flag is_disposing to track if the
1826         window is currently in the process of being disposed of.
1827         This is used so that, when firing visibility changes triggered
1828         by unparenting controls during Dispose, the control doesn't
1829         get created again.      
1830
1831 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
1832
1833         * ComboBox.cs: Set height to preferred height when the handle
1834         is created.  [Fixes bug #360862]
1835
1836 2008-02-18  Andreia Gaita <avidigal@novell.com>
1837
1838         * XplatUIX11.cs: Create FosterParent with border width at 0.
1839         With the previous value of 4, everytime a control got reparented
1840         from parent = null, it's location would be shifted right and 
1841         down by 4, since these coordinates would be offset by the 
1842         FosterParent's border width.
1843
1844 2008-02-18  Ivan N. Zlatev  <contact@i-nz.net>
1845
1846         * Control.cs: During diposing firstly remove ourselfes from
1847         the parent and *then* destroy our handle, because removing
1848         ourselfes from the parent controls collection causes 
1849         VisibilityChange, etc events, which require a handle and end
1850         up recreating the control.
1851
1852 2008-02-17  Ivan N. Zlatev  <contact@i-nz.net>
1853
1854         * GridEntry.cs: Set expanded state before notifying that the
1855         expansion has taken place.
1856         * PropertyGridView.cs:
1857          - Set the propertygridtextbox text to the selected 
1858          StandardValue before proceeding to setting it.
1859          - Scrolling bugfixes.
1860
1861 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
1862
1863         * GridEntry.cs:
1864          - Fix ValueText to not return null.
1865          - Fix conversion error reporting to actually happen.
1866         * PropertyGridView.cs: Set entry only if the text has changed.
1867         [Fixes bug #362116]
1868
1869 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
1870
1871         * GridEntry.cs: 
1872          - Fix handling of a null current value.
1873          - Swallow editor exceptions.
1874         [Fixes bug #362114]
1875
1876 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
1877
1878         * PropertyGrid.cs: Clear current items first thing before 
1879         repopulating subitems.
1880         * GridEntry.cs: 
1881          - Handle null StandardValuesCollection.
1882          - Mark as not editable if there is no PropertyDescriptor and
1883          if the Converter cannot convert from string.
1884         [Part of fix for bugs #360666 and #358332]
1885
1886 2008-02-15  Luke Page  <luke.a.page@gmail.com>
1887         * MaskedTextBox.cs: Now skips non editable characters after a
1888         character has been entered and we are progressing to the next
1889         position in the MaskedTextBox.
1890
1891 2008-02-15  Luke Page  <luke.a.page@gmail.com>
1892         * TextBoxBase.cs: Handles MouseDown when shift key is clicked so
1893         that it changes the selection rather than just repositioning the
1894         cursor. Fixes Bug #360873.
1895
1896 2008-02-15  Luke Page  <luke.a.page@gmail.com>
1897         * TextBoxBase.cs, TextControl.cs, RichTextBox.cs: TextChanged fires
1898         when Undo/Redo changes the text. Undo/Redo/Undo/Redo now works
1899         correctly. See #359330
1900
1901 2008-02-15  Andreia Gaita <avidigal@novell.com>
1902
1903         * XplatUIX11.cs: If the handle is null when posting a message, use the
1904         current thread queue to post instead. Fixes #332409
1905
1906         * SendKeys.cs: Slight optimization
1907
1908 2008-02-14  Ivan N. Zlatev  <contact@i-nz.net>
1909
1910         * PropertyGrid.cs, PropertyGridView.cs:
1911         Fix multiple scrolling and sizing issues.
1912         [Fixes bug #359199]
1913
1914 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
1915
1916         * PropertyGridView.cs: Ensure that drop down editors are shown
1917         in the WorkingArea of the screen.
1918         [Fixes bug #359807]
1919
1920 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
1921
1922         * GridEntry.cs: Fail silently when UITypeEditor is missing.
1923         [Fixes bug #360666]
1924
1925 2008-02-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1926
1927         * Binding.cs: Implement 2.0 DataSourceNullValue property.
1928
1929 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
1930
1931         * PropertyGridView.cs:
1932          - Clear the controls in the drop down form after it is hidden.
1933          - Fix Width sizing of the dropdown editors to match MSFT.
1934
1935 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
1936
1937         * PropertyGridView.cs: 
1938          - Fix height for drawing the grid entry
1939          text value, so that it clips multiline text properly.
1940          - Fix unfocusing to match MSFT.
1941
1942 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
1943
1944         * PropertyGrid.cs: Do not populate subgriditems unless expandable.
1945         Fixes a bug where on repopulation after value changed items become
1946         expandable.
1947
1948 2008-02-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1949
1950         * Binding.cs: For the 2.0 profile, look for a 
1951         'PropertyChanged' event in the target control, and add checks for
1952         DataSourceUpdateMode property to change -or not- the data source
1953         from validation/control property change.
1954
1955 2008-02-10  Atsushi Enomoto  <atsushi@ximian.com>
1956
1957         * Binding.cs : build fix (operator == is not overriden in 1.x. Do
1958           not compare struct with null in 2.0).
1959
1960 2008-02-10  Luke Page <luke.a.page@gmail.com>
1961
1962         * MaskedTextBox.cs: UseSystemPasswordChar updates PasswordChar, PasswordChar
1963         updates the provider and if not using a provider, uses the internal document
1964         class implementation of password char. Also when showing text, uses display string
1965         from the provider, instead of the actual text.
1966
1967 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1968
1969         * Binding.cs: Ooooops, forgot to take into account the data_source
1970         and binding_member_info null case (it was breaking the Binding tests).
1971
1972 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1973
1974         * Binding.cs: Implement support for data source changes exposed by
1975         'PropertyNameChanged' events, and update the control property as
1976         needed.
1977
1978 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1979
1980         * Binding.cs: Implement 2.0 WriteValue method.
1981
1982 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
1983
1984         Commit patch from James Purcell for better AutoScale implementation:
1985
1986         * ScaleControl should call GetScaledBounds with the control's total size rather
1987         than client size.  GetScaledBounds should handle ignoring the borders in its
1988         calculations.  Cleaned up ScaleControl/GetScaledBounds overrides in controls
1989         (for the most part they just call the base code now since that is fixed).
1990         * Added ScaleChildrenInternal to allow controls to disable scaling of children
1991         without having to override ScaleChildren (since none of .NET's controls do). 
1992         This is required for most controls in Mono that have scrollbars to prevent the
1993         scrollbars from being moved/resized.
1994         * Nested ContainerControls can have a different scale mode than their parent. 
1995         This is briefly mentioned in MSDN but is buggy in MS.NET (the runtime and
1996         designer produce different results both of which look incorrect).
1997         * Default AutoScaleMode for ContainerControl should be Inherit.
1998         * Simplified workaround for ComboBox scaling issue.
1999         * 1.0 style auto-scaling now uses its own methods instead of sharing 2.0's. 
2000         1.0 style auto scaling should scale the whole control's size instead of
2001         ignoring the borders (except for Form) and the rounding is done differently to
2002         preserve control alignment.
2003         * ApplyAutoScaling (used for 1.0 style) should use the rounded result of
2004         GetAutoScaleSize.
2005         * Cleaned up fix for "Bug 355703 - Setting AutoScale = true doesn't stick".
2006         * CurrentAutoScaleDimensions should round the estimated character width instead
2007         of truncating.
2008         * ListBox's GetScaledBounds should always use the height it was set to instead
2009         of the height that was passed in.  This prevents rounding errors from
2010         accumulating quickly with IntegralHeight.
2011         [Bug #359098]
2012
2013 2008-02-08  Andreia Gaita <avidigal@novell.com>
2014
2015         * Form.cs: Add a null check (darn it). 
2016
2017 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
2018
2019         * MdiClient.cs: Make sure the requesting form actually owns the
2020         control menu items before removing them.  Also, use
2021         Suspend/ResumeLayout when adding or removing items so we only
2022         layout once.
2023         [Fixes bug #359887]
2024
2025 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
2026
2027         * Control.cs: Guard against an NRE in ShowFocusCues.
2028         [Fixes bug #359830]
2029
2030 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2031
2032         * Binding.cs: Implement 2.0 ReadValue method and ControlUpdateMode
2033         property, as well as stubbing DataSourceUpdateMode.
2034
2035 2008-02-08  Andreia Gaita <avidigal@novell.com>
2036
2037         * Form.cs: When closing forms, get focus back to the active control of the
2038         active form. [Fixes #341314, corner case]
2039         
2040 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
2041
2042         * MdiClient.cs: After we move the scrollbars, invalidate the NC
2043         area, so any old scrollbar artifacts are cleaned up.
2044         [Fixes bug #336305]
2045
2046 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
2047
2048         * MdiWindowManager.cs: If we are maximized and using MainMenuStrip
2049         for our menus, display that control box menu instead of the 1.1
2050         menu one.
2051
2052 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
2053
2054         * MdiControlStrip.cs: Add property to access the mdi form tied to
2055         each toolstripitem.
2056         * MdiClient.cs: Be smarter about removing and adding toolstripitems
2057         to the implicitly merged menu.  Every time we clicked the form, items
2058         were getting removed and the re-added, causing the form to jump around
2059         as the menu resized.
2060
2061 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
2062
2063         * MdiClient.cs: Make sure the NormalBounds always gets set.  It
2064         was being reset by the implicit menu merge for menustrips.
2065         [Fixes bug #336296]
2066
2067 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
2068
2069         * Form.cs: Don't do the previous change when WindowState = Normal,
2070         or it messes up where the window is placed.  Fixes test failure.
2071
2072 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
2073
2074         * Form.cs: When becoming visible, if we are an MDI child, call
2075         SetWindowState with a dummy old_state so that changes will actually
2076         be made.
2077         [Fixes the 2nd part of bug #325473]
2078
2079 2008-02-07  Andreia Gaita <avidigal@novell.com>
2080
2081         * Control.cs: Reset properties to their pre parent-change values in case
2082         the new parent == null (in which case we're basically removing the control, 
2083         and don't want any events fired due to fake property changes)
2084         [Fixes #355850]
2085
2086 2008-02-06  Ivan N. Zlatev  <contact@i-nz.net>
2087
2088         * PropertyGridView.cs: 
2089          - Refactor SetValue to allow setting the value
2090         when a custom editor is used, but the entry is not editable.
2091          - Remove the custom editor control on CloseDropDown.
2092         [Fixes #359196]
2093
2094 2008-02-06  Andreia Gaita <avidigal@novell.com>
2095
2096         * PrintControllerWithStatusDialog.cs: Set PrintFileName value through
2097         reflection only on 1.1, this property is public on system.drawing on 2.0.
2098         Fixed #359247
2099
2100 2008-02-06  Andreia Gaita  <avidigal@novell.com>
2101         
2102         * WebBrowser.cs: Do a normal page refresh by default.
2103
2104 2008-02-05  Andreia Gaita  <avidigal@novell.com>
2105
2106         * XplatUIWin32.cs, XplatUICarbon.cs: set the hwnd.Mapped flag when we create 
2107         the window so that the check on Control.UpdateZOrderOfChild passes on non-X
2108         platforms. Fixes #359036
2109         
2110         Note: Control.UpdateZOrderOfChild needs to be rewritten to not rely on 
2111         platform-specific flags.
2112
2113 2008-02-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2114
2115         * Binding.cs: Add 2.0 BindableComponent property - just return control
2116         by now.
2117
2118 2008-02-05  Everaldo Canuto  <ecanuto@novell.com>
2119
2120         * MenuAPI.cs: Check if control is disposable when track popup menu. Thanks
2121         Jonathan for this patch. Fixes #358442.
2122
2123 2008-02-05  Jonathan Pobst  <monkey@jpobst.com>
2124
2125         * Form.cs: If we change the active MDI child form, let the others
2126         know they need to repaint their title bar so it will appear inactive.
2127         [Fixes part 1 of bug #325473]
2128
2129 2008-02-05  Ivan N. Zlatev  <contact@i-nz.net>
2130
2131          * PropertyGridView.cs: Do not trucate custom editors' width
2132          and align them to the left.
2133          [Fixes #358353 and #358349]
2134
2135 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2136
2137         * BindingsCollection.cs: Implement 2.0 CollectionChanging event.
2138         Also fix the arguments passed to CollectionChangeEventArgs in the
2139         related methods.
2140
2141 2008-02-04  Geoff Norton  <gnorton@novell.com>
2142
2143         * Hwnd.cs: The conversion to Quartz coordinates happens in
2144         System.Drawing.  Removing this translation from here.
2145
2146 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
2147
2148          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs,
2149          CategoryGridEntry.cs, RootGridEntry.cs, GridItem.cs,
2150          GridItemCollection.cs:
2151          PropertyGrid rewrite part 2. Tons of bugfixes and new features.
2152
2153 2008-02-04  Geoff Norton  <gnorton@novell.com>
2154
2155         * X11Keyboard.cs: VK_MENU should send a KEYUP instead of 
2156         SYSKEYUP if any other key has been pressed in the mean time.
2157         Fixes #324404
2158
2159 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2160
2161         * ListView.cs: In ItemControl.ItemsMouseMove, only fire ItemDrag event
2162         when the item in current position is different than 0. Also, save the
2163         item index in the beginning of the operation, instead of getting the
2164         index of the item when the event is actually performed. Lastly clean
2165         the related fields in ItemsMouseUp if the ItemDrag operation wasn't
2166         triggered.
2167         [Fixes #357873]
2168
2169 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
2170
2171         * Form.cs: Alt-Minus for MDI children system menu should work
2172         with both the minus keys on the keyboard.
2173         [Fixes bug #336295]
2174
2175 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
2176
2177         * Control.cs: Don't invalidate on region change.  The WM should
2178         take care of this automagically.  Keeps us out of an infinite
2179         paint loop if someone changes the Region in the OnPaint.
2180         [Fixes bug #358327]
2181
2182 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
2183
2184          * ImageIndexConverter.cs: ConvertFrom must handle "(none)".
2185
2186 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
2187
2188         * DateTimePicker.cs: Apply patch from Srikanth Madikeri so we drop
2189         down the MonthCalendar only on F4, not Alt+F4.
2190         * MonthCalendar.cs: If we are a popup, close ourselves on Alt+F4.
2191         [Fixes bug #358340]
2192
2193 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
2194
2195         * ThemeWin32Classic.cs: For MonthCalendar, draw a dark border
2196         if its part of a DateTimePicker, else, use the back color.
2197         [Fixes bug #358339]
2198
2199 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
2200
2201         * Hwnd.cs: Use GraphicContext instead of the uninitialized bmp_g.
2202         [Fixes bug #358342]
2203
2204 2008-02-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2205
2206         * CurrencyManager.cs: When we get a ListChanged event from our source,
2207         always fire our own ListChanged event, as .Net does.
2208
2209 2008-02-03  Luke Page  <luke.a.page@gmail.com>
2210
2211         * RichTextBox.cs: AutoSize now defaults to false. Fixes Bug
2212         #358379.
2213
2214 2008-02-03  Luke Page  <luke.a.page@gmail.com>
2215
2216         * TextBoxBase.cs, RichTextBox.cs, TextControl.cs: Sets richtext
2217         property. Removed if for richtext property that was always true.
2218         PgUp/PgDn at top/bottom fixed for RTB. Fixes bug #358237.
2219
2220 2008-02-03  Luke Page  <luke.a.page@gmail.com>
2221
2222         * TextBoxBase.cs - commited patch from James Purcell that
2223         correctly sets the FixedHeight control style when the MultiLine
2224         property is changed on a TextBox control. Fixes bug 358229.
2225
2226 2008-02-02  Luke Page  <luke.a.page@gmail.com>
2227
2228         * Line.cs, LineTag.cs, RichTextBox.cs, TextControl.cs
2229         Fixes bug 351938 - caret is positioned correctly when drawn
2230         and when calculating textual position of caret, no longer
2231         has a NRE in certain situations.
2232         
2233 2008-02-01  Geoff Norton  <gnorton@novell.com>
2234
2235         * Hwnd.cs: Ensure that windows moved into -'ve coordinate space
2236         get that region removed from the paint event.
2237         * XplatUICarbon.cs: Remove the window mapping after disposing of 
2238         window.  Prevents a crash with handle reuse.  Optimize exposes
2239         only onto visible windows (rare; but possible).
2240
2241 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
2242
2243         * UpDownBase.cs: Make sure the internal textbox calls the base's
2244         OnMouseDown and OnMouseUp so the textbox will function correctly.
2245         There were notes saying it doesn't chain up, but its an internal
2246         class, so our implementation may differ.
2247         [Fixes bug #357482]
2248
2249 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
2250
2251         * ListBox.cs: Fix a logic error and don't process MouseDown
2252         for mouse buttons other than Left.
2253
2254 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
2255
2256         * Control.cs: Remove HeightInternal.
2257         * ListBox.cs: Commit patch from James Purcell that correctly
2258         calculates heights for ListBoxen.
2259         [Fixes bug #357152]
2260
2261 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
2262
2263         * Label.cs: Apply patch from James Purcell that corrects the 
2264         signature of the AutoSize property.
2265         [Fixes bug #357605]
2266
2267 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
2268
2269         * ListBox.cs: Don't throw [Mouse]Click events for buttons
2270         other than the left mouse button.
2271
2272 2008-01-31  Jonathan Pobst  <monkey@jpobst.com>
2273
2274         * Control.cs: Remove my awesome optimization as it caused some
2275         regressions with control ordering.  :(
2276         [Fixes bug #357467]
2277
2278 2008-01-31  Ivan N. Zlatev  <contact@i-nz.net>
2279
2280          * PropertyGridView.cs: Fix a NRE on double click when there is no
2281          selected object.
2282
2283 2008-01-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2284
2285         * BindingManagerBase.cs: Implement IsBindingSuspended 2.0 property.
2286
2287 2008-01-30  Jonathan Pobst  <monkey@jpobst.com>
2288
2289         * ListBox.cs: Call MouseClick and MouseDoubleClick.
2290         [Fixes bug #357146]
2291
2292 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
2293
2294         * Hwnd.cs: Make bmp, bmp_g variables threadstatic and private.
2295         * Control.cs, DataGridViewCell.cs, LineTag.cs: Use Hwnd.GraphicsContext
2296         instead of Hwnd.bmp_g.
2297
2298 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
2299
2300         * TextRenderer.cs: Don't maintain private bitmap/graphics contexts.
2301         Use the Hwnd one instead.
2302
2303 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
2304
2305         * Form.cs: Remove duplicated copy of GetAutoScaleSize.
2306
2307 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
2308
2309         * Form.cs: corcompare for RestoreBounds.
2310
2311 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
2312
2313         * Control.cs: Add MarshalAs attribute to Font getter for corcompare.
2314
2315 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
2316
2317         * Form.cs: Handle Alt-Minus for MDI children forms.
2318         * MdiWindowManager.cs: Make ShowPopup internal so Form can call it.
2319         Add mnemonics to the control menu.
2320         [Fixes bug #336295]
2321
2322 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2323
2324         * Binding.cs: Initial implementation bits of FormattingEnabled
2325         property and BindingComplete event (2.0). 
2326         * BindingCompleteEventArgs.cs: Internal methods for setting error text
2327         and exception.
2328
2329 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
2330
2331         * TableLayoutPanel.cs: Draw the table border at 0,0 instead of
2332         table.Location.  [Fixes bug #354672]
2333
2334 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
2335
2336         * Form.cs: Handle WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE to raise
2337         ResizeBegin and ResizeEnd.  [Fixes bug #346529 for win32]
2338
2339 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2340
2341         * ComboBox.cs: When OnDisplayMemberChanged method is reached, instead
2342         of doing all the re-bound work, just invalidate and call SetControlText 
2343         to set the updated text of selected item to our textbox.
2344         Fixes #333750.
2345
2346 2008-01-28  Andreia Gaita <avidigal@novell.com>
2347
2348         * HtmlWindow.cs: Add event handler support. Add Document, Frames, 
2349         IsClosed, Opener, StatusBarText, Url properties, stub out the remaining
2350         missing properties and methods. Add Load, Unload, Error, GotFocus, 
2351         LostFocus, Resize, Scroll events (only load and unload are connected)
2352
2353 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
2354
2355         * AccessibleObject.cs: Modified argument names to match MS.
2356         * Button.cs: Modified argument names to match MS.
2357         * BindingContext.cs: Modified argument names to match MS.
2358         * BindingMemberInfo.cs: Modified argument names to match MS.
2359         * ButtonBase.cs: Modified argument names to match MS.
2360         * ComboBox.cs: Modified argument names to match MS.
2361         * Control.cs: Modified argument names to match MS.
2362         * CheckedListBox.cs: Modified argument names to match MS.
2363         * CommonDialog.cs: Modified argument names to match MS.
2364         * DataGrid.cs: Modified argument names to match MS.
2365         * CursorConverter.cs: Modified argument names to match MS.
2366         * ControlPaint.cs: Modified argument names to match MS.
2367         * CheckBox.cs: Modified argument names to match MS.
2368         * ControlBindingsCollection.cs: Modified argument names to match MS.
2369         * BindingSource.cs: Modified argument names to match MS.
2370         * DataFormats.cs: Modified argument names to match MS.
2371         * ContainerControl.cs: Modified argument names to match MS.
2372         * CurrencyManager.cs: Modified argument names to match MS.
2373         * Application.cs: Modified argument names to match MS.
2374         * ContextMenuStrip.cs: Modified argument names to match MS.
2375         * ContextMenu.cs: Modified argument names to match MS.
2376         * BindingManagerBase.cs: Modified argument names to match MS.
2377         * WindowsFormsSection.cs: Fixed line ending.    
2378
2379 2008-01-27  Andreia Gaita <avidigal@novell.com>
2380
2381         * PropertyGridView.cs: Rearrange the dropdown loop so that it exits when
2382         detecting that the dropdown toolwindow is hidden. EndLoop outside the
2383         while.
2384
2385 2008-01-26  Gert Driesen  <drieseng@users.sourceforge.net>
2386
2387         * PropertiesTab.cs: Fixed argument name of GetDefaultProperty to match
2388         MS. Code formatting.
2389
2390 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2391
2392         * Binding.cs: Don't avoid the Format event if the control 
2393         property type is object. Also, if the value retrieved by 
2394         the data source is null _and_ the control proeprty type 
2395         is object, return Convert.DBNull (match .Net).
2396         Fixes part of #324286.
2397
2398 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2399
2400         * ListControl.cs: Since we are getting two BinginContextChanged events
2401         for the same binding context instance (when the control is added to
2402         form, and when the form is actually shown), take it into account only the
2403         first time for a given binding context instance.
2404         Fixes part of #324286.
2405
2406 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
2407
2408          * PropertryGridView.cs: Ops.
2409
2410 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
2411
2412          * PropertyGridView.cs: Close dropdown form if the owner form is
2413          moved or minimized.
2414          [Fixes bug #322446]
2415
2416 2008-01-25  Ivan N. Zlatev  <contact@i-nz.net>
2417
2418          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs, GridItem.cs, 
2419          RootGridEntry.cs, CategoryGridEntry.cs:
2420          PropertyGrid rewrite.
2421          - Rewrite all of the control logic in PropertyGrid.
2422          - Rewrite all of the ComponentModel logic in GridEntry.
2423          - Rewrite all UI work in PropertyGridView.
2424          - Many bugfixes, etc.
2425
2426 2008-01-24  Jonathan Pobst  <monkey@jpobst.com>
2427
2428         * TableLayoutPanel.cs: Enhance GetPreferredSize to take into account
2429         when all contained controls are autosize or dock-fill.  Also take into
2430         account when the total percentage of column/row sizes is not 100%.
2431         [Fixes bug #354672]
2432
2433 2008-01-24  Andreia Gaita <avidigal@novell.com>
2434
2435         * HtmlDocument.cs:
2436         - Save a reference to the IDocument in the instance and
2437           use that one instead of going to WebHost.Document; the document that the 
2438           WebHost returns might not be the right one (in case of frames).
2439         - Use the hashcode returned from the IDocument interface.
2440         - Implemented: ActiveElement, ActiveLinkColor, All, BackColor, Cookie, 
2441           Domain (setter is not supported), Encoding, ForeColor, Forms, Images, 
2442           LinkColor, Url, VisitedColor, Window
2443
2444         * HtmlElement.cs: 
2445         - Implemented: CanHaveChildren, Children, Document, GetAttribute, 
2446           set_Attribute, NextSibling, Parent, TagName, AppendChild, 
2447           GetElementsByTagName, GetHashCode, HasAttribute, InsertAdjacentElement,
2448           SetAttribute, Equals, equality operators.
2449         - Added stubs for: AttachEventHandler, DetachEventHandler, Focus, 
2450           InvokeMember, RaiseEvent, RemoveFocus, ScrollIntoView, 
2451         
2452         * HtmlElementCollection.cs: Change implementation to use a generic
2453         collection. Implemented Enumerator and CopyTo
2454
2455         * HtmlHistory.cs: Add constructor, no implementation yet.
2456
2457         * HtmlWindow.cs: Initial implementation with: Name, Parent, Alert,
2458         Confirm, Prompt, Navigation, ScrollTo, Open, OpenNew, GetHashCode, 
2459         Equals, equality operators.
2460
2461         * HtmlWindowCollection.cs: Implemented. 
2462
2463         * WebBrowser.cs: Use the Navigation object to navigate (WebHost.Navigate
2464         has been deprecated).
2465
2466         * WebBrowserBase.cs: Use Completed event to track document loading
2467         (Navigated has been deprecated)
2468
2469 2008-01-24  Jonatham Pobst  <monkey@jpobst.com>
2470
2471         * ThemeWin32Classic.cs: Add tab stops and NoWrap to dropdown MenuItems.  Top
2472         level MenuItems do not respect tabs.
2473         [Fixes bug #355196]
2474
2475 2008-01-23  Geoff Norton  <gnorton@novell.com>
2476
2477         * XplatUICarbon.cs:  Ensure that windows are created in their initial 
2478         FormWindowState.  Finished fixing Fullscreen windows on Carbon
2479
2480 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
2481
2482         * MenuAPI.cs: When FindForm fails uses FindRootParent to find the control to
2483         be used as grab_control. Also save status of capture before show ContextMenu
2484         and restore it after close.
2485
2486 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
2487
2488         * Control.cs: Internal FindRootParent method added to return high control
2489         in parent tree.
2490
2491 2008-01-23  Geoff Norton  <gnorton@novell.com>
2492
2493         * Hwnd.cs: Refactor Whole/Client pointer to 1 element for Cursors.
2494         * XplatUICarbon.cs: Refactor some dead code out to Cursor.cs and make
2495         it work again.  Handle HITTEST events.
2496
2497 2008-01-23  Geoff Norton  <gnorton@novell.com>
2498
2499         * XplatUICarbon.cs: Ensure that we always have a host window.  Prevents
2500         a crash in certain cases.  Support for fullscreen windows in certain cases.
2501
2502 2008-01-23  Jonathan Pobst  <monkey@jpobst.com>
2503
2504         * Form.cs: Don't set AutoScaleMode in AutoScale if we don't have to.
2505         [Fixes bug #355703]
2506
2507 2008-01-23  Geoff Norton  <gnorton@novell.com>
2508         
2509         * XplatUICarbon.cs: Remove some dead code that was causing warnings.
2510
2511 2008-01-23  Geoff Norton  <gnorton@novell.com>
2512
2513         * XplatUICarbon.cs:  Re-enabled Carets in QuickDraw as a overlay window.
2514
2515 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
2516
2517         * SplitContainer.cs: Remove unused declarations.
2518         * Binding.cs: Remove unused declarations.
2519
2520 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
2521
2522         * Form.cs: Remove unused declaration of 'active' in Activate method.
2523         * Control.cs: Move declaration of nested_layout inside '#if NET_2_0" to 
2524         prevent compilation warnings.
2525         * TextControl.cs: Remove unused declaration of selection_pos_on_line.
2526         * Hwnd.cs: Remove unused declaration of clip in GetClippingRectangles.
2527         * Bindings.cs: Remove unused formatting_enabled declaration.
2528         * ToolTip.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
2529         warnings.
2530         * TreeView.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
2531         warnings.
2532         * PropertyGridView.cs: Remove usused 'ex' declaration.
2533         * DataGridView.cs: Remove unused declarations.
2534
2535 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
2536
2537         [Fixes bugs #343966, #338511 and other non reported (context)menu bugs]
2538         
2539         * Form.cs: Remove all active_tracker (used by menu) stuff, it is now moved 
2540         to Control class, it makes possible to grab menu to controls that can't 
2541         reach Form using parent tree. Handle for WmButtonUp, WmButtonDown and
2542         WmMouseMove removed since it was used only to track menu events.
2543
2544         * Control.cs:
2545         - Moved all active_tracker stuff from Form.
2546         - ProcessActiveTracker added to prevent code duplicity, now mouse events 
2547         can call this method instead of reimplement all necessary code handle for
2548         menu tracker.
2549         - Call to ProcessActiveTracker for mouse events (WmButtonUp, WmButtonDown
2550         and WmMouseMove).
2551         
2552         * MenuAPI.cs: 
2553         - Remove special handle to ToolStripOverflow, now we can grab menu to 
2554         controls that can't reach Form using parent tree.
2555         - Change type of grab_control from Form to Control.
2556
2557 2008-01-22  Geoff Norton  <gnorton@novell.com>
2558
2559         * TextBoxBase.cs: Split up the sizing of controls and placing of 
2560         controls.  Fixes a bug where scrollbars in Reflector could be sized
2561         wrong and have non-working thumbers.
2562
2563 2008-01-23  Geoff Norton  <gnorton@novell.com>
2564
2565         * XplatUI.cs: Refactor environment variables to default support to the
2566         Carbon driver on the Mac.
2567
2568 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
2569
2570         * Label.cs: Uses new LabelPainter for drawing operations.
2571         * ThemeWin32Classic.cs: DrawLabel and LabelDefaultSize removed.
2572         * Theme.cs: DrawLabel and LabelDefaultSize removed.
2573
2574 2008-01-22  Geoff Norton  <gnorton@novell.com>
2575
2576         * XplatUICarbon.cs: Enable packing scroll delta into the mouse wParam
2577
2578 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
2579
2580         * ThemeWin32Classic.cs: Run Flat, Button appearance, 2.0 CheckBoxes
2581         through the normal flat button code and don't draw the checkbox glyph.
2582         * Theme.cs: Button->ButtonBase signature change.
2583         [Fixes bug #324755]
2584
2585 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
2586
2587         * LinkLabel.cs: Uses new class LinkLabelPainter.
2588
2589 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
2590
2591         * MessageBox.cs: Adjust right border space, we don't need to add 
2592         "space_border*2" two times.
2593
2594 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
2595
2596         * ScrollableControl.cs: With the advent of 2.0's Padding, DockPadding
2597         becomes a wrapper around Padding.
2598         [Fixes a part of bug #354676]
2599
2600 2008-01-22 Geoff Norton  <gnorton@novell.com>
2601
2602         * Mime.cs:  Avoid a needles exception on OSX if we dont have a buffer
2603         acquired.  Also ensure the buffer is large enough to grab the header
2604         we need on linux boxes.
2605
2606 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
2607
2608         * Control.cs: Implement a custom enumerator so people can delete
2609         from the Controls collection while in a foreach.
2610         [Fixes bug #355074]
2611
2612 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
2613
2614          * PropertyGridView.cs: Fix focusing behavior:
2615          - Tab should focus the grid text box.
2616          - Clicking on the labels shouldn't focus the grid text box.
2617
2618 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
2619
2620          * PropertyGridView.cs: IsValueTypeGridItem should return true 
2621          for Arrays as well.
2622
2623 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
2624
2625          * PropertyGrid.cs, GridEntry.cs, PropertyGridView.cs:
2626           - Renamed GridEntry.SelectedObjects to TargetObjects to better
2627           reflect the property name role.
2628           - PropertyGrid.GetTarget is not required as the target is known
2629           (TargetObjects).
2630           - Setting values will handle value types as a special case now and
2631           populate them up in the chain.
2632           [Fixes #354990]
2633
2634 2008-01-21  Jonathan Pobst  <monkey@jpobst.com>
2635
2636         * Hwnd.cs: Create a public property for the Graphics we keep around.
2637
2638 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
2639
2640          * PropertyGridView.cs: Just hide the grid textbox and do nothing more 
2641          when the current object selection changes. 
2642          Fixes failing test SelectedObject_Null2.B5.
2643
2644 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
2645
2646          * PropertyGrid.cs: Process Browsable properties with 
2647          DesignerSerializationVisibilityAttribute.Content as being expandable.
2648          This seems also what MS does. Without this e.g SplitContainer.Panel1/2
2649          will not be expandable. We should be nested components-friendly now.
2650
2651 2008-01-21  Andreia Gaita <avidigal@novell.com>
2652
2653         * WebBrowserBase.cs: Check if control was loaded properly, 
2654         don't bind if it wasn't.
2655
2656         * HtmlDocument.cs: Implement CreateElement, Equals, Focus, 
2657         GetElementFromPoint, equality operators, OpenNew, Write.
2658         Remove extra set_Body
2659
2660 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
2661
2662         * ContainerControl.cs, Control.cs: Apply patch from James Purcell
2663         that makes our AutoScale* stuff more tolerant to different orders
2664         of being set.  [Fixes bug #354669]
2665
2666 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
2667
2668          * PropertyGridView.cs, PropertyGridTextBox.cs: 
2669          Drop WM_LBUTTONDOWN msg sending and use focusing instead.
2670          [Fixes #339005 and #348209]
2671
2672 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
2673
2674          * PropertyGridView.cs: Hide the grid text box before adjusting it
2675          for the newly selected GridItem.
2676          [Fixes #338999]
2677
2678 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
2679
2680         * Form.cs: Give MDI children the opportunity to cancel the parent form
2681         attempting to close.  Ensure that all [Form]Clos[ing,ed] events get called
2682         properly for both the parent and child.
2683         * Application.cs: Signature of internal method changed, pass the previous
2684         default of false.
2685         [Fixes bug #354286]
2686
2687 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
2688
2689         * PropertyGridView.cs: Set the property value only if it has changed.
2690         [Fixes bug #338997]
2691
2692 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
2693
2694         * MenuAPI.cs: Windows sends us MOUSEMOVE messages when any key is pressed.
2695         If the mouse hasn't actually moved, ignore these messages so the currently
2696         highlighted menuitem isn't reset to the one under the mouse.
2697         [Fixes bug #333668]
2698
2699 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
2700
2701         * PropertyGridView.cs: When the property changes Invalidate the GridItem
2702         in order for the properties with UITypeEditor.GetPaintValueSupported == true
2703         to reflect the change visually.
2704         [Fixes bug #338998]
2705
2706 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
2707
2708         * ButtonBase.cs: Add LineLimit to 1.1 button drawing, and TextBoxControl
2709         to 2.0 button drawing.
2710         * ThemeWin32Classic.cs: Ensure that the rectangle we are using to draw 
2711         the button text is tall enough for one line.  LineLimit says it will
2712         always draw at least one line, but it is a lie.
2713         [Fixes bug #324941]
2714
2715 2008-01-17  Atsushi Enomoto  <atsushi@ximian.com>
2716
2717         * XplatUIStructs.cs, X11Keyboard.cs :
2718           added some more VK_* keys to be handled.
2719
2720 2008-01-16  Andreia Gaita <avidigal@novell.com>
2721
2722         * Control.cs: Check if there is a container before setting or getting
2723         the validation flag.
2724
2725 2008-01-16  Andreia Gaita <avidigal@novell.com>
2726
2727         * ContainerControl.cs: Add flag to track if a control cancels validation, 
2728         so we don't fire click events.
2729
2730         * Control.cs: 
2731         - (HandleClick) Check if validation was cancelled before  firing the click
2732         events (doubleclicks are fired, but not clicks)
2733         - (WmLButtonDown) Reset validation flag. The flag is normally reset on 
2734         ContainerControl.set_ActiveControl, but in the case of non-selectable
2735         controls, like a Label, activecontrol is not set. 
2736
2737         * ButtonBase.cs: Only fire clicks if validation passes.
2738         
2739         Fixes #353310
2740
2741 2008-01-16  Geoff Norton  <gnorton@novell.com>
2742
2743         * XplatUICarbon.cs: Implement GetAutoScaleSize to fix Reflector on
2744         trunk
2745
2746 2008-01-16  Jonathan Pobst  <monkey@jpobst.com>
2747
2748         * FolderBrowserDialog.cs: If we cannot interpret the user's requested
2749         SelectedPath, just display the default dialog instead of crashing.
2750         [Fixes bug #348989]
2751
2752 2008-01-16  Geoff Norton  <gnorton@novell.com>
2753
2754         * XplatUICarbon.cs:  Flicker be gone!  Generate our messages in
2755         AddExpose instead of trusting apples compositing manager which doesn't
2756         work for our use case.  Remove some dead code causing warnings and 
2757         redecorate some other code to prevent warnings.
2758
2759 2008-01-16  Geoff Norton  <gnorton@novell.com>
2760
2761         * XplatUICarbon.cs:  Avoid some unecessary invalidation calls when
2762         carbon signals us to redraw.  Fixes another portion of the flickering bug
2763
2764 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
2765
2766         * Form.cs: Prevent the MdiParent property to be set when value is the same
2767         as value already set. Fixes bug #328019.
2768
2769 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
2770
2771         * Form.cs: Don't set mdi_parent as null when mdi window close is prevented, 
2772         it prevents NRE when closing mdi child windows. Fixes bug #325211.
2773
2774 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
2775
2776         * InternalWindowManager.cs: Invalidade close button after mouse up when 
2777         mdi form is prevented to close.
2778
2779 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
2780
2781         * MdiClient.cs: Fix the minimum bounds on child window sizes when cascade,
2782         thanks to Andy Hume. Fixes bug #325433.
2783
2784 2008-01-16  Andreia Gaita <avidigal@novell.com>
2785
2786         * LinkLabel.cs: Reset focused_index when resellecting the control.
2787         Fixes #323190
2788
2789 2008-01-15  Geoff Norton  <gnorton@novell.com>
2790
2791         * XplatUICarbon.cs:  Rework Grab/Ungrab handling to send some needed 
2792         messages.
2793
2794 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
2795
2796         * Form.cs: Change 2 more AutoScaleBaseSize calculation to round instead
2797         of truncate.
2798
2799 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
2800
2801         * ContainerControl.cs: Setting AutoScaleMode to anything should set
2802         Form.AutoScale to false.
2803         * Form.cs: Setting AutoScale to true should set AutoScaleMode to None.
2804         AutoScaleBaseSize should be changed on Font change unless it has been
2805         explicitly set.
2806         [Fixes bug #353827]
2807
2808 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
2809
2810         * MenuAPI.cs: On instance of MenuTracker check if source control is
2811         ToolStripOverflow and use properly method to find form.
2812         [Fixes bug #338511]
2813
2814 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
2815
2816         [Fixes bug #323241 Transparent toolbar support]
2817
2818         * ToolBar.cs: Define ToolBarStyles.TBSTYLE_FLAT in CreateParams when toolbar
2819         is flat.
2820
2821         * Control.cs: Paint background as transparent in case of TBSTYLE_FLAT is
2822         defined in control style to mimic win32 behavior.
2823
2824         * ThemeWin32Classic.cs: Don't paint background for flat apparence toolbar, 
2825         it will be transparent.
2826
2827 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
2828
2829         * XplatUIStructs.cs: Implement ToolBarStyles to use in Style property of
2830         CreateParams for ToolBar controls.
2831
2832 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
2833
2834         * Form.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs: Forms with
2835         FixedToolWindow, SizeableToolWindow, or None for border styles have
2836         different minimum sizes than regular forms.  Implemented to fix
2837         regression in PDN with toolbox being too wide.
2838
2839 2008-01-14  Andreia Gaita <avidigal@novell.com>
2840
2841         * HtmlElementCollection.cs: Implemented
2842
2843         * HtmlElement.cs: Implemented:
2844           - All
2845           - InnerHtml
2846           - InnerText
2847           - Id
2848           - Name
2849           - FirstChild
2850
2851         * HtmlDocument.cs: Implemented GetElementsByTagName.
2852
2853 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
2854
2855         * Screen.cs: Stub BitsPerPixel to always return 32.
2856
2857 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
2858
2859         * Form.cs: Implement RestoreBounds.
2860
2861 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
2862
2863         * RichTextBox.cs, ToolStrip.cs: Fix some typos pointed out by
2864         Sebastien and his fabulous magical problem-finding machine:
2865         Gendarme.  Also put a MonoTodo on AutoWordSelect since we don't
2866         respect the value set.
2867
2868 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
2869
2870         * Form.cs: In WmWindowPosChanged call base.WndProc including when state is
2871         minimized. Fixes bug #325122 for Win32. Thanks  Srikanth Madikeri.
2872
2873 2008-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2874
2875         * X11Dnd.cs: Since we don't propagate the WM_LBUTTONUP/WM_RBUTTONUP
2876         messages (to match .Net), we need to remove the capture ourselves.
2877
2878 2008-01-11  Jonathan Pobst  <monkey@jpobst.com>
2879
2880         * MenuAPI.cs: If we get an Alt-F4, release our capture so Windows
2881         will process the message and close our window.
2882         [Fixes bug #324328]
2883
2884 2008-01-10  Geoff Norton  <gnorton@novell.com>
2885
2886         * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
2887         tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
2888         window manager.
2889
2890 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
2891
2892         * Form.cs: Enforce the Form minimum size in SetBoundsCore.  Fixed
2893         failing test.
2894
2895 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
2896
2897         * XplatUIX11.cs: Set a minimum window size and enforce it.  Even though
2898         Linux doesn't care, having a minimum matches MS and keeps the window
2899         from becoming too small to use window decorations.
2900         [Fixes bug #338996]
2901
2902 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
2903
2904         * ThemeWin32Classic.cs: Tie CheckBox/RadioButton focus rectangles to
2905         ShowFocusCues.  Make focus rectangles fit the text instead of the whole
2906         control.  [Fixes bug #325419]
2907
2908 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
2909
2910         * ComboBox.cs: Guard against an NRE if the user open a new form from a
2911         SelectedIndexChanged event.  This closes the combobox dropdown, and we
2912         were trying to dispose it.  [Fixes bug #352830]
2913
2914 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
2915
2916         * Control.cs, Form.cs: Implement the necessary semantics for
2917         ShowFocusCues.  All paint code will need to check Control.ShowFocusCues
2918         to determine if a focus rectangle should be drawn.
2919         * PropertyGrid.cs: Fix property visibility to match override.
2920         * ThemeWin32Classic.cs: Use ShowFocusCues for Button.
2921
2922 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
2923
2924         * Application.cs: Use GetCommandLineArgs to calculate ExecutablePath.
2925         [Fixes bug #323552]
2926
2927 2008-01-09  Geoff Norton  <gnorton@novell.com>
2928         
2929         * XplatUICarbon.cs: Scroll windows in the correct direction.
2930
2931 2008-01-09  Geoff Norton  <gnorton@novell.com>
2932
2933         * XplatUICarbon.cs: Track all created utility windows so we can hide them
2934         when the app is deactivated or spaces is enabled.
2935
2936 2008-01-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2937
2938         * ListViewItem.cs: Cosmetic fix - When calculating layout for item, don't add an
2939         extra separation pixel for the label rect origin if SmallImageList is
2940         null, and thus we don't need that separation between icon and label
2941         rects.
2942         Patch by Ernesto Carrea.
2943         Fixes # 340195.
2944
2945 2008-01-08  Jonathan Pobst  <monkey@jpobst.com>
2946
2947         * StatusStrip.cs: Invalidate after completing a layout.  The base
2948         OnLayout does this, but we don't call the base.
2949         * ToolStripItem.cs: Revert the previous change to invalidate after
2950         the item moves.
2951         [Fixes bug #351341 better.]
2952
2953 2008-01-07  Geoff Norton  <gnorton@novell.com>
2954
2955         * XplatUICarbon.cs:  WM_DESTROY is a teardown of a single window
2956         not a notification to exit the application.  Listen for WM_QUIT
2957         instead.
2958
2959 2008-01-07  Andreia Gaita <avidigal@novell.com>
2960
2961         * HtmlDocument.cs: Fix case on GetElementById (interface changed)
2962
2963 2008-01-07  Jonathan Pobst  <monkey@jpobst.com>
2964
2965         * ToolStripItem.cs: If the bounds of an item changes, invalidate it
2966         so it can repaint at the correct location.
2967         [Fixes bug #351341]
2968
2969 2008-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2970
2971         * ListControl.cs: SelectedValue should return a null value if
2972         SelectedIndex is -1. Also, when setting it, it should throw an
2973         ArgumentNullException if the value is null, as well as taking
2974         into account the String.Empty value, instead of ignoring it (we have
2975         tests for that now).
2976         Fixes part of #324286.
2977
2978 2008-01-06  Jonathan Pobst  <monkey@jpobst.com>
2979
2980         * TextBoxBase.cs, TextControl.cs: Patch from Luke Page to ensure
2981         SelectionStart is updated after pressing enter.  Fixes bug #351918.
2982
2983 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
2984
2985         * TextControl.cs: Revert a piece r92316 that prevented the fix
2986         from working when there were multiple tags in the text box.
2987         Fixes bug #351881.
2988
2989 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
2990
2991         * TextControl.cs: Apply patch from Luke Page that prevents an
2992         NRE when determining the beginning of a paragraph.
2993         Fixes bug #351886.
2994
2995 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
2996
2997         * TextBoxBase.cs: Apply patch from Luke Page that ensures the
2998         caret gets moved with clicking away from a selected block of
2999         text.  Fixes bug #351885.
3000
3001 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
3002
3003         * TextControl.cs: Apply patch from Luke Page that takes line
3004         alignment into account for mouse selection, so that center and
3005         right aligned text can be selected.
3006         Fixes bug #351881.
3007
3008 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
3009
3010         * RichTextBox.cs: Apply patch from Luke Page that fixes some caret
3011         issues after loading an RTF file by using the correct line feeds.
3012         Fixes bug #351841.
3013
3014 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
3015
3016         * TextControl.cs: When deleting multiple line selections, we need
3017         to invalidate every line beginning at the first line of the selection.
3018         Patch from Luke Page fixes bug #351791.
3019
3020 2008-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3021
3022         * ListControl.cs: When getting a CurrencyManager.PositionChanged
3023         event, don't set SelectedIndex if the number of items is 1. This is
3024         because, for the first item, PositionChanged is fired _before_
3025         ItemChanged (the place where we actually populate the items), and
3026         leave us in a temporary invalid state (since items collection is
3027         empty).
3028         Fixes #349655.
3029
3030 2008-01-04  Geoff Norton  <gnorton@novell.com>
3031
3032         * XplatUICarbon.cs:  Create native toolwindows instead of
3033         the managed drawing ones.
3034
3035 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
3036
3037         * LineTag.cs: If the line doesn't have any characters, return
3038         0 for GetCharIndex.  Fixes an AOORE exception after certain
3039         caret movements.  Fixes bug #351683.  Patch by Luke Page.
3040
3041 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
3042
3043         * TextBoxBase.cs: Apply patch from Luke Page so when backspace
3044         is hit when there is selected text, only the selected text gets
3045         deleted, not the character in front of the selection as well.
3046         Fixes bug #351578.
3047
3048 2008-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3049
3050         * ComboBox.cs: When the values are displayed, calculate the
3051         ComboListBox scrollbar's LargeChange based on the visible area's
3052         height and  the actuall ItemHeight, instead of calculating it
3053         based on MaxDropItems value, since it's not used by our _current_ 
3054         2.0 profile.
3055         Fixes #332366.
3056
3057 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
3058
3059         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
3060         Patch from Luke Page that fixes issues with font colors and styles
3061         not showing up in a readonly RichTextBox.  Fixes bug #324354.
3062
3063 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
3064
3065         * Line.cs, RichTextBox.cs, TextControl.cs: Another awesome patch
3066         from Luke Page.  This one fixes bug #349926.
3067
3068 2007-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3069
3070         * CurrencyManager.cs: Actually fire the 2.0 ListChanged event when
3071         an item in the IBindingList source changes with
3072         ListChangedType.ItemAdded. Ignore for now firing the event for other
3073         changes, since we want to have tests for those cases as well.
3074
3075 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
3076
3077         * TextBoxBase.cs: Don't store a 1x1 Bitmap for every TextBox
3078         created.
3079
3080 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
3081
3082         * TextBoxTextRenderer.cs: Implement a cache for measuring each
3083         character.  This is effective because the typical usage of a
3084         TextBox is with a limited amount of fonts and characters, and
3085         the current implementation of TextBox measures everything one
3086         character at a time.  Another second or two speedup for bug #347238.
3087
3088 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
3089
3090         * Control.cs: Rewrite the Font getter to only query the parent's
3091         Font property once instead of twice.  Since this operation is
3092         recursive, the queries were growing exponentially as the control
3093         tree got deeper.  Another second or two speedup for bug #347238.
3094
3095 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
3096
3097         * Control.cs: Avoid setting a parent (and more importantly, updating
3098         the zorder of all its children) if the parent is already correct in
3099         WmShowWindow.  Decreases the startup time of the test case on bug
3100         #347238 from 35 seconds to 11 seconds.
3101
3102 2007-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3103
3104         * X11Dnd.cs: When the dnd operation has started and we are 
3105         in the dnd loop, don't dispatch either WM_LBUTTONUP nor WM_RBUTTONUP.
3106         This is done to match .Net, which doesn't send those messages after
3107         dnd operation was completed/cancelled.
3108         Fixes #349922.
3109
3110 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
3111
3112         * ToolStrip.cs: Previous change should be != null, not == null.
3113         Thanks Gert!
3114
3115 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
3116
3117         * ToolStrip.cs: Guard against an NRE after ItemClicked is called, the
3118         user may have moved the mouse off the current item during the event.
3119
3120 2007-12-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3121
3122         * ListView.cs: In ItemControl.ItemsMouseMove, try to avoid
3123         calling GetItemAt for every MouseMove event by also taking into
3124         account whether any mouse button is pressed (probably dragging); 
3125         if so, we can call GetItemAt, and if not, try to not call it 
3126         (GetItemAt can be quite expensive when used with a large number of items).
3127
3128 2007-12-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3129
3130         * ListView.cs: Implement -finally- support for dnd, by calling
3131         OnItemDrag as needed. Also, remove the dnd TODO, and add myself to the
3132         authors list ;-).
3133         * ListViewInsertionMark.cs: Implement NearestIndex method, by doing a
3134         simple calculation of distances for all the items in the owner
3135         listview.
3136
3137 2007-12-21  Geoff Norton  <gnorton@novell.com>
3138
3139         * XplatUICarbon.cs:  Ensure that we create WindowMapping handles
3140         for windows that are originally created as invisible.  Fixes missing
3141         main window in paint-mono.
3142
3143 2007-12-21  Geoff Norton  <gnorton@novell.com>
3144
3145         * XplatUICarbon.cs:  Register our D&D handler.  Register our custom
3146         subclass handler for com.novell.mwfview subclassing HIView.  Implement
3147         Pasteboard and Dnd methods.
3148
3149 2007-12-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3150
3151         * ListBox.cs: When we got focus, give focus to first item if there
3152         wasn't any pervious focused item. Also update navigation to depend on
3153         SelectedIndex rather than FocusedItem, just as .Net does.
3154         Fixes #349174.
3155
3156 2007-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3157
3158         * ListBox.cs: Both FindString and FindStringExact methods must do an
3159         case insensitive search, should allow the last valid index to be
3160         passed in the overload taking an initial index, and should also
3161         continue searching from the top back to the specified index when it
3162         reaches the bottom.
3163
3164 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
3165
3166         * TextControl.cs: Apply patch from Luke Page that fixes a scrolling
3167         redraw issue, and allows RichTextBox to draw colored text even while
3168         disabled or readonly.
3169
3170 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
3171
3172         * RichTextBox.cs, TextBoxBase.cs: Apply patch from Luke Page that
3173         disallows cut/paste in a readonly textbox, adds support for Shift-Insert,
3174         and doesn't grey text in a disabled RichTextBox.
3175
3176 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
3177
3178         * RichTextBox.cs: Apply patch from Luke Page that adds better support
3179         for many RTF commands: quad alignment, separate formatting for blocks
3180         inside groups, and ParDef support.  Makes the test case from bug #324589
3181         look much better.
3182
3183 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
3184
3185         * LineTag.cs: Fix an error in the new Draw method that caused
3186         a crash when rendering the document on bug #324589.
3187
3188 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
3189
3190         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs,
3191         TextControl.cs: Apply patch from Luke Page that adds support
3192         for URL links in RichTextBox.
3193         [Fixes enhancement #342516]
3194
3195 2007-12-18  Everaldo Canuto  <ecanuto@novell.com>
3196
3197         * MenuItem.cs: When cloning menuitem clone also name and tag properties for
3198         2.0 profile. Thanks Ernesto Carrea and Luke Page. Fixes bug #340289.
3199
3200 2007-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3201
3202         * ListBox.cs: When a key gets pressed, try to find a string
3203         if the key is a character or a digit.
3204         Fixes #343971.
3205
3206 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
3207
3208         * TableLayoutPanel.cs: Remove some unused variables.
3209
3210 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
3211
3212         * DateTimePicker.cs: Commit patch from Luke Page that ensures
3213         we don't end up at an invalid date when we click the up/down
3214         spinner to change the month or year.  Fixes bug #348682.
3215
3216 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
3217
3218         * Application.cs: Calling Exit in 2.0 should chain to the
3219         Exit (CancelEventArgs) version so it can be cancelled.
3220         * Form.cs: Create a flag to allow raising the Closing
3221         events to be skipped.  We raise them once in Application.Exit
3222         and don't want to raise them again when the Form is actually
3223         closed.  [Fixes bug #349073]
3224
3225 2007-12-16  Jonathan Pobst  <monkey@jpobst.com>
3226
3227         * ToolStripDropDown.cs: Guard against an NRE when there
3228         hasn't been a mainform set in the application context.
3229         [Fixes bug #349108]
3230
3231 2007-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3232
3233         * ListBox.cs: When SetBoundsCore gets called, besides
3234         calling UpdateScrollBars, update the value of
3235         last_visible_index, since we could need to show more items
3236         than before, and we need to let the paint routines know that.
3237         Fixes #344445.
3238
3239 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3240
3241         * ListView.cs: Add DesignerSerializationVisibility attribute to
3242         InsertionMark property.
3243         * ListViewItem.cs: Add same attribute to Position property.
3244
3245 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3246
3247         * ListViewItem.cs: .ctor (SerializationInfo, StreamingContext)
3248         is 2.0 only.
3249
3250 2007-12-14  Jonathan Pobst  <monkey@jpobst.com>
3251
3252         * ThemeWin32Classic.cs: Don't draw the background on a
3253         flat button if there is a background image.
3254         [Fixes bug #348649]
3255
3256 2007-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3257
3258         * ListBox.cs: If we remove the item currently selected,
3259         remove it not only from SelectedItems, but also
3260         resetting selected_index. Moreover, set focused_item to Items.Count - 1 if 
3261         the items count decreased and focused_item has bigger value than that.
3262
3263 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
3264
3265         * Control.cs: Perform our layout after we resize ourselves
3266         if we had to adjust our AutoSize.  Missed commit for bug
3267         #346246.
3268
3269 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
3270
3271         * TableLayoutPanel.cs: Override GetPreferredSizeCore so
3272         we can provide an implementation of AutoSize.
3273         [Fixes bug #346246]
3274
3275 2007-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3276
3277         * ListBox.cs: Add the internal overload Sort (bool paint),
3278         to indicate whether we actually need a paint or we will
3279         call Refresh ourselves. This way we don't request a paint
3280         _before_ having an updated and valid layout.
3281         Fixes #347233.
3282
3283 2007-12-12  Andreia Gaita <avidigal@novell.com>
3284
3285         * XPlatUIX11.cs: Send paint messages when updating a systray icon
3286         * NotifyIcon.cs: Invalidate the window before doing a systray change so it is
3287         properly invalidated. 
3288         Fixes #324237
3289
3290 2007-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3291
3292         * ListViewItem.cs: When using a .ctor taking a ListViewGroup,
3293         don't simply assign it to our internal group field, but instead 
3294         use our Group property, which should do all the neccessary work
3295         required to support groups. Fixes an issue reported to me (mail) by a 
3296         guy using this new feature.
3297
3298 2007-12-11  Jonathan Pobst  <monkey@jpobst.com>
3299
3300         * Control.cs: Use Scale instead of ScaleControl to ensure the
3301         whole hierarchy gets scaled.
3302         [Fixes bug #347282]
3303
3304 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
3305
3306         * DateTimePicker.cs: Don't set the internal MonthCalendar's
3307         Parent property.  Doing this causes the control to be hosted by
3308         the Form instead of being a popup window.
3309         [Fixes bug #347665]
3310
3311 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
3312
3313         * ToolStripItemCollection.cs: If we try to insert a ToolStripItem
3314         at an index higher than Count, just use Add instead of Insert.
3315         [Fixes bug #347669]
3316
3317 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
3318
3319         * ThemeWin32Classic.cs: Don't draw a PictureBox's background in
3320         DrawPictureBox, this is handled by Control.PaintBackground.
3321         [Fixes bug #347276]
3322
3323 2007-12-10  Everaldo Canuto  <ecanuto@novell.com>
3324
3325         * MenuAPI.cs: When process menu keys return true by default only if menu is
3326         active. Fixes bug #342892.
3327
3328 2007-12-09  Andreia Gaita <avidigal@novell.com>
3329
3330         * Control.cs: check if windows are actually mapped before
3331         trying to zorder. Fixes #342509, #346955
3332
3333 2007-12-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3334
3335         * ListView.cs:
3336         * ListViewInsertionMark.cs:
3337         * ThemeWin32Classic.cs: Implement the drawing side of the
3338         new 2.0 ListView.InsertionMark property.
3339
3340 2007-12-07  Jonathan Pobst  <monkey@jpobst.com>
3341
3342         * CurrencyManager.cs: Silence some debug spew.
3343
3344 2007-12-07  Geoff Norton  <gnorton@novell.com>
3345         
3346         * Hwnd.cs: Refactor GetClippingRectangles to suppose returning the
3347         masks for our children as well as siblings to avoid having to query
3348         Quartz for this information.
3349         * XplatUICarbon.cs: Implement a delegate based system to pass
3350         information to System.Drawing.  Implement Async methods.  Remove
3351         the hack for the resize thumb and imlpement a transparent Grow Box.
3352         Rework the messaging system to proplery create window's and messages,
3353         fixes TabControl.
3354
3355 2007-12-06  Andreia Gaita <avidigal@novell.com>
3356
3357         * X11Keyboard.cs: Use Xutf8LookupString to support international 
3358         characters under alternate codepages. Patch from #340878
3359
3360 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3361
3362         * ListView.cs: When doing layout computations, set position in the
3363         ListView instances (we cache the position just as .Net does).
3364         * ListViewItem.cs: New internal setter method for Position. Also set
3365         position field as also available in 1.1, since we are going to use it
3366         now in the common case.
3367
3368 2007-12-06  Andreia Gaita <avidigal@novell.com>
3369
3370         * Control.cs: When removing controls, get the actual container
3371         to notify about active control changes. Fixes 341314.
3372
3373 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3374
3375         * ListViewItem.cs: Forgot to add Font to our serialization stuff.
3376
3377 2007-12-05  Andreia Gaita <avidigal@novell.com>
3378
3379         * Control.cs: When updating the zorder, ignore windows that are not
3380         mapped. Fixes #342509
3381
3382 2007-12-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3383
3384         * ListViewItem.cs: Actually implement serialization on this class.
3385
3386 2007-12-05  Gert Driesen  <drieseng@users.sourceforge.net>
3387
3388         * LinkLabel.cs: Fixed paramname of ArgumentNullException in ctor of
3389         LinkCollection. Spaces to tabs, and removed extra tabs.
3390
3391 2007-12-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3392
3393         * XplatUIX11.cs: Make toolwindows' decorations show up without causing any
3394           tests to fail (hopefully).
3395
3396 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
3397
3398         * ToolStripDropDownMenu.cs: Fill in AffectedBounds when drawing
3399         the image margin so custom renderers can correctly place it.
3400
3401 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
3402
3403         * StatusStrip.cs: Fill in AffectedBounds when drawing the grip
3404         so custom renderers can correctly place it.
3405
3406 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
3407
3408         * Application.cs: Let WM_CHAR messages flow through to controls
3409         hosted in Strips.  [Fixes bug #343972]
3410
3411 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
3412
3413         * ToolStripManager.cs: Guard against an NRE I ran into.
3414
3415 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
3416
3417         * LinkLabel.cs: Apply patch from George to fix bug 344012.  If
3418         a Link is manually added to the Links collection, we need to set
3419         its owner, so it can invalidate properly.
3420         [Fixes bug #344012]
3421
3422 2007-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3423
3424         * ListView.cs: When changing ListViewItem.Position (which calls
3425         ListView.ChangeItemLocation), invalidate not only the area
3426         corresponding to the main item, but also to the area occupied
3427         by the items being moved.
3428
3429 2007-11-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3430
3431         * ListView.cs: When changing the position of a given item,
3432         don't use item bounds, but item areas (which includes the item spacing
3433         between them). Also, use first/last position if the requested
3434         position is outside bounds (as .Net does). Invalidate the previous and
3435         new bounds. Finally, in ItemControl.ItemsMouseDown use the actual item
3436         in a specific position, instead of directly accessing Items collection
3437         (this is done to get the right item - remember an Item can have a
3438         different position in the grid than in the Items collection).
3439
3440 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
3441
3442         * MessageBox.cs: Calculate text area instead of just top left, this rect 
3443         area will be used in DrawString. Fixes bug #343364.
3444
3445 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
3446
3447         * MessageBox.cs: Calculate max amount for text area width, it must be 60% of
3448         screen width. Partially fixes bug #343364.
3449
3450 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
3451
3452         * NotifyIcon.cs: Remove duplicated code before call realculate and put this
3453         code inside recalculate, it makes code more simple.
3454
3455 2007-11-22  Everaldo Canuto  <ecanuto@novell.com>
3456
3457         * NotifyIcon.cs: When recalculate icon verify if icon is active to decide
3458         between update or add icon. Fixes bug #324344.
3459
3460 2007-11-21  Andreia Gaita <avidigal@novell.com>
3461
3462         * XPlatUIX11.cs: Do not treat tool windows as if they have no 
3463         window manager, since that stretches the drawing area to include
3464         the window decorations, and they get hidden. Reverts r84444 and fixes
3465         #335849 and #342790 (mdi and pdn3 regression)
3466
3467 2007-11-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3468
3469         * ListView.cs: When setting focused item, try to give focus to the
3470         previous one _only_ if the previous one remains valid. 
3471         Fixes #342504.
3472
3473 2007-11-20  Jonathan Pobst  <monkey@jpobst.com>
3474
3475         * Application.cs: Revert r89650, as it broke a common case to fix
3476         an obscure case.  Fixes bug #342606.
3477
3478 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
3479
3480         * ThemeWin32Classic.cs: Fix extra space on end of tooltip.
3481
3482 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
3483
3484         * ThemeWin32Classic.cs: Fix tooltip text align removing horizontal 
3485         alignment. [Fixes #324228]
3486
3487 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
3488
3489         * ToolStrip.cs: Handle flow layout in GetPreferredSize to fix PDN3.
3490         [Fixes bug #342123]
3491
3492 2007-11-19  Everaldo Canuto  <ecanuto@novell.com>
3493
3494         * Form.cs: Check for empty Text before assign to cp.Caption in CreateParams
3495         it prevent problems when empty captions. [Fixes #342141]
3496
3497 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
3498
3499         * Label.cs: Use Size instead of None.  Fixes bug #342077.
3500
3501 2007-11-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3502
3503         * ListViewItem.cs: Implement 2.0 FindNearestItem method.
3504
3505 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
3506
3507         * MenuStrip.cs: Guard against a NRE when a MdiWindowItem is set
3508         but there isn't a MdiContainer.
3509         [Fixes bug #342358]
3510
3511 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
3512
3513         * TextControl.cs: Don't recalculate document if the recalc_start and
3514         recalc_end hasn't changed.
3515         [Fixes bug #342505]
3516
3517 2007-11-17  Gert Driesen  <drieseng@users.sourceforge.net>
3518
3519         * DataGridViewTextBoxCell.cs: Removed CWL.
3520
3521 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3522
3523         * ListView.cs: Implement 2.0 SearchForVirtualItem event support.
3524
3525 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
3526
3527         * TextControl.cs: Missed some code for bug 341534 to trigger a
3528         recalculation when the font changes.
3529
3530 2007-11-16  Andreia Gaita <avidigal@novell.com>
3531
3532         * Control.cs: When updating the zorder, check if the child to update is
3533         the same control that is set to always be on top (i.e., scrollbars), and 
3534         just put it on top directly. Fixes BadMatch error on pdn3
3535
3536 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3537
3538         * ListView.cs: Throw the needed exceptions for FindNearestItem.
3539
3540 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
3541
3542         * Control.cs: Don't perform a new layout when a label changes its text,
3543         cause label handles its own autosizing.
3544         [Fixes bug #342077]
3545
3546 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3547
3548         * ListView.cs: Implement 2.0 FindNearestItem methods.
3549
3550 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
3551
3552         * ToolStripPanel.cs: Make Join at least add the control to the panel,
3553         even if the rest of what Join does isn't supported.  Add some more
3554         support for vertical toolbars.
3555         * ToolStripPanelRow.cs: Add some more support for vertical toolbars.
3556         [Fixes the application breaking parts of bug #341998]
3557
3558 2007-11-15  Jonathan Pobst <monkey@jpobst.com>
3559
3560         * ToolStripItem.cs: When determining if we have a check/image margin,
3561         we need to look at ShowCheckMargin as well as ShowImageMargin.
3562
3563 2007-11-15  Geoff Norton  <gnorton@novell.com>
3564
3565         * XplatUIOSX.cs: Rename to...
3566         * XplatUICarbon.cs: and refactor all event handling out to the new event handling
3567         system in System.Windows.Forms.CarbonInternal.  Lots of code cleanup as well.
3568
3569 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
3570
3571         * KeysConverter.cs: The default values should be an array of Keys, not
3572         strings.  Also, the array has more values for 2.0.
3573         [Fixes bug #341851]
3574
3575 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
3576
3577         * Application.cs: Change ExecutablePath to use 
3578         Process.GetCurrentProcess ().MainModule.FileName instead of Assembly.GetEntryAssembly.
3579         [Fixes bug #323552]
3580
3581 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
3582
3583         * LineTag.cs: Don't attempt to draw '\r', treat it like it doesn't exist.
3584         When measureing CR or LF, use /u000D instead of /u0013. (Hex, not decimal.)
3585         * TextControl.cs: Fix a case in GetLineEnding where a \n before a \r would
3586         be ignored.  Create a new GetLineEnding that can specify which types of
3587         line endings to look for.  On Insert, only create new lines for \n and \r\n.
3588         [Fixes bug #324274]
3589
3590 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
3591
3592         * TextBoxBase.cs: As we loop through each line changing the font, tell
3593         the document that the line needs to be recalculated.  Fixes bug #341534.
3594
3595 2007-11-13  Jonathan Pobst  <monkey@jpobst.com>
3596         [Another round of refactoring]
3597         * Line.cs: Add DeleteCharacters.
3598         * LineTag.cs: Add Delete.
3599         * TextBoxBase.cs: Update to use new methods.
3600         * TextControl.cs: Refactor the Delete* methods.
3601
3602 2007-11-13  Everaldo Canuto  <ecanuto@novell.com>
3603
3604         * Win32DnD.cs: Implement Win32 Drop files, thank you Srikanth Madikeri for
3605         the patch. [Fixes #324856]
3606
3607 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3608
3609         * ListView.cs:
3610         * ListViewItem.cs: Add an initial implementation of
3611         2.0 ListViewItem.Position getter.
3612
3613 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3614
3615         * ListView.cs: Add a reordered_items_indices array, to allow us
3616         to have a different sorting than that of Items (the sorting in Items
3617         could not match the actual sorting in screen). This is needed to
3618         implement a pair of 2.0 features.
3619         * ListViewItem.cs: Add a DisplayIndex property to keep track of the
3620         actual position in the ListView grid, since it could have a position
3621         different than its Index (position in ListViewItemCollection). 
3622
3623 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
3624
3625         * Label.cs: Add StringFormatFlags.LineLimit.  This tells DrawString to
3626         not draw partial lines.
3627         * LinkLabel.cs: Change FormatFlags setter from = to |= so that the
3628         LineLimit flag from the base is preserved.
3629         Fixes the windows part of bug #338965.
3630
3631 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
3632
3633         * TextBoxBase.cs: Move handling of the enter key from KEYDOWN to CHAR
3634         so that it can be canceled in KeyPress.
3635         Fixes bug #340078.
3636
3637 2007-11-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3638
3639         * ListView.cs: In ItemControl, reset mouse-handling related
3640         fields even if we dont' have items (we still should reset them when
3641         we had items but then called Items.Clear). Partially based in a patch
3642         by George Giolfan.
3643         Fixes #338399.
3644
3645 2007-11-08  Gert Driesen  <drieseng@users.sourceforge.net>
3646
3647         * Application.cs: In ProductVersion first try AssemblyFileVersion
3648         before falling back to assembly version. Fixes bug #339787.
3649
3650 2007-11-08  Andreia Gaita <avidigal@novell.com>
3651
3652         * HtmlElement.cs: Implement InnerText setter.
3653         * WebBrowserBase.cs: Implement Navigated event support.
3654         Add flag to track when the browser "document" is ready to be retrieved.
3655         * WebBrowser.cs: Implement CanGoBack, CanGoForward, Title, Url.
3656         Make sure browser document is ready before retrieving it.
3657         Clean up cached objects (document) when moving to a new page through
3658         any of the navigation methods.
3659         Use the new Mono.WebBrowser.INavigation interface to control navigation.
3660         Implement OnNavigated event.
3661
3662 2007-11-07  Jonathan Pobst  <monkey@jpobst.com>
3663
3664         * ThemeWin32Classic.cs: Don't draw the background in DrawLabel or
3665         DrawLinkLabel, this is handled by OnPaintBackground.
3666         Fixes bug #339565, part II.
3667
3668 2007-11-07  Andreia Gaita <avidigal@novell.com>
3669
3670         * Control.cs: Revert r88915. Selecting text on a textbox depends on
3671         getting a Select call on click, so this call needs to be here for now.
3672         Unfixes #325809
3673
3674 2007-11-07  Geoff Norton  <gnorton@novell.com>
3675
3676         * OSXStructs.cs: Add the kEventClassApplication constants.
3677         * XplatUIOSX.cs: Send a WM_LBUTTONDOWN to the Grab window when the 
3678         application is deactivated otherwise Menu overlays linger on top of
3679         other application windows.
3680
3681 2007-11-07  Geoff Norton  <gnorton@novell.com>
3682
3683         * XplatUIOSX.cs: Dont throw an exception on OverrideCursor as we
3684         dont support cursors yet anyways.  This allows Reflector to run.
3685
3686 2007-11-07  Geoff Norton  <gnorton@novell.com>
3687
3688         * XplatUIOSX.cs: Implement DragSize.
3689
3690 2007-11-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3691
3692         * ListView.cs: When we receive a WM_LBUTTONDOWN message in
3693         ItemControl, request the focus, as .Net does. This is needed after 
3694         Control does not request focus anymore when it receives a
3695         WM_LBUTTONDOWN.
3696
3697 2007-11-06  Jonathan Pobst  <monkey@Jpobst.com>
3698
3699         * Label.cs: Make DrawImage internal so it can be called from Theme code.
3700         Remove the DrawImage call from OnPaint.
3701         * LinkLabel.cs: Remove the DrawImage call from OnPaint.
3702         * ThemeWin32Classic.cs: Call DrawImage after we paint the background,
3703         but before we draw the text for DrawLabel and DrawLinkLabel.
3704         Fixes bug #339565.
3705
3706 2007-11-05  Andreia Gaita <avidigal@novell.com>
3707
3708         * Control.cs: Remove select call on click. Fixes #325809
3709
3710 2007-11-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3711
3712         * ListViewItem.cs: Add 2.0 Position property getter.
3713
3714 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3715
3716         * ListView.cs: Add 2.0 BackgroundImageTiled property.
3717         Also, to make it work properly, change item's BackColor and
3718         BackgroundImageLayout as needed.
3719         * ThemeWin32Classic.cs: Don't fill any background rectangle 
3720         in ListView.ItemControl when drawing items; just let the Control
3721         base implementation fill it.
3722
3723 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3724
3725         * ListViewGroup.cs: Adda TypeConverter attribute for this class,
3726         as well as adding a custom 'dummy' Converter, as .net does.
3727
3728 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3729
3730         * PropertyGridView.cs: When clicking drop-down button,
3731         select an index in the listbox only if our standard values collection 
3732         has one or more items.
3733
3734 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3735
3736         * ListViewItem.cs: Add a DefaultValue attribute to 2.0 IndentCount
3737         property.
3738
3739 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
3740
3741         * PropertyGrid.cs: In PropertySort, update the toolbar buttons even if
3742         the value is not changed. This ensure a pushed button remains in that
3743         state when clicked again. When switching the value of PropertySort
3744         between Categorized and CategorizedAlphabetical, do not update the
3745         grid items and do not fire a PropertyChangedEvent. When clicking the
3746         sorting buttons, do not modify the PropertySort value when switching
3747         between Categorized and CategorizedAlphabetical but only update the
3748         button state.
3749
3750 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
3751
3752         * Label.cs: Make AutoEllipsis internal on 1.0 profile. Code
3753         formatting.
3754         * PropertyGrid.cs: Also put Categorized button in pushed state when
3755         PropertySort is CategorizedAlphabetical. Set AutoEllipsis to true
3756         for help description label.
3757
3758 2007-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3759
3760         * ListView.cs: When calculating the biggest item for a given column,
3761         take into account 2.0 LIstViewItem.IndentCount, since it directly affects
3762         the item's width.
3763
3764 2007-11-03  Gert Driesen  <drieseng@users.sourceforge.net>
3765
3766         * PropertyGrid.cs: Fixed default value for PropertySort. Allow invalid
3767         value for PropertySort on 1.0 profile. PropertySortChanged event
3768         should only be fired on 2.0 profile. Fixed NullReferenceException
3769         in UpdateSortLayout when PropertyGrid contains no items.
3770
3771 2007-11-02  Jonathan Pobst  <monkey@jpobst.com>
3772
3773         * MessageBox.cs: Patch from George to implement MessageBoxDefaultButton.
3774         [Fixes bug #338554]
3775
3776 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3777
3778         * ListViewItem.cs: Implement 2.0 IndentCount property.
3779
3780 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3781
3782         * X11Dnd.cs: When sending status in a dnd operation, compare current
3783         effect with the 'allowed' field instead of 'drag_data.Allowed', since
3784         the later is only created when a Winforms application is both the
3785         source and the target, but not when we are the target only.
3786         Fixes part of #324251.
3787
3788 2007-11-01  Geoff Norton  <gnorton@novell.com>
3789
3790         * XplatUI*.cs: Add GetPreviousWindow utility method to return windows in
3791         order of Z-Order.
3792         * Hwnd.cs: Add initial implementation of GetClippingRectangles to clip sibling 
3793         children out of the drawing view on mac.
3794         * XplatUIOSX.cs: Code cleanup.  Handle more window grab cases.  Fix SetParent
3795         to handle the orphan and invisible case (1/2 fixes TabStrip drawing in FormsTest)
3796         
3797 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
3798
3799         * ToolStrip.cs: Don't process MouseUp for a ToolStripControlHost, clicking
3800         on the non-hosted-control part of it shouldn't do anything.
3801         Fixes part of bug #327498.
3802
3803 2007-11-01  Andreia Gaita <avidigal@novell.com>
3804
3805         * WebBrowserBase.cs: revert previous change, resize can be called anytime
3806
3807 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
3808
3809         * Application.cs: When a toolstrip has the keyboard input loop, let messages
3810         it does not use flow through to controls that are hosted in menus.
3811         Same with mouse clicks.
3812         * Form.cs: Don't close all menus on click if the click is on a
3813         control hosted in a menu.
3814         Fixes part of bug #327498, and part of bug #325969.
3815
3816 2007-10-31  Andreia Gaita <avidigal@novell.com>
3817
3818         * WebBrowserBase.cs: Only call resize on gluezilla when it is active
3819
3820 2007-10-31  Jonathan Pobst  <monkey@jpobst.com>
3821
3822         * TextBoxBase.cs: Use int.MaxValue for MaxLength instead of magic number.
3823         Addresses an issue raised in bug #336218.
3824
3825 2007-10-30  Jonathan Pobst  <monkey@jpobst.com>
3826
3827         * Form.cs: Patch from George that moves the conversion of ClientSize->Size
3828         for PreferredSize from OnLayout to PreferredSize.  Fixes bug #325242.
3829
3830 2007-10-30  Andreia Gaita <avidigal@novell.com>
3831
3832         * ContainerControl.cs: Check if the active control is a
3833         child of a removed control and update active_control accordingly.
3834         Fixes #329718
3835
3836 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
3837
3838         * DateTimePicker.cs: Throw ArgEx if the Value is set outside the MinDate
3839         or the MaxDate.  Fixed bug #337693.
3840
3841 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
3842
3843         * XplatUIWin32.cs: Always call SetWindowPos with SWP_FRAMECHANGED flag
3844         after calling SetWindowLong for a form, to force an immediate NC refresh.
3845         Fixes first part of bug #325150.
3846
3847 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
3848
3849         * ComboBox.cs: Don't try to resize the listbox when we are DropDownStyle
3850         simple.  Fixes the last part of bug #322668.
3851
3852 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
3853
3854         * MessageBox.cs: If the owner is TopMost, then the MessageBox form
3855         needs to be TopMost as well, or else the MessageBox is under the form.
3856         Patch by George fixes bug #325300.
3857
3858 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3859
3860         * X11Dnd.cs: When starting a new drag operation, reset the static
3861         'dropped' field to false (previously the implementation didn't reset
3862         it and got confused after the first drag).
3863         Fixes #325071.
3864
3865 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3866
3867         * PropertyGrid.cs: When PropertySort changes, re-organize the grid
3868         items instead of re-creating them all. For this purpose we now cache
3869         both CategoryGridEntry items and the GridEntries for the main object's
3870         properties.
3871         * GridItem.cs: Make SetParent method abstract.
3872         * GridEntry.cs: Override the SetParent method (already there, but now
3873         we override it).
3874         Fixes #324866.
3875
3876 2007-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3877
3878         * PropertyGridView.cs: Set the plus/minus bounds of a grid item
3879         depending on its depth (as .Net does). Update the needed values in
3880         MouseDown handler. Also draw the plus/minus rect after the label,
3881         so we don't draw on top of it.
3882
3883 2007-10-24  Everaldo Canuto  <ecanuto@novell.com>
3884
3885         * MenuAPI.cs: Return true as default in ProcessKeys to prevent keys to be
3886         processed by forms or controls when menu is active. [Fixes #333548]
3887
3888 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
3889
3890         * ToolStripItem.cs: Don't focus a ToolStripControlHost on Select of the
3891         parent doesn't have focus.  This was causing ToolStripTextBoxes to take
3892         focus on mouse over.
3893
3894 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
3895
3896         * TextControl.cs: Code cleaning, simplifying.
3897
3898 2007-10-24  Geoff Norton  <gnorton@novell.com>
3899
3900         * XplatUIOSX.cs: Route mouse events to the grab hwnd on mouse down as well.
3901         * XplatUIStructs.cs: Fix the ToString method of POINT and MSG.
3902
3903 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
3904
3905         * TextBoxBase.cs: If the user sets maxlength to 0, it should mean
3906         the cap is maxvalue, not actually 0.  [Fixes bug #336218]
3907
3908 2007-10-24  Andreia Gaita <avidigal@novell.com>
3909
3910         * SendKeys.cs: apply jpobst's patch to bug #332409
3911
3912 2007-10-23  Andreia Gaita <avidigal@novell.com>
3913
3914         * TextBoxTextRenderer.cs: Lower bounds max size to Int16.MaxValue, the 
3915         Windows 2000 gdi DrawText call doesn't draw if it's higher than that
3916         for some reason
3917
3918 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3919
3920         * PropertyGridView.cs: If a property has an UIEditor available,
3921         make the drop-down/editor button available only if the property
3922         is _not_ read only.
3923
3924 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3925
3926         * PropertyGridView.cs: Don't make the grid item textbox 
3927         editable when a drop-down control is available, but 
3928         CanConvertFrom (typeof (string)) is false or GetStandardValuesExclusive () is
3929         true. The same bur the color of the grid item value's label.
3930
3931 2007-10-22  Geoff Norton  <gnorton@novell.com>
3932
3933         * OSXStructs.cs: Add the needed constants for keyboard modifiers.
3934         * OSXKeyboard.cs: Initial support for keyboard and limited modifiers.
3935         * XplatUIOSX.cs: New reversible frame support.  Wire in the new keyboard
3936         driver.  Padd the bottom of all real windows so the resize thumb doesn't
3937         obscure scroll/status bars.
3938
3939 2007-10-22  Jonathan Pobst  <monkey@jpobst.com>
3940
3941         * WindowsFormsSection.cs: Implement.
3942
3943 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
3944
3945         * MdiClient.cs: Maximize new active mdi child when a maximized child is 
3946         closed see #325434 patch.
3947
3948 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
3949
3950         * MdiClient.cs: Fix remaining issues from layout vertical and horizontal,
3951         see #325434 patch.
3952
3953 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3954
3955         * PropertyGridView.cs: When showing the textbox for a grid item,
3956         have two local variables to store the read-only and non-editable
3957         status of a grid item (we were previously using just one variable
3958         to do this, when actually they are slightly different).
3959         Fixes part of #325023.
3960
3961 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3962
3963         * PropertyGridView.cs: When showing a drop-down list, try to get the
3964         values using TypeConverter.ConvertTo (to convert to a string). Fixes
3965         part of #325023.
3966
3967 2007-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3968
3969         * PropertyGrid.cs: When updating a property and populating sub grid
3970         items, remove the previous ones, and invalidate the specific area.
3971         * PropertyGridView.cs: A new InvalidateBelowGridItem to invalidate the
3972         area behind a grid item.
3973         * GridItemCollection.cs: Add an internal Clear method, to allow us to
3974         clean the items if needed (specially for controls implementing 
3975         ICustomTypeDescriptor and returning a variable number of properties).
3976         Fixes #324865.
3977
3978 2007-10-19  Jonathan Pobst  <monkey@jpobst.com>
3979
3980         * TextControl.cs: Clean up and document the Insert function.
3981
3982 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
3983
3984         * TextControl.cs: Make sure we know our start point for updating the view
3985         in ReplaceSelection.  Fixes an issue where pasting multiline text wouldn't
3986         update the view.
3987
3988 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
3989
3990         * ListView: Couple of corcompare fixes.
3991
3992 2007-10-17  Geoff Norton  <gnorton@novell.com>
3993
3994         * XplatUIOSX.cs: Implement support for window icons in the dock.  Set
3995         the title caption of real window.
3996
3997 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
3998
3999         * ErrorProvider.cs: Add the error provider's internal window to a 
4000         containercontrol when the parent changes.  [Fixes bug #329714]
4001
4002 2007-10-17  Geoff Norton  <gnorton@novell.com>
4003
4004         * XplatUIOSX.cs: Implement ScrollWindow.  Properly create TOOLWINDOWs.
4005         When we make a new window; restore the old active window - fixes dialogs.
4006
4007 2007-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4008
4009         * PropertyGridView.cs: Look for RefreshPropertiesAttribute
4010         when modifying a property, and if found then invalidate as
4011         requested.
4012         Fixes part of #324865.
4013
4014 2007-10-17  Geoff Norton  <gnorton@novell.com>
4015
4016         * XplatUIOSX.cs: Re-enable the native driver on the Mac.  This is still
4017         highly experimental.  Fixed coordinate translation.  Fixed window locations.
4018         Initial support for clipping. Implemented NC areas and menus.  Support for
4019         launching from command line from Will Johansson (wjohansson@atacomm.com).
4020         * OSXStructs.cs: Add ProcessSerialNumer (Patch from Will Johansson
4021         wjohansson@atacomm.com)
4022         * Hwnd.cs: Add some internal structures for tracking Mac cursors.
4023         Hwnds now track the existence of all of their children for Mac clipping.
4024     * XplatUI.cs: Re-enabled the native driver on the Mac.
4025
4026 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
4027
4028         * Line.cs: Move the InsertString function to here.
4029         * TextControl.cs: Cleanup some duplicate code, move some InsertString
4030         functionality to Line.
4031
4032 2007-10-17  Geoff Norton  <gnorton@novell.com>
4033
4034         * ComboBox.cs: Destroy the popup after hiding it.  Fixes #322582
4035
4036 2007-10-16  Gert Driesen  <drieseng@users.sourceforge.net>
4037
4038         * ButtonBase.cs: Fixed IsDefault to use assigned value instead of
4039         always setting value to true.
4040         * Form.cs: When changing AcceptButton, notify new and original button.
4041
4042 2007-10-16  Jonathan Pobst  <monkey@jpobst.com>
4043
4044         * Form.cs: Guard against an NRE when the user sets the AcceptButton to
4045         a custom control that implements IButtonControl instead of an actual
4046         button.  [Fixes bug #334244]
4047
4048 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
4049
4050         * Form.cs: Change SelectActiveControl to internal, we need to call it in
4051         MdiWindowManager.
4052         
4053         * MdiWindowManager.cs: In RaiseActivated call SelectActiveControl to select
4054         active control when activate a new mdi window.
4055         
4056         [Fixes bug #330495]
4057
4058 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
4059
4060         * ComboBox.cs: Dont implicit add listbox_ctrl on OnHandleCreated because it
4061         is already added.
4062         [Fixes bug #333617]
4063
4064 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
4065
4066         * TextControl.cs: When SuspendRecalc is first called, reset the recalc_start
4067         to MaxValue and recalc_end to MinValue.  Currently, recalc_start is always 1,
4068         so we always recalculate the whole document instead of just the new part.
4069         [Fixes bug #325082]
4070
4071 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
4072
4073         * LineTag.cs: Fix a case where the GetCharIndex would not return 0
4074         when the mouse was to the left of the first character in the line.
4075
4076 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
4077
4078         * TextBox.cs, TextBoxBase.cs: When setting the document's password
4079         character, use the property instead of the variable so that the
4080         UseSystemPasswordChar property is taken into account.
4081         [Fixes bug #333748]
4082
4083 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4084
4085         * FolderBrowserDialog.cs: When a node is right clicked and the "New
4086         folder" contex menu appears, actually add the new folder to it, even
4087         if the node is not currently selected. Still use SelectedNode in case 
4088         there wasn't found a node under the pointer.
4089         Fixes #325452.
4090
4091 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4092
4093         * ListViewItem.cs: When retrieving the focused state, the index check
4094         should be done only when ListView is in virtualmode, as it is an
4095         expensive check for normal mode.
4096
4097 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4098
4099         * ListViewItem.cs: Make the focus state information be stored
4100         in the ListView, not in the items. This is done to match the MS
4101         behaviour for items that are not yet part of a ListView control;
4102         besides that, since just one item can be focused at the same time,
4103         we save a little space in our items.
4104         Fixes part of #331643.
4105
4106 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
4107
4108         * ComboBox.cs: When focus is lost, deselect the text. When setting
4109         text of control, select all text. Do not hide selection when control
4110         does not have focus. Fixes bug #333663.
4111
4112 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
4113
4114         * TextBoxBase.cs: On 2.0 profile, throw ArgumentOutOFRangeException
4115         instead of ArgumentException when SelectionLength is set to negative
4116         value. Added same check to SelectionStart. Code formatting.
4117
4118 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
4119
4120         * TextBoxBase.cs: Invalidate selection before changing SelectionLength
4121         or SelectionStart. Code formatting.
4122
4123 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4124
4125         * TreeView.cs: drag_begin_x and drag_begin_y are now set to -1,
4126         indicating that there was not a previous drag-and-drop operation going
4127         on.
4128         Fixes part of #325071.
4129
4130 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4131
4132         * X11Dnd.cs: When DragEventArgs.Effect is set to a value not part of
4133         AllowedEffect, don't let the drop operation happen. 
4134         Fixes #32580.
4135
4136 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
4137
4138         * TextRenderer.cs: Use GDI on Windows in both the 1.1 and 2.0 profiles.
4139
4140 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
4141
4142         * Line.cs, LineTag.cs: Guard against an exception when Document.Clear
4143         is called.
4144
4145 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
4146
4147         * Line.cs: Add a method that finds the tag that contains an x-coord.
4148         * LineTag.cs: Add a method that finds the character at an x-coord using
4149         a binary search, the old way was a linear search.
4150         * TextControl.cs: Change FindCursor to use the above new methods.
4151
4152 2007-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4153
4154         * DragEventArgs.cs: Allow Effect to have a non allowed value (a
4155         value different than AllowedEffect). This should be possible to
4156         indicate that dragging is not possible in some control/area.
4157
4158 2007-10-11  Jonathan Pobst  <monkey@jpobst.com>
4159
4160         * LineTag.cs: Encapsulate all variables with properties.  Calculate ascent/
4161         descent internally when font changes instead of outside code being responsible
4162         for setting it.
4163         * Line.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Use Tag properties
4164         instead of accessing internal variables.
4165
4166 2007-10-09  Everaldo Canuto  <ecanuto@novell.com>
4167
4168         * MdiClient.cs: Always call ArrangeIconicWindows before any arrangement and
4169         remove special treatment for ArrangeIcons since it is already arranged.
4170
4171 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
4172
4173         * TextBoxTextRenderer.cs: Draw takes a Color now instead of a Brush, as
4174         the Win32 backend uses Color.
4175         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
4176         Refactor to store a Color instead of a Brush for Color.
4177
4178 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
4179
4180         * Line.cs, LineTag.cs: Override GetHashCode to make a compiler warning go
4181         away.  I didn't realize I needed this when I refactored these earlier.
4182
4183 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
4184
4185         * LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Refactor to
4186         store a Color structure and use the ResPool for back color instead of
4187         holding onto brushes.
4188
4189 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
4190
4191         * TextControl.cs: Fix how we calculate the end of the tag we are drawing.
4192         [Fixes bug #325592]
4193
4194 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
4195
4196         * MonthCalendar.cs: When ShowWeekNumbers is changed, force the calendar
4197         to recalculate its size.  Fixes a part of bug #331052.
4198
4199 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
4200
4201         * NotifyIcon.cs: Set the correct mouse button when handling right mouse
4202         button.  Fixes a part of bug #331052.
4203
4204 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
4205
4206         * Form.cs: Trim NewLine before setting XPlatUI.SetText, and when setting
4207         the CreateParams.
4208         * ThemeWin32Classic.cs: Trim NewLine before drawing MDI children window
4209         decorations.
4210         [Fixes bug #330986]
4211
4212 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
4213
4214         * TextBoxTextRenderer.cs: Don't make this a static class, as static
4215         doesn't exist in 1.1.  (Thanks jb!)
4216
4217 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
4218
4219         * TextBoxTextRenderer.cs: Abstract text measuring and drawing to this
4220         class to allow us to use different backends on different platforms.
4221         Linux uses the current [Draw|Measure]String backend.  Windows uses
4222         the TextRenderer.[Draw|Measure]Text backend, which uses GDI instead
4223         of GDI+.  This leads to better looking text and more accurate measurements
4224         on Windows, fixing many of the reported issues.
4225         * Line.cs, LineTag.cs: Update to use TextBoxTextRenderer.
4226
4227 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4228
4229         * FolderBrowserDialog.cs: When running on Windows,
4230         try to detect paths such "C:" and add Path.DirectorySeparatorChar,
4231         since we must match both "C:" and "C:\" forms. A little hackish, but
4232         works.
4233         Fixes #325247.
4234
4235 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4236
4237         * ListView.cs: When calling EndEdit (after editing an item),
4238         create a new instance of LabelEditEventArgs to keep clean the fields
4239         in case we get a new call to BeginEdit; also do Application.DoEvents
4240         to have focus in synch. This is a fix similar to TreeView's #325244.
4241
4242 2007-10-07  Andreia Gaita <avidigal@novell.com>
4243
4244         * HtmlDocument.cs, HtmlElement.cs, WebBrowser.cs: Added dom support
4245         * WebBrowserBase.cs: Added dialog support, calling the
4246           WebBrowserDialogs classes for each specific dialog type.
4247
4248 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4249
4250         * ListView.cs: When the last item is focused and is removed,
4251         move the focus to the previous item (in Items order). This is what MS
4252         does.
4253         Fixes #330415.
4254
4255 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4256
4257         * ListView.cs: In ListViewItemCollection, make Remove call RemoveAt,
4258         instead of the opposite (RemoveAt call Remove). This is a better
4259         approach since we don't need to to a pair of traversals when using
4260         RemoveAt.
4261
4262 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4263
4264         * TreeView.cs: When Keys.Left is pressed, before trying to Collapse
4265         check that the node actually has nodes, and if not, move to the
4266         parent node instead. 
4267         Fixes #325265.
4268
4269 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4270
4271         * TreeView.cs: Move the previous change to the general case (to
4272         call Application.DoEvents in cases where the method was called by
4273         different places).
4274
4275 2007_10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4276
4277         * TreeView.cs: When calling EndEdit and we need to hide the textbox,
4278         call Application.DoEvents. This is neccessary when we get a call to
4279         BeginEdit from an AfterLabelEdit handler, because the focus always
4280         goes to the TreeView, even if we try to give it to our
4281         LabelEditTextBox. The call do Application.DoEvents seems to
4282         synchronize the focus, basically.
4283         Fixes #325244.
4284
4285 2007-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4286
4287         * TreeView.cs: When AfterLabelEdit event is fired, TreeNode.IsEditing
4288         should be false. This also removes some nasty recursive paths. Fixes
4289         part of #325244.
4290
4291 2007-10-04  Everaldo Canuto  <ecanuto@novell.com>
4292
4293         * MdiClient.cs: When cascade (layout) mdi window that is maximized, set the
4294         state to normal. Also resize window when cascading. Fixes #325433. 
4295
4296 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
4297
4298         * RichTextBox.cs: When SelectionColor is set to Color.Empty, use
4299         DefaultForeColor, as drawing empty colored lines isn't very useful.
4300         [Fixes the not drawn lines part of bug #324358]
4301
4302 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
4303
4304         * TextControl.cs: Move Line and LineTag classes into separate files to
4305         make things easier to find.
4306         * Line.cs, LineTag.cs: Bring coding standards up to Mono's guidelines.
4307         * RichTextBox.cs: Capitalize LineTag.Length property access.
4308         - This is purely an organizational/formatting change, no logic changed. -
4309
4310 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
4311
4312         * ThemeWin32Classic.cs: Do not show focus rectangle in radio buttons when
4313         text is empty.
4314
4315 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
4316
4317         * ThemeWin32Classic.cs: Do not show focus rectangle in checkboxes when
4318         text is empty.
4319
4320 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
4321
4322         * ComboBox.cs: On contructor use backgound_color instead of BackColor to
4323         prevent calling of OnBackColorChanged. Fixes #325321.
4324
4325 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
4326
4327         * TextBox.cs: When check enabled uses Enabled property instead of is_enabled
4328         because control can be disabled because owner is disabled.
4329
4330 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
4331
4332         * ComboBox.cs: For the 1.1 profile, the default SelectedText is
4333         string.Empty, test failed from previous change.
4334
4335 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
4336
4337         * TextBoxBase.cs: For the 1.1 profile, the default SelectedText
4338         is null, not String.Empty.  See bug #323038.
4339
4340 2007-10-01  Jonathan Pobst  <monkey@jpobst.com>
4341
4342         * TextControl.cs: Change the margins to match MS a little better.
4343         Still not perfect for X11 due to some DrawString differences, but
4344         is still an improvement over the old stuff.
4345         Partially fixes #324467.
4346
4347 2007-09-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4348
4349         * FolderBrowserDialog.cs: When using MyComputer as 
4350         RootFolder, let absolute paths be considered as valid ones. Also, use
4351         Path.DirectorySeparatorChar instead of Path.AltDirectorySeparatorChar,
4352         for Windows compatibility.
4353         Partially fixes #325247.
4354
4355 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4356
4357         * FolderBrowserDialog.cs: Fix the recursive FindPathInNodes method.
4358         Also remove the stack.Count > 0 check in FBTreeView.SetSelectedNode
4359         method, since it causes the dialog to not select folders directly
4360         under the root path (when setting SelectedPath property).
4361
4362 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4363
4364         * TreeNode.cs: When calling Expand/Collapse and need to call 
4365         ExpandBelow/CollapseBelow respectively, take into account
4366         partially visible nodes (previously Expanding/Collapsing
4367         a partially visible node in the bottom was not updating its +- sign).
4368
4369 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4370
4371         * TreeView.cs: When calling Expand on a TreeNode, and we need to
4372         expand nodes below (ExpandBelow), scroll the entire Viewport
4373         area if the node is above it and not visible (instead of scrolling
4374         the area from node's Bottom, which applies only when the node is
4375         visible).
4376         Fixes #325266.
4377
4378 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4379
4380         * TreeView.cs: When calling ExpandAll, set SelectedNode to the top
4381         node in the bottom area (as .Net does). This is done to preserve the
4382         scroll position when ExpandAll is called before handle is created for
4383         the 1.1 profile (bottom area, as opposed to top area in 2.0).
4384         Fixes #324103.
4385
4386 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4387
4388         * TreeView.cs: When calling ExpandAll, don't move the scroll to the 
4389         bottom area if we are in fact not using the vertical scroll bar.
4390         Fixes #324824.
4391
4392 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
4393
4394         * Control.cs: Comment out a double buffering optimization that doesn't
4395         take into account invalidates created in OnPaint, causing the control
4396         to never be redrawn.  It would take quite a bit of work to work around
4397         this, but I left it commented with an explanation for later possible
4398         optimization.
4399         [Fixes bug #328681]
4400
4401 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
4402
4403         * Control.cs: Ask parent to perform a layout if control is AutoSize and
4404         the text changes.
4405         * RadioButton.cs: Implement GetPreferredSizeCore.
4406         [Fixes bug #328672]
4407
4408 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
4409
4410         * RichTextBox.cs, TextBoxBase.cs, WindowsFormsSynchronizationContext.cs:
4411         corcompare stuffs.
4412
4413 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
4414
4415         * Application.cs: Move the sync context stuff to Run instead of RunLoop
4416         so that it doesn't get uninstalled on modal forms.
4417         * Control.cs: Install a sync context when a control is created.
4418         * WindowsFormsSyncronizationContext.cs: Create a private static control
4419         to invoke on.  This is easier than trying to find a created control we
4420         can use.
4421         [Fixes bug #327608]
4422
4423 2007-09-25  Jonathan Pobst  <monkey@jpobst.com>
4424
4425         * Application.cs: Install a WindowsFormsSynchronizationContext in the
4426         run loop, and uninstall it when done.
4427         * WindowsFormsSynchronizationContext.cs: Implement.
4428         [Fixes the common case in bug #327608]
4429
4430 2007-09-23  Gert Driesen  <drieseng@users.sourceforge.net>
4431
4432         * DataGridViewCellCollection.cs: Added argument checks for indexers.
4433         Use case-insensitive lookup of column name in indexer. Code
4434         formatting.
4435
4436 2007-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4437
4438         * TreeNode.cs: When collapsing or expanding a node, check whether its
4439         change will affect the visible area (we were previously doing a
4440         IsVisible check, but that check is not enough since children nodes
4441         could be still visible). Fixes part of #325266.
4442
4443 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
4444
4445         * TreeView.cs: Always select the first node when the TreeView gets
4446         focus if there is no currently selected node.
4447         [Fixes bug #324279]
4448
4449 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
4450
4451         * TreeView.cs: Do not raise BeforeSelect or AfterSelect when the
4452         node being selected is null.
4453         [Patch from Yves Bastide fixes bug #326858]
4454
4455 2007-09-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4456
4457         * TreeNode.cs: Add an internal ArePreviousNodesExpanded, to know
4458         whether all the parent nodes are expanded.
4459         * TreeNodeCollection.cs: When adding a new node an calling SetupNode,
4460         call RecalculateVisibleOrder if all previous nodes are expanded.
4461         Before that we were doing a IsVisible check, but sometimes the node
4462         is not in the visible area, but _should_already be ready, because of
4463         all previous nodes are expanded. Fixes #325259.
4464
4465 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
4466
4467         * ToolStripSplitButton.cs: Call the ButtonClick event if the button
4468         portion of the item is clicked.
4469
4470 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
4471
4472         * TextControl.cs: Do not tell the system to move the cursor if the
4473         textbox isn't focused.  Fixes part of bug #322668.
4474
4475 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
4476
4477         * ComboBox.cs: When there are no items, do not show the dropdown if
4478         the down arrow is clicked.  Fixes part of bug #322668.
4479
4480 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
4481
4482         * ToolStripComboBox.cs: Manually set the size of this control in the
4483         constructor, as it doesn't seem to be the same as DefaultSize.
4484         Fixes a failing monobuild test.
4485
4486 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
4487
4488         * DateTimePicker.cs: If the user sets MinDate to DateTime.MinValue,
4489         change it to DateTimePicker.MinDateTime.  [Fixes bug #326609]
4490
4491 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
4492
4493         * Theme.cs: FileDialogs should be using DesktopDirectory instead of
4494         Desktop.  This lets it work for people who have moved their desktops
4495         from the default location on windows.  For people who have not, both
4496         values are the same, so it shouldn't hurt anything.  [Fixes bug #325270]
4497
4498 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
4499
4500         * ToolStripControlHostTest.cs: DefaultSize is based off hosted control,
4501         but when the base constructor sets this, the control is null.  Set it
4502         again in the constructor.  Fixes a failing monobuild test.
4503
4504 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
4505
4506         * ToolStripDropDownItem.cs: Make sure Click and DropDownOpened events
4507         get called.
4508         * ToolStripSplitButton.cs: Make sure MouseDown and MouseUp events get
4509         called.
4510
4511 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
4512
4513         * ToolStrip.cs: Don't show tooltips for ToolStripTextBoxes, they
4514         will handle it themselves.
4515         * ToolStripItem.cs: When deciding what the text of a tooltip should
4516         be, use the Text property instead of the text field.
4517         * ToolStripTextBox.cs: Handle tooltips.
4518         [Fixes bugs #325417 and #325973]
4519
4520 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
4521
4522         * ToolStripDropDownButton.cs: Only drop down overflow menu with a
4523         left click.  Fixes the easy part of bug #325969.
4524
4525 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
4526
4527         * ToolStrip.cs: Set AutoSizeMode back to GrowAndShrink to refix
4528         bug #325406, but set a minimum for StatusStrip to 22 to keep
4529         bug #325390 fixed.  I think this minimum would have been figured
4530         up automatically if the grip was actually a ToolStripItem, but it
4531         currently is not.
4532
4533 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4534
4535         * ListView.cs: max_label_wrapping is now 30 pixels instead of 38,
4536         as this is apparently the actual value used by .Net. Also apply
4537         ItemPadding in Details view only, and decrease the general width padding,
4538         to have only the needed. This should fix #324340 in Windows too.
4539
4540 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4541
4542         * ListViewItem.cs: Don't Invalidate item if parent is inside
4543         a BeginUpdate/EndUpdate block. This prevents to have differences
4544         between the ListView and items state, as well as avoid some exceptions
4545         there.
4546         * ListView.cs: Make 'updating' field internal.
4547
4548 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
4549
4550         * ToolStripControlHost.cs: Realign control when ControlAlign changes.
4551         * ToolStripItem.cs: Use ImageScalingSize when calculating preferred
4552         size if appropriate.
4553         Fixes reopened bug #325414.
4554
4555 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
4556
4557         * ToolStrip.cs: Set AutoSizeMode back to GrowOnly.
4558         * ToolStripItem.cs: Invalidate before and after our new autosize when
4559         text changes.
4560         Fixes reopened bug #325390.
4561
4562 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
4563
4564         * ToolStripMenuItem.cs: Make sure we invalidate when clicked so
4565         mnemonics can be drawn or undrawn correctly.  Fixes reopened bug 
4566         #325044.
4567
4568 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
4569
4570         * Control.cs: Do WM_CONTEXTMENU before OnMouseUp.  [Fixes bug #325535]
4571
4572 2007-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4573
4574         * ColumnHeader.cs: When drawing column text, use EllipsisCharacter
4575         instead of EllipsisWord (by equistango at gmail.com). Fixes part of
4576         #82734.
4577
4578 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
4579
4580         * ToolStrip.cs: Make ToolStrip selectable when TabStop = true.  Find an
4581         item to select when the ToolStrip is selected.
4582         * ToolStripControlHost: Realign the control when the bounds or visibility
4583         change.
4584         * ToolStripItem.cs: When selected, if it's a control host, focus the control.
4585         * ToolStripOverflow.cs: When laying out the drop down, respect the item's
4586         preferred height.
4587         * ToolStripTextBox.cs: OnPaintInternal should call base.OnPaintInternal, not
4588         base.OnPaint.  Was causing text not to be drawn.
4589
4590 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
4591
4592         * SplitterPanel.cs: Ignore attempts to set AutoSizeMode.
4593
4594 2007-09-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4595
4596         * TreeView.cs: When creating the label edit text box,
4597         set is initially to Visible = false. This is done to
4598         prevent a confusion in the layout which makes it to lose
4599         focus when shown the first time. Fixes part of #82592.
4600
4601 2007-09-13 Andreia Gaita <avidigal@novell.com>
4602
4603         * WebBrowserBase.cs: add FocusOption enumeration for finer focus control
4604
4605 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
4606
4607         * ToolStrip.cs: Take Margin into account when calculating preferred
4608         size.  Also, allow preferred size to get smaller than the explicit
4609         size.
4610         * ToolStripTextBox.cs: Don't change the GetPreferredSize implementation.
4611         First step towards fixing bug #82747.
4612
4613 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
4614
4615         * TreeView.cs: Applied patch from latency@gmx.de to not paint the
4616         full row select background over the plus/minus glyph.  Also, turn
4617         off the focus rectangle for full row select since MS doesn't seem
4618         to ever paint it.  [Fixes bug #81839]
4619
4620 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
4621
4622         * ToolStrip.cs: Don't FocusInternal if there is no selected item.
4623         This was causing keyboard opened dropdowns to lose focus.
4624         [Fixes bug #82803]
4625
4626 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
4627
4628         * Control.cs: If Rectangle.Empty is passed to Invalidate, use
4629         ClientRectangle instead.  [Fixes bug #82838]
4630
4631 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
4632
4633         * SplitContainer.cs: We can't reset Visible on every layout because
4634         someone may have set Visible = false explicitly on a SplitterPanel.
4635         Make sure when we switch orientation the SplitterDistance does not
4636         change.  Fixes two failing tests.
4637
4638 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4639
4640         * TreeView.cs: Use MeasureTextInternal instead of MeasureText in
4641         TextRenderer, since the latter is only available in 2.0.
4642
4643 2007-09-13  Ivan N. Zlatev <contact@i-nz.net>
4644
4645         * Cursor.cs: Fix Cursor.Current to apply Cursor.Default.
4646         * SplitContainer.cs: Implement FixedPanel layouting.
4647
4648 2007-09-12  Andreia Gaita  <avidigal@novell.com>
4649
4650         * WebBrowserBase.cs: setup shutdown routine
4651
4652 2007-09-12  Andreia Gaita  <avidigal@novell.com>
4653
4654         * Application.cs: Let keyboard events that are targetted 
4655                 to non-mwf windows hosted inside mwf (as in, webbrowser),
4656                 propagate properly. Fixes keyboard handling on the webbrowser.
4657
4658 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4659
4660         * ListView.cs: When handling MouseUp event and we are 
4661         highligting a node with the mouse right button, don't trigger
4662         Before/AfterSelecting event, since we are not actually selecting
4663         the node.
4664
4665 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4666
4667         * TreeView.cs: When editing a node, modify the edit text box
4668         depending on the text length (as you are typing), like MS does.
4669
4670 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
4671
4672         * ToolStrip.cs: Fixup preferred size calculations for vertical toolbars. 
4673         Override GetPreferredSizeCore to perform calculations.  Remove custom
4674         autosize logic.  [Fixes bug #82739]
4675
4676 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
4677
4678         * TextBoxBase.cs: Modified should default to false.
4679
4680 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
4681
4682         * Control.cs: Update the anchoring distances even when layout is supspended.
4683         Patch provided by George fixes bug #82805.
4684
4685 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
4686
4687         * Control.cs: Provide a setter for ExplicitHeight.
4688         * TextBoxBase.cs: Now that we have the implementation for explicit heights,
4689         remove the hacks in here for requested_height.
4690         [Fixes bug #82749]
4691
4692 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
4693
4694         * ScrollBar.cs: Fix an issue reported on the lists where setting a scrollbar's
4695         Maximum to lower that its current Value caused an ArgumentException by setting
4696         the Value to the new Maximum.
4697
4698 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
4699
4700         * ThemeWin32Classic.cs: Math is hard!  Fix some math so that the TrackBar
4701         handle moves to the closest tick when it is being dragged.
4702         [Fixes bug #82751]
4703
4704 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
4705
4706         * ToolStripManager.cs: When we have added MDI buttons onto a MenuStrip, we
4707         can't let them count as real items when calculating where to merge in the
4708         user's items.  [Fixed bug #82786]
4709
4710 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
4711
4712         * ToolStripMenuItem.cs: Add a parent type check so we don't crash on people
4713         who want to add a menu item directly onto a toolstrip.
4714         [Fixes bug #82775, part II]
4715
4716 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
4717
4718         * StatusStrip.cs: Synchronize SetDisplayedItems with the ToolStrip version.
4719         * ToolStrip.cs: If a ToolStripItem set to not visible is added to a ToolStrip,
4720         don't set it to available.
4721         * ToolStripItem.cs: When Visible is changed, tell the owner to perform a layout.
4722         [Fixes bug #82727, part II]
4723
4724 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
4725
4726         * StatusStrip.cs: Change item placement to None if not visible.
4727         * ToolStripItem.cs: Invalidate when InternalVisible changes.
4728         These should have been committed to fix 82723, but I missed them.
4729
4730 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
4731
4732         * ToolStrip.cs: Make sure ItemClicked is raised before the ToolStripItem's
4733         Click, and that it is only called once.
4734         * ToolStripMenuItem.cs: Call OnClick even when there are dropdown items.
4735         * ToolStripDropDownItem.cs: Override HandleItemClick so dropdowns stay
4736         dropped down.
4737         [Fixes bug #82775]
4738
4739 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4740
4741         * ColumnHeaderSample.cs: Use 5 pixels as extra height instead of 8
4742         to match .Net.
4743         * ThemeWin32Classic.cs: For the columns text, use 5 pixels as left padding
4744         instead of 8, just like above. Partially fixes #82734.
4745
4746 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4747
4748         Patch by Ernesto Carrea <equistango at gmail.com>. Partially 
4749         fixes #82734.
4750
4751         * ListView.cs: Remove extra space between rows in Details view (match
4752         .Net). 
4753         * ThemeWin32Classic.cs: Header text should use ListView.Font, not
4754         the DefaultFont.
4755
4756 2007-09-08  Gert Driesen  <drieseng@users.sourceforge.net>
4757
4758         * Application.cs: Modified ProductVersion to return value of
4759         AssemblyInformationVersion if available, and fallback to assembly
4760         version. Fixes bug #82746. Code formatting.
4761         * BindingSource.cs: Remove NIE from Dispose, and mark it MonoTODO
4762         instead.
4763
4764 2007-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4765
4766         * Control.cs: When updating ZOrder for a child control,
4767         take into account the implicit ones (we need it in our controls
4768         using them). Fixes #82642.
4769
4770 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
4771
4772         * ToolStripItem.cs: Add support for animated images.
4773         [Fixes bug #82726]
4774
4775 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
4776
4777         * ToolStrip.cs: Make sure we aren't drawing anything that isn't 
4778         visible.  [Fixes bug #82727]
4779
4780 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4781
4782         * ToolStripItem.cs: If AutoSize changes the size of our item, invalidate
4783         so we repaint using the new size.  [Fixes bug #82723]
4784
4785 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4786
4787         * TreeView.cs: If ShowLines is true, we should ignore the FullRowSelect
4788         option.  [Fixes bug #81779]
4789
4790 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4791
4792         * TreeView.cs: Override HandleClick because the StandardClick style is
4793         set to false.  According to MSDN (and testing), the click events should
4794         only be raised when the click occurs on a TreeNode.  [Fixes bug #81739]
4795
4796 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4797
4798         * ToolStripTextBox.cs: Invalidate our textbox when it loses focus, so
4799         the border will disappear.  Fixes reopened #82653.
4800
4801 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4802
4803         * Control.cs: If the control is autosize, and its preferred size changes
4804         when it lays out its children, tell its parent so it can be re-layed out.
4805         Fixing some of the fallout from r85433.
4806
4807 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4808
4809         * ThemeWin32Classic.cs: Fix a NRE caused by r85427 because RadioButton
4810         and CheckBox share some code.
4811
4812 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4813
4814         * TrackBar.cs: Only call OnScroll if we actually changed the Value of
4815         the TrackBar, not every mouse move.  [Fixed bug #82718]
4816
4817 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4818
4819         * ThemeWin32Classic.cs: Allow a CheckBox to be rendered like a Button
4820         under 2.0 rendering.  [Fixes bug #82657]
4821
4822 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4823
4824         * TreeView.cs: If we found a TreeNode to display a context menu, but
4825         it doesn't have one to show, let the TreeView display its menu
4826         instead.  [Fixes bug #82680]
4827
4828 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
4829
4830         * ToolStripTextBox.cs: TextBox no longer call OnPaint, we need to use
4831         OnPaintInternal instead.  Give the internal TextBox a Border property
4832         so it can draw itself more correctly.  [Fixes bug #82653]
4833
4834 2007-09-06  Zoltan Varga  <vargaz@gmail.com>
4835
4836         * HtmlHistory.cs HtmlWindow.cs HtmlWindowCollection.cs ListBindingHelper.cs WindowsFormsSection.cs WindowsFormsSynchronizationContext.cs: Stubs for missing 2.0 classes.
4837
4838 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
4839
4840         * ComboBox.cs: Adjust combobox button state to reflect current state when
4841         back to enabled = true. Fixes first issue of #82654.
4842
4843 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
4844
4845         * Control.cs: Fix last patch regression, prevent forms to update zorder when
4846         setting visible property.
4847
4848 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
4849
4850         * Control.cs: Update zorder after control creation in SetVisibleCore, it 
4851         fix zorder for controls initially created as non visible. Fixes #82667.
4852
4853 2007-09-04  Everaldo Canuto  <everaldo@simios.org>
4854
4855         * ThemeWin32Classic.cs: Adjust checkbox light color to ControlLightLight to
4856         mimic win32 look. Fixes #82656.
4857
4858 2007-09-01  Zoltan Varga  <vargaz@gmail.com>
4859
4860         * FileDialogCustomPlace.cs FileDialogCustomPlacesCollection.cs: 
4861         Stubs for new net 3.5 classes.
4862
4863 2007-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4864
4865         * ListViewItem.cs: In ListViewItemCollection operations calculate
4866         Layout for owner as well as invalidate it. Fixes part of #82642.
4867
4868 2007-08-31  Jonathan Pobst  <monkey@jpobst.com>
4869
4870         * ToolStripItem.cs: Take Parent/Owner's Enabled state in to account
4871         when returning Enabled.  [Fixes bug #82651]
4872
4873 2007-08-30  Everaldo Canuto  <everaldo@simios.org>
4874
4875         * ToolBar.cs: Fix button size for non flat toolbars. Fixes #82368.
4876
4877 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4878
4879         * ListView.cs: Put item padding info in a single place
4880         (Theme.ListViewItemPaddingWidth) to have working AutoResize on
4881         columns again.
4882         * ThemeWin32Classic.cs:
4883         * Theme.cs: Likewise.
4884
4885 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4886
4887         * ListView.cs: When a ListViewSubItem instance is invalidated,
4888         invoke Invalidate on parent ListViewItem, not parent ListView.
4889         Fixes #81570.
4890
4891 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
4892
4893         * ListView.cs, ListViewItem.cs: corcompare stuffs.
4894
4895 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
4896
4897         * BindingMemberInfo.cs: Implement == and != operators.
4898
4899 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
4900
4901         * HtmlElementEventArgs.cs: Implement properties.
4902
4903 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
4904
4905         * HtmlElementErrorEventArgs.cs, HtmlElementErrorEventHandler.cs: Added.
4906
4907 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
4908
4909         * TabControl.cs: I was looking into the MonoTODO on TabPageCollection.
4910         Add (string,string,string) to implement the imagekey.  It turns out, we
4911         use the requested imagekey whereas .Net does not.  So I broke ours to match
4912         theirs.  :(
4913
4914 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
4915
4916         * Form.cs, UserControl.cs: Override ValidateChildren, AutoValidate.
4917
4918 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
4919
4920         * ContainerControl.cs: Implement ValidateChildren and new Validate overload.
4921
4922 2007-08-29  Gert Driesen  <drieseng@users.sourceforge.net>
4923
4924         * FolderBrowserDialog.cs: Set Tag of newly created node, and keep it
4925         up-to-date. Fixes bug #82618.
4926
4927 2007-08-29  Everaldo Canuto  <everaldo@simios.org>
4928
4929         * TextBoxBase.cs: Call CalculateDocument after changes Lines property to
4930         reflect document changes. Fixes #82367.
4931
4932 2007-08-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4933
4934         * ListView.cs: Add/fix some override differences between 1.1 and 2.0,
4935         as well as add new ones. This should make work the BackgroundImage
4936         property for ListView again.
4937
4938 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
4939
4940         * DataGrid.cs, DataGridViewButtonColumn.cs, DataGridViewCheckBoxColumn.cs,
4941         DataGridViewComboBoxColumn.cs, DataGridViewImageColumn.cs, DataGridViewLinkColumn.cs,
4942         DataGridViewTextBoxColumn.cs, ToolTip.cs: corcompare stuffs.
4943
4944 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
4945
4946         * Control.cs, XPlatUI.cs, XPlatUIDriver.cs, XPlatUIWin32.cs: Implement
4947         IsKeyLocked.
4948
4949 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
4950
4951         * Cursor.cs: Add HotSpot, hook into XPlatUI.GetCursorInfo.
4952         * XPlatUIWin32.cs: Implement hotspot lookup in GetCursorInfo.
4953
4954 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
4955
4956         * RadioButton.cs: Use 2.0 rendering.  Use base implementation of TextAlign.
4957         * Theme.cs, ThemeWin32Classic.cs: Implement 2.0 rendering for RadioButton.
4958
4959 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
4960
4961         * CursorConverter.cs: Implement conversion to InstanceDescriptor.
4962
4963 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
4964
4965         * GridEntry.cs: Implement GetService.
4966
4967 2007-08-27  Jonathan Pobst  <monkey@jpobst.com>
4968
4969         * LabelEditTextBox.cs, TreeView.cs: After hiding the textbox used
4970         for label editting, make sure we focus back on the TreeView.
4971         [Fixes bug #82590]
4972
4973 2007-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4974
4975         * ListView.cs: Add some 2.0 overrides.
4976
4977 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
4978
4979         * Form.cs: Uses opacity var instead of Opacity property in CreateHandle
4980         because getter dont returns right value before handle creation. Thanks 
4981         to George. Fixes #82569.  
4982
4983 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
4984
4985         * Theme.cs: Revert last patch, it causes error under win32. 
4986
4987 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
4988
4989         * Theme.cs: Uses Environment.SpecialFolder.DesktopDirectory instead of 
4990         Environment.SpecialFolder.Desktop in Places method, Desktop returns the 
4991         logical Desktop rather than the physical file system location. Fixes #82603. 
4992
4993 2007-08-26  Everaldo Canuto  <ecanuto@novell.com>
4994
4995         * MessageBox.cs: Add clipboard copy (ctrl+c) to messagebox. Thanks Andy Hume
4996         for the patch. Fixes #82568.
4997
4998 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4999
5000         * ListView.cs: Add a pair of missing 2.0 ListViewItemCollection.Insert
5001         methods.
5002
5003 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5004
5005         * ListViewInsertionMark.cs: New stubbed class.
5006
5007 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
5008
5009         * FolderBrowserDialog.cs: When adding folder, immediately create the
5010         directory with temporary name and rename the directory when editing
5011         finishes. This matches MS. Ensure the node for the new folder is 
5012         selected and LabelEdit is disabled, when editing is either finished
5013         or cancelled.
5014
5015 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
5016
5017         * TreeView.cs: When editing label of node, ensure node is visible.
5018
5019 2007-08-25  Ivan N. Zlatev  <contact@i-nz.net>
5020
5021         * PropertyGridView.cs: Set the value only if it has changed.
5022
5023 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5024
5025         * ListView.cs: Some more code refactoring to add support sorting
5026         with groups (now for Details view). Remove unused code also.
5027
5028 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
5029
5030         * NodeLabelEditEventArgs.cs: EndEdit immediately when CancelEdit is called.
5031         Not a big fan of reacting immediately to a field in an EventArg, but that's
5032         the way it's done.  (This is part of the previous commit that got left out.)
5033
5034 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
5035
5036         * FolderBrowserDialog.cs: Removed need for separate description field.
5037         Replaced "" with string.Empty. Fixed tabindex. Ensure OK button
5038         has focus when dialog box is displayed again, regardless of what
5039         button was pressed the previous time. Set RootFolder and SelectedPath
5040         each time dialog box is displayed. This ensures the treeview is
5041         refreshed, and fixes bug #82579. Do no hide selected node in TreeView
5042         when it does not have focus. Added support for more special folders.
5043
5044 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
5045
5046         * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in EndEdit
5047         before calling AfterLabelEdit.  If the user calls BeginEdit in that event,
5048         it resets the edit_args.
5049         * TreeNode.cs: Call CancelEdit if the user passes cancel = true to EndEdit.
5050         [Fixes bug #82577]
5051
5052 2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
5053
5054         * FolderBrowserDialog.cs: Modifies form caption and text of new folder
5055         button to match MS. Provide more meaningful exception message for
5056         invalid RootFolder value. Use zero-length string when SelectedPath
5057         is set to null. Allow non-rooted paths in SelectedPath, but ignore
5058         them in FolderBrowserTreeView. Allow folders to be created in
5059         RootFolder. Fixes bug #82576.
5060
5061 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5062
5063         * ListView.cs: Correctly compute the layout_ht (height) when using groups,
5064         since we need to take into account the group headers and the margin
5065         between them.
5066         * ListViewGroup.cs: Add a rows field to store the number of rows per
5067         group.
5068
5069 2007-08-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5070
5071         * DateTimePicker.cs: The MS' MTB has a really stupid year formatting.
5072           Anyways, let's just follow the lead.
5073
5074 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
5075
5076         * CheckBox.cs: Set the AutoSizeMode to GrowAndShrink.
5077         * Form.cs, GroupBox.cs: Don't skip Right or Bottom anchored 
5078         controls in GetPreferredSizeCore.
5079         * ThemeWin32Classic.cs: Tweak text drawing of CheckBoxes.
5080         [Fixes bug #82488]
5081
5082 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
5083
5084         * PrintDialog.cs: Need to instantiate the form variable here too.
5085
5086 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5087
5088         * ListView.cs: Do some reorganization to support sorting in groups,
5089         by doing the layout sequentially in ListView.Items. Also add support
5090         for the Default Group, which should be available for items with no
5091         group assigned.
5092         * ListViewGroup.cs: Add support for DefaultGroup. Include new members
5093         for storing layout info also.
5094         * ListViewGroupCollection.cs: Add a DefaultGroup as part of the
5095         collection, as well as providing internal members to do a traversal
5096         including the default group (needed when doing layout/drawing).
5097         * ThemeWin32Classic.cs: When drawing group headers use internal
5098         ListViewGroupCollection members to take into account the default
5099         group.
5100
5101 2007-08-23  George Giolfan  <georgegiolfan@yahoo.com>
5102
5103         * FlowLayoutPanel.cs: Add GetPreferredSizeCore.  [Fixes bug #82537]
5104
5105 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
5106
5107         * TreeView.cs: IsInputKey: don't ask for any keys if the handle hasn't
5108         been created.  If handle is created, we want arror keys.  If we are editing
5109         a node, we want things like enter, esc, home, end, page up, page down.
5110         Allows Esc to work for FolderBrowserDialog.
5111
5112 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
5113
5114         * ColorDialog.cs, FontDialog.cs: Set the form's CancelButton so that
5115         they close when ESC is pressed.  Thanks Andy!
5116
5117 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
5118
5119         * CommonDialog.cs: Do not instantiate form, leave that for derived classes.
5120         This way we can tell if this is a CommonDialog provided with mono, or one
5121         that is being implemented outside by a developer.  If it is an external one,
5122         the developer is responsible for showing their own form.  We were showing
5123         our blank form after the developer showed his.
5124         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs, FontDialog.cs,
5125         PageSetupDialog.cs: Instantiate form variable in our constructor.
5126         [Fixes bug #82531]
5127
5128 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
5129
5130         * ListBox.cs, ListView.cs, TreeView.cs: Override IsInputCharInternal
5131         and always return true.  [Fixes bug #81616]
5132
5133 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
5134
5135         * TextBoxBase.cs: Allow 2.0 AutoSize to change the height of the
5136         TextBox.  [Fixes bug #82549]
5137
5138 2007-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
5139
5140         * FileDialog.cs: When Save/Open is clicked and no filename is selected
5141         or entered then do not close the dialog. Fixes bug #82539. Removed
5142         CWLs.
5143
5144 2007-08-22  Everaldo Canuto  <ecanuto@novell.com>
5145
5146         * FileDialog.cs: Create UpdateRecentFiles and move the recent files refresh
5147         code to this method. It is calling every time filter changes. This method
5148         will help to fix the bug #80887.
5149
5150 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
5151
5152         * CheckBox.cs: Implement AutoSize calculation.
5153
5154 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
5155
5156         * CheckBox.cs: Use new 2.0 rendering for 2.0.
5157         * Theme.cs: Method declarations for 2.0 rendering path.
5158         * ThemeWin32Classic.cs: 2.0 rendering implementation for CheckBox.
5159
5160 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5161
5162         * ListViewGroupCollection.cs: Fix a typo of the previous patch.
5163
5164 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5165
5166         * ListViewGroupCollection.cs: Implement AddRange the right way, to
5167         only call Redraw on the parent one time.
5168
5169 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5170
5171         * DataGridViewRowHeaderCell.cs, DataGridViewColumnHeaderCell.cs: Implemented
5172           GetClipboardContent.
5173         * DataGridViewCell.cs: Implemented GetClipboardContent,
5174           GetEditedFormattedValue, GetFormattedValue.
5175         * DataGridView.cs: Implemented GetClipboardContent, TopLeftHeaderCell.
5176
5177 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
5178
5179         * TableLayoutStyleCollection.cs: corcompare fix.
5180
5181 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5182
5183         * DataObject.cs: Implemented retrieval of convertible / not convertible
5184           objects.
5185
5186 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
5187
5188         * ToolStripItem.cs: When changing the item's text, invalidate before we resize
5189         ourselves.  This ensures the entire old bounds are repainted, in case our new
5190         size is smaller.  [Fixes bug #82518]
5191
5192 2007-08-20  Everaldo Canuto  <ecanuto@novell.com>
5193
5194         * XplatUIX11.cs: Apply patch from #81588, it makes use of PointerMotionHintMask
5195         flag to make fast handle of mouse events, without this the mouse move is
5196         handled in some manner, whether it is a mouse move or not. Fixes #81588.
5197
5198 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5199
5200         * ListView.cs: When doing layout calculations don't use a ref
5201         param to keep the current item; instead use its Index value (this 
5202         is specially important when doing the layout with Groups
5203         and Items being sparse). Also don't take into account items added to
5204         the Group but not yet added to the main ListView.Items collection.
5205
5206 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5207
5208         * ListViewGroupCollection.cs: Forgot to mimic an issue
5209         in the indexer (don't assign the ListView owner for new values).
5210
5211 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5212
5213         * ListViewGroupCollection.cs: Make the string indexer use
5214         the int based indexer to re-use code, instead of duplicate the code.
5215         Also Redraw as needed and take into account null values.
5216
5217 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
5218
5219         * StatusStrip.cs: Make sure the item's parent gets set in SetDisplayedItems.
5220         [Fixes bug #82481]
5221
5222 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
5223
5224         * ToolStrip.cs: Add some logic to un-focus controls in ToolStripControlHosts
5225         when other buttons are clicked or navigated to.
5226
5227 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5228
5229         * XplatUIX11.cs: Treat toolwindows as if they had no window manager, since
5230           it's XplatUIX11 that attaches them.
5231
5232 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5233
5234         * DataGridView.cs: If a column has been added, recreate the editing row.
5235           Fixes #82226.
5236
5237 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5238
5239         * TextControl.cs: Use Math.Max instead of Math.Min when deciding the length
5240           of the tag to draw. Makes disappearing text show up again.
5241
5242 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5243
5244         * StatusBar.cs: Take into account any icons when a panel has AutoSize =
5245           Contents. Fixes #82487.
5246
5247 2007-08-19  Andreia Gaita  <avidigal@novell.com>
5248
5249         * Added HtmlElement.cs, HtmlElementCollection.cs, 
5250           HtmlElementEventArgs.cs, HtmlElementEventHandler.cs
5251           
5252 2007-08-19  Andreia Gaita  <avidigal@novell.com>
5253
5254         * BindingSource.cs: Implement this, dispose and getenumerator.
5255         * DataGridViewRowCollection.cs: Move the InvalidOperationException
5256         out of AddInternal, throw it only on public Add calls. The 
5257         UsingWebBrowser sample was blowing up with this when setting the
5258         DataSource after adding DataBindings, so it's likely that .net
5259         only throws this exception when Add is called directly. 
5260         
5261         * ToolStripControlHost.cs: Return the hosted control's text
5262         property, and not the ToolStripItem one (it would always return
5263         the initial value).
5264         
5265         * HtmlDocument.cs: Implement GetElementById and All
5266         * WebBrowser.cs: Remove exception on set_DocumentStream.        
5267
5268 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
5269
5270         * Form.cs: Fix the max and min value for opacity (0~1).
5271
5272 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
5273
5274         [Fixes #80118]
5275         * DataGridTableStyle.cs: Default header font is now null, on getter it 
5276         returns datagrid font when is null. On setter permits null.
5277
5278         * DataGrid.cs:
5279         - When ResetHeaderFont set header font to null.
5280         - On EndInit set grid_style.DataGrid.
5281
5282 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
5283
5284         * TabControl.cs: Fix regression in default padding x.
5285
5286 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
5287
5288         * TabControl.cs: Fix tab page text area removing padding. Fixes #82471.
5289
5290 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
5291
5292         * TabControl.cs: Fix first tab drawing, when selected it must have x = 0
5293         not 2. Fixes #82229.
5294
5295 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
5296
5297         * TabControl.cs: Fix tab size when image height is less than text height.
5298         Partially fixes #81837.
5299
5300 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
5301
5302         * Form.cs: Add WS_EX_CONTROLPARENT to forms to make it selectable using 
5303         "alt + tab". It works only for Win32, for X11 theres no way to remove window
5304         from taskbar and keep it on "alt_tab". Fixes #81722.
5305
5306 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
5307
5308         * XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
5309         and DrawReversibleLine, also apply same behavior to FillReversibleRectangle. 
5310         Fixes #80877 and #79418.
5311
5312 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
5313
5314         * MenuAPI.cs: Fix popup menu position when the size is larger than distance 
5315         between position and one of the screen borders. Fixes #82349.
5316
5317 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
5318
5319         * MessageBox.cs: When there is no form that invoked the MessageBox, shows
5320         the MessageBox in the taskbar. Fixes #82457.
5321
5322 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
5323
5324         * MessageBox.cs: Fix form size when icon is set and text height is bigger
5325         than icon. Fixes #82468.
5326
5327 2007-08-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5328
5329         * ThemeWin32Classic.cs: A FixedToolWindow has border size 3.
5330         * InternalWindowManager.cs: Change HandleCalcSize to return a boolean value
5331           if handled or not. Implement WM_NCCALCSIZE for WParam == 0 as well.
5332           Refactored HandleNCCalcSize somewhat to avoid code duplication.
5333         * Form.cs: Add is_clientsize_set, set in set_ClientSize, used by
5334           FormBorderStyle to decide if we're calculating a new size from the
5335           client size or not. CreateParams: Don't fake tool windows, only the X11
5336           backend manages toolwindows manually.
5337
5338 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
5339
5340         * Form.cs: Only reset is_visible if !IsDisposed to prevent an
5341         ObjectDisposedException.
5342
5343 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
5344
5345         * Form.cs: Reset is_visible back to true after OnLoad.  Setting this
5346         in OnLoad should not have any effect.  [Fixes bug #82470]
5347
5348 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
5349
5350         * ToolTip.cs: Add a hack to ToolTipWindow so it will still size and
5351         paint for controls that create their own ToolTipWindow instead of
5352         going through ToolTip.
5353
5354 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
5355
5356         * ToolTip.cs: Make Hide internal instead of public to match MS API.
5357
5358 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5359
5360         * ListViewGroupCollection.cs: Use generic List instead of an
5361         ArrayList, since this collection is 2.0 only.
5362
5363 2007-08-17  Jeffrey Stedfast  <fejj@novell.com>
5364
5365         * ToolTip.cs (Hide): Made public to make the build work (should
5366         this not be public?).
5367
5368 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
5369
5370         * ToolBar.cs, ToolStrip.cs, TreeView.cs: Use a ToolTip instead of a
5371         ToolTipWindow.
5372         * ToolTip.cs: Add an internal Visible property to facilitate transition.
5373
5374 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
5375
5376         * DrawToolTipEventArgs.cs, DrawToolTipEventHandler.cs, PopupEventArgs.cs,
5377         PopupEventHandler.cs: Make these internal for 1.1.
5378         * ThemeClearlooks.cs, ThemeWin32Classic.cs: Use TextRenderer, and modify to not
5379         use ToolTipWindow internals.
5380         * ToolTip.cs: Add 2.0 modal Show methods.  Had to move a lot of stuff around to
5381         support this.  A lot of stuff in the ToolTipWindow got moved to the ToolTip.
5382
5383 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5384
5385         * X11Dnd.cs: Add a null check.
5386
5387 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5388
5389         * X11Dnd.cs: MwfWindow: Try to load the control directly from the handle if
5390           nothing else succeeds. Fixes #82453.
5391
5392 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5393
5394         * XplatUIWin32.cs: PaintEventStart: validate the entire source client
5395           rectangle if we're painting to another window than the one the paint
5396           message was generated on. Simplify the code somewhat, which makes
5397           PaintEventEnd also simpler.
5398
5399 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5400
5401         * Control.cs: When changing parent of a form, let the form decide whether
5402           XplatUI.SetParent should be called or not.
5403         * Form.cs: ChangingParent: only call XplatUI.SetParent if we're not
5404           recreating the handle. If the new parent's handle isn't created, don't
5405           recreate our handle, just destroy it. CreateParams: Check if the
5406           parent's handle is created before fetching it.
5407
5408 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5409
5410         * Control.cs, Form.cs, InternalWindowManager.cs, MainMenu.cs, MdiClient.cs:
5411           Update calls to PaintEventStart/End to take a Message argument.
5412         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Update PaintEventStart/End to
5413           take a Message argument.
5414         * XplatUIWin32.cs, XplatUIX11.cs: Update PaintEventStart/End to take a
5415           Message argument, and handle the case where we don't paint to the window
5416           for which the paint message was generated.
5417
5418 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5419
5420         * XplatUIWin32.cs: Don't call Win32GetLastError directly, use
5421           Marshal.GetLastWin32Error. Plug nasty memory leak in
5422           PaintEventStart/End, we were creating a DC we weren't releasing.
5423
5424 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5425
5426         * ListView.cs: Add Groups support in Details view. Also have a small
5427         method to do the layout of the group header. Don't use a separate
5428         method to do the groups calculation in Icons view, since our methods
5429         are now a little simpler.
5430         * ListViewGroup.cs: Use the more accurate `HeaderBounds' name than
5431         `Bounds'.
5432         * ThemeWin32Classic.cs: Likewise.
5433
5434 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
5435
5436         * Application.cs: Add FilterMessage method and rework our message loop
5437         logic to use it.
5438
5439 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
5440
5441         * Application.cs: Add some methods and stub a few methods that are
5442         pretty much never used.
5443
5444 2007-08-15  Jonathan Pobst  <monkey@jpobst.com>
5445
5446         * TreeNode.cs: Add some serialization methods.
5447
5448 2007-08-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5449
5450         * ListView.cs: In ListViewItemCollection have a 
5451         'is_main_collection' field to not modify ListViewItem.ListView
5452         when using it as ListViewGroup.Items (and not ListView.Items)
5453         and also don't modify selection state (.Net behaviour). 
5454         Instead, set group for items contained in a ListViewGroup.Items collection.
5455         * ListViewItem.cs: Simplify some code in Group setter.
5456         * ListViewGroup.cs: use the new .ctor to pass the current instance
5457         to the ItemsCollection.
5458         * ListViewGroup.cs: Set the ListView property for ListViewGroup
5459         instances when adding/removing. Also make Remove use RemoveAt, which
5460         should perform better.
5461
5462 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
5463
5464         * Message.cs, TabControl.cs, TextBox.cs, TextBoxBase.cs: Hide some 2.0 API
5465         that crept into the 1.1 profile.
5466
5467 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
5468
5469         * ToolBarButton.cs: Implement ImageKey.
5470
5471 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
5472
5473         * ToolBar.cs: Implement ScaleControl/ScaleCore.
5474
5475 2007-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5476
5477         * PictureBox.cs: OnAnimateImage/UpdateAnimateImage: Check if handle is still
5478           created, it might have gotten destroyed since we last checked. Fixes
5479           #82405.
5480
5481 2007-08-11  Jonathan Pobst  <monkey@jpobst.com>
5482
5483         * ToolTip.cs: Remove mouse in control check from mouseleave handler so
5484         tooltip will hide when mouse is moved off the control.
5485         [Fixes bug #82407]
5486
5487 2007-08-11 Andreia Gaita <avidigal@novell.com>
5488
5489         * WebBrowserBase.cs, WebBrowser.cs: add implementation
5490         using Mono.Mozilla for loading and navigating webcontrol
5491         with xulrunner.
5492         The initial implementation was done on 
5493         /trunk/mozembed/tests/browser , and copied here.
5494
5495 2007-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
5496
5497         * ThemeWin32Classic.cs: On 2.0 profile, use ForeColor and BackColor of
5498         ToolTipWindow for drawing the tooltip. Fixes bug #82408.
5499
5500 2007-08-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5501
5502         * DataGridView.cs: Add support for an editing row. Fixes #82226.
5503           RowTemplateFull: throw an exception if a column doesn't have a template.
5504         * DataGridViewRowCollection.cs: AddInternal: if there are any editing rows,
5505           add the row just before it.
5506         * DataGridViewTextBoxCell.cs: Don't paint cells which are in edit mode as
5507           selected.
5508         * DataGridViewSelectedRowCollection.cs: Don't return the editing row. Add a
5509           DataGridView field to be able to reach the grid's editing row.
5510
5511 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
5512
5513         * ToolTip.cs: If the control's handle hasn't been created when it has a
5514         tooltip set on it, don't check to see if we need to show the tooltip.  This
5515         check was causing the control's handle to be created.
5516         [Fixes bug #82399]
5517
5518 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
5519
5520         * TextBoxBase.cs: Fix SelectionLength when no text selected to match MS:
5521                                         1.1             2.0
5522         Handle Not Created      -1              0
5523         Handle Created          0               0
5524         [Fixes bug #82371]
5525
5526 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
5527
5528         * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior.
5529         [Fixes bug #82348]
5530
5531 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
5532
5533         * DrawToolTipEventArgs.cs: Don't dispose a brush we got from the respool.
5534         * ToolTip.cs: Implement some properties and owner draw.
5535
5536 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5537
5538         * DataGridView.cs: OnPaint: don't set scrollbar visibility to false then
5539           show them again, since setting visibility causes a paint, causing an
5540           endless loop (instead use a temporary and set it all when it's known if
5541           they should be shown or not). Fixes #79265.
5542
5543 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5544
5545         * DataGridView.cs: Only do a full column/row selection if a header was
5546           clicked and we're in Column/RowHeader selection mode. If shift and ctrl
5547           isn't pressed, deselect everything before selecting something.
5548
5549 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5550
5551         * DataGridView.cs: Fix SelectedRows and SelectedColumns to match MS
5552           behaviour according to bug #81075 - they are returned in the order they
5553           are selected. Fix HitTest to check if the point is within any of the
5554           headers. Allow for row/column selection when in ColumnHeader or
5555           RowHeader selection mode. Add SetSelected[Column|Row]CoreInternal for
5556           the row and column to call when their selected state changes, and
5557           updated selected_[rows|columns] whenever SetSelected* is called.
5558         * DataGridViewBand.cs: Initialize isRow correctly. Call
5559           SetSelected[Row|Column]CoreInternal when the selected state changes, and
5560           add a SelectedInternal to avoid StackOverflows.
5561         * DataGridViewColumn.cs, DataGridViewRow.cs: If DGV is ReadOnly, we're also
5562           ReadOnly no matter what.
5563         * DataGridViewSelectedColumnCollection.cs,
5564           DataGridViewSelectedRowCollection.cs: Add an InternalAddRange that adds
5565           the items in reverse order (just as MS does...)
5566
5567 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
5568
5569         * Application.cs: Only release menustrips if Alt (MenuKey) is pressed by
5570         itself, not part of a mnemonic.  [Fixes bug #82378]
5571
5572 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5573
5574         * DataGridView.cs: BeginEdit: don't allow editing of readonly cells.
5575         * DataGridViewCell.cs: Implement ReadOnly better: the cell is ReadOnly if
5576           the DGV, the column, the row, or the cell itself is readonly.
5577
5578 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
5579
5580         * ThemeNice.cs: Use XplatUI.RunningOnUnix instead of checking
5581         OSVersion.Platform.
5582         * FileDialog.cs: Same.
5583         * TextRendered.cs: Same.
5584         * FolderBrowserDialog.cs: Same.
5585         * TextBoxBase.cs: Same.
5586         * Application.cs: Same.
5587         * Cursors.cs: Same.
5588         * ThemeClearLooks.cs: Same.
5589
5590 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
5591
5592         * XplatUI.cs: Added RunningOnUnix property to be used by controls
5593         instead of duplicating these checks everywhere.
5594         * FileDialog.cs: Use case-insensitive comparison for populating the
5595         DirComboBox when not running on unix. Fixes bug #82385.
5596         * OpenFileDialog.cs: to match MS, change label of DirComboBox to 
5597         "Look in".
5598
5599 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5600
5601         * DataGridView.cs: SelectedRows: we need to check if selectionMode is
5602           FullRowSelect (not FullColumnSelect). Fixes #81075. Implemented
5603           BeginEdit, EndEdit, SetSelected<Cell|Row|Column>Core. Implemented row,
5604           cell and column selection with ctrl and shift pressed. Call the correct
5605           BeginEdit/EndEdit whenever we start/end editing. Move painting code to
5606           the corresponding virtual method (PaintBackground to paint background,
5607           etc).
5608         * DataGridViewCell.cs: Implement Selected correctly, we're selected if
5609           either the column, row or the cell itself is selected.
5610         * DataGridViewRowCollection.cs: Use DGV.OnRowsAddedInternal instead of
5611           OnRowsAdded.
5612         * DataGridViewRow.cs: Moved some of the painting code from DataGridView
5613           here. When the row is selected, don't select all cells. Each cell now
5614           queries the row to see if the row is selected.
5615
5616 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5617
5618         * DataGridViewColumn.cs: Throw if the SortMode conflicts with DataGridView's
5619           SelectionMode.
5620
5621 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5622
5623         * ListView.cs: In ListViewItemsCollection check that owner is
5624         not null before trying to access it (this happens quite often
5625         using Groups). Also don't duplicate calls by calling CollectionChanged
5626         method.
5627
5628 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
5629
5630         * ToolStrip.cs: Record if we were activated by mouse or keyboard.  Redraw
5631         when we are dismissed to clear keyboard mnemonics.
5632         * MenuStrip.cs, ToolStripDropDown.cs, ToolStripItem.cs, 
5633         ToolStripMenuItem.cs: Record if we were activated by mouse or keyboard.
5634         * ToolStripItemTextRenderEventArgs.cs: Draw mnemonic underlines if menu
5635         was activated by keyboard or the OS tells us to always draw them.
5636         * ToolStripManager.cs: Setup storage for activated by mouse or keyboard.
5637         [Fixes bugs #82376, #82377]
5638
5639 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
5640
5641         * Control.cs: If no one accepts a mnemonic, let the MenuStrip have a 
5642         shot at having it because Alt was pressed.
5643         * MenuStrip.cs: When handling Alt, don't select a SystemMenuItem, select
5644         the first real menu item.
5645         * ToolStrip.cs: Don't crash when looking for a ToolStripItem to handle
5646         a mnemonic if Text is null.
5647         [Fixes bug #82374]
5648
5649 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5650
5651         * ListView.cs: In ListViewItemCollection.AddItem, don't do a linear
5652         search do check whether the item is already contained in the
5653         collection or not; instead check if the owner of the item is the same
5654         as ours. Also, remove a redundant check in the same method. 
5655
5656 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
5657
5658         * Control.cs: Allow the clip region to be set back to null.
5659         * XplatUIWin32.cs: If we are sent a null clip region, use IntPtr.Zero.
5660         [Fixes button still showing up in bug #82370 when Show Through is turned off]
5661
5662 2007-08-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5663
5664         * GridEntry.cs: Add a null check.
5665         * PropertyGrid.cs: When checking for existing grid entries, ignore category
5666           entries. Fixes #82297.
5667
5668 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
5669
5670         * OwnerDrawPropertyBag.cs: Make the serialization constructor protected
5671         for 2.0.
5672
5673 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
5674
5675         * ListBox.cs: Implement ScaleControl.
5676
5677 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5678
5679         * Form.cs: Add a few ActiveMenu null checks. ActiveMenu might be null if we
5680           have a menu strip.
5681         * MdiWindowManager.cs: Don't create a maximized menu if the child or it's
5682           parent has a menu strip. Fixes #81689.
5683
5684 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5685
5686         * ToolTip.cs: We don't get mouse events on all platforms in the exact same
5687           moments, so apply some fuzzy logic to determine if the mouse is still
5688           inside a control or not. Fixes #82288 (for the third time).
5689
5690 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5691
5692         * Control.cs: CreateControl: create implicit children as well. Fixes #82344.
5693           Don't create the child if it has been disposed already (may happen if
5694           the user closes the form the Load event).
5695
5696 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5697
5698         * ToolTip.cs: If ReshowDelay is 0, show the tooltip immediately. Fixes
5699           #82288.
5700
5701 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5702
5703         * Control.cs: Add a null check in OnParentBindingContextChanged. The parent
5704           might call us after we've been destroyed, in which case our own private
5705           parent field is null. Fixes #82326.
5706
5707 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
5708
5709         * ToolStripDropDown.cs: Fix a failing test on X11 by adding a null
5710         check for setting the dropdown's owner.
5711
5712 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
5713
5714         * MdiClient.cs: Fix some failing tests on X11 by adding a null check
5715         before removing system menu items.
5716
5717 2007-08-02  Jonathan Pobst  <monkey@jpobst.com>
5718
5719         * MdiClient.cs, MdiWindowManager.cs: Support 2.0 Mdi MenuStrip
5720         folding.
5721         * MdiControlStrip.cs: Added.  These are the menu items used in mdi
5722         folding.
5723         * ToolStrip.cs: Add a null check to mnemonics.
5724         * ToolStripDropDownMenu.cs: When using a SystemMenuItem, there is
5725         no ConnectedArea.
5726         [Fixes most of bug #81689]
5727
5728 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5729
5730         * PropertyGrid.cs: Add a null-check. Fixes #82289/SVGPad.
5731
5732 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5733
5734         Use InitialDelay if ReshowDelay is zero. Fixes #82288.
5735
5736 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5737
5738         * DataGridViewCell.cs: EditType: returns
5739           DataGridViewTextBoxEditingControl always.
5740
5741 2007-08-01  Jonathan Pobst  <monkey@jpobst.com>
5742
5743         * TextRenderer.cs: Remove the LineLimit string format flag from the
5744         DrawString fallback method so that things like buttons that aren't
5745         tall enough to draw a full line will still draw part of the text.
5746         [Fixes part of bug #82272]
5747
5748 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5749
5750         * DataGridView.cs: Implemented AutoResizeColumn(s).
5751         * DataGridViewCellStyle.cs: Added SetAlignment, fills in a StringFormat
5752           according to the Alignment.
5753         * DataGridViewColumnHeaderCell.cs, DataGridViewTextBoxCell.cs:
5754           Implement alignment and padding when painting.
5755         * DataGridViewRow.cs: SetValues: Don't create a cell if it already
5756           exists.
5757         * DataGridViewCell.cs: Implement BorderWidths in the most primitive
5758           way.
5759         * DataGridViewColumnCollection.cs: Raise OnColumnAdded on the DGV when
5760           a column is added.
5761
5762 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
5763
5764         * TextBoxBase.cs: Use Control.ExplicitBounds instead of explicit_bounds,
5765         which is internal.
5766
5767 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
5768
5769         * ToolStrip.cs: Stub out drag and drop methods, fix some corcompare stuff,
5770         hide GetPreferredSize from public API.
5771         * ToolStripDropDown.cs: Override AllowItemReorder, fix AccessibleObject.
5772         * ToolStripItem.cs: Stub out drag and drop methods and events.
5773         * ToolStripManager.cs: Stub out Save/LoadSettings.
5774         * ToolStripOverflow.cs: Use renamed ToolStrip.GetPreferredSize.
5775         * ToolStripPanel.cs: Fix corcompare error.
5776         * ToolStripPanelRow.cs: Use renamed ToolStrip.GetPreferredSize.
5777         * ToolStripSplitButton.cs: Fix AccessibleObject stuff.
5778         * ToolStripSplitStackLayout.cs: Use renamed ToolStrip.GetPreferredSize.
5779
5780 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
5781
5782         * TextBoxBase.cs: In our new GetPreferredSizeCore, return the explicit
5783         bounds height instead of PreferredHeight.  Puts things back the way 
5784         they were for height while still fixing the width.  Fixes broken unit
5785         tests.
5786
5787 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5788
5789         * Binding.cs: Implement 2.0 constructors and add a null check.
5790
5791 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5792
5793         * DataGridViewRowCollection.cs: Allow a null DGV in the constructor,
5794           and fix row index (off by one).
5795
5796 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5797
5798         * PropertyGridView.cs: Remove debug output.
5799
5800 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5801
5802         * Control.cs: We need to reset the is_created flags when the handle is
5803           destroyed. Fixes #82187.
5804         * XplatUIWin32.cs: In GetWindowRect don't offset screen coordinates to
5805           client coordinates if the window doesn't have a parent.
5806           Win32GetParent returns the parent or the owner, and for top-level
5807           windows with no parent (but with an owner) we were calculating the
5808           location from the location of the owner.
5809         * Form.cs: Remove incorrect fix for #82187. Don't raise OnLoad if the
5810           form has been disposed.
5811         * MdiClient.cs: Add a null-check.
5812
5813 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
5814
5815         * TextBoxBase.cs: TextBoxBase reports itself at AutoSize, but doesn't
5816         actually do auto-sizing.  Override the internal GetPreferredSizeCore 
5817         so we can provide an implementation that returns the current width
5818         and preferred height.  Allows anchor = right to work with TextBox 2.0.
5819         [Fixes bug #82233]
5820
5821 2007-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5822
5823         * ListView.cs: Add support for navigating items in Groups mode, by
5824         creating a big matrix containing all rows and cols of all groups. When
5825         are in other mode than Details, pressing Up should have a similar
5826         behaviour as that one of Down (moving to the next available column if
5827         current one doesn't have an item in the requested row). Also, don't
5828         proceed to use groups if ShowGroups is false.
5829         * ListViewGroup.cs: Add an internal int field to store the starting
5830         row of the group (used by the big matrix used for navigating the
5831         ListView).
5832         * ThemeWin32Classic.cs: Don't draw headers if ListView.ShowGroups is
5833         false.
5834
5835 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
5836
5837         * ToolStripDropDown.cs: When we do Show, start with the 
5838         DefaultDropDownDirection, but if our popup menu is going to off-screen,
5839         modify the direction to keep it on screen.  [Fixes bug #82210]
5840
5841 2007-07-29  Gert Driesen  <drieseng@users.sourceforge.net>
5842
5843         * FileDialog.cs: Accept any FilterIndex value, and store it
5844         unmodified. When FilterIndex is less than 1, or greater than number
5845         of filters, then default to first filter. Only add filter extension to
5846         file if user did not specifiy an extension. When type of dialog is
5847         OpenFileDialog and DefaultExt is set, then only use filter extension
5848         if: CheckFileExists is true and no file wih the default extension
5849         exists, or CheckFileExists is false, and user specified file does not
5850         exist. When CheckFileExists is true, then add first extension of 
5851         selected filter that matches existing file. Perform checks for
5852         existing file, overwrite and create after extension has been added to
5853         file name. When CheckFileExists is true and type is SaveFileDialog,
5854         then only consider first filter extension if DefaultExt is set.
5855         When CheckFileExists is true, then ignore DefaultExt if file with that
5856         extension does not exist. Also perform check for existing file when
5857         type is SaveFileDialog. Changed some field to constants.
5858
5859 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5860
5861         * ListView.cs: Take into account the region used by header
5862         control when doing the vertical scroll (this way we invalidate
5863         the precise area, and don't get any dirty one).
5864
5865 2007-07-27  Everaldo Canuto  <ecanuto@novell.com>
5866
5867         * FileDialog.cs: Check for valid filterIndex on button open/save. 
5868         Fixes #82184.
5869
5870 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5871
5872         * ListView.cs: Update some layout calculations in details view
5873         and clean the code in a pair of assignations.
5874
5875 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
5876
5877         * ComboBox.cs, ContainerControl.cs, DataGrid.cs, FontDialog.cs, Label.cs,
5878         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewItem.cs, MessageBox.cs,
5879         MonthCalender.cs, StatusBar.cs, ThemeClearlooks.cs, ThemeWin32Class.cs,
5880         ToolBar.cs, TreeView.cs: First pass at using thread-safe string measuring.
5881
5882 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
5883
5884         * TextRenderer.cs: Use [ThreadStatic] instead of locks to improve
5885         performance of thread-safe Graphic methods.  (Thanks rolf!)
5886
5887 2007-07-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5888
5889         * ListView.cs: When doing the layout calculations, don't calculate
5890         scroll bars before handle is created. This is unnecessary and also
5891         calculating them before handle creation item causes a number of random
5892         bugs (which begin to appear after Chris' big patch for handle creation
5893         fixes). 
5894
5895 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
5896
5897         * TextRenderer.cs: Create thread-safe versions of Graphics.MeasureString
5898         for things that don't have a Graphics object.  Currently, things just use
5899         the static Hwnd.bmp_g which is not thread safe.
5900
5901 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5902
5903         * Form.cs: ShowDialog: don't destroy handles if the dialog is a common
5904           dialog. Fixes #82187.
5905
5906 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5907
5908         * DataGridViewElement.cs: Initialize state.
5909         * DataGridView.cs: Forward a few Mouse events to cells. Add
5910           GetRowInternal and GetCellInternal that doesn't unshare rows.
5911           Implement GetCellDisplayRectangle. HitTest: if the row is shared,
5912           don't use the index, but look it up. Add
5913           DataGridViewControlCollection.RemoveInternal to remove controls
5914           that Remove won't remove (scrollbars, edit control).
5915         * DataGridViewColumn.cs: Initialize State correctly.
5916         * DataGridViewColumnHeaderCell.cs, DataGridViewComboBoxCell.cs,
5917           DataGridViewHeaderCell.cs, DataGridViewRowHeaderCell.cs: Started
5918           implementing this.
5919         * DataGridViewRowCollection.cs: Implemented shared rows.
5920         * DataGridViewRow.cs: Throw exceptions as MS do.
5921         * DataGridViewCell.cs: A few properties are implemented by a
5922           Get<Property> method, so move implementation there and remove the
5923           NIEX in the method. Add a bunch of OnXInternal that DataGridView
5924           calls when necessary.
5925         * DataGridViewComboBoxEditingControl.cs: Remove a few NIEX'es that just
5926           complicates matters.
5927         * DataGridViewCellCollection.cs: Add a GetCellInternal that doesn't
5928           unshare any rows.
5929
5930 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
5931
5932         * UpDownBase.cs: We cannot override SetBoundsCore for 2.0, which was relayout-ing
5933         the children controls.  Instead, we will just set up the proper docking for the
5934         children controls so we don't have to worry about it.  [Fixes bug #82188]
5935
5936 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
5937
5938         * TreeView.cs, NodeLabelEditEventArgs.cs, LabelEditTextBox.cs: Support edit
5939         canceling and correct Before/AfterLabelEdit properties as layed out in bug
5940         81847.  [Fixes bug #81847]
5941
5942 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
5943
5944         * Label.cs: If AutoSize = true and a width or height is set, ignore it and
5945         redo the autosize.  VS2005 defaults to setting the AutoSize, and then setting
5946         an explicit size based on the design-time size of the text.  Since our fonts
5947         may not match this explicit size, we tend to cut off the ends of people's labels.
5948
5949 2007-07-24  Jonathan Pobst  <monkey@jpobst.com>
5950
5951         * Menu.cs: Add some missing methods to MenuItemCollection.
5952
5953 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5954
5955         * DataGridView.cs: Added RowTemplateFull, creates a row from the templates in the columns.
5956         * DataGridViewBand.cs: DefaultHeaderCellType: initialize correctly. Resizable: if not set, check DGV.
5957         * DataGridViewColumn.cs: InheritedAutoSizeMode: if not set, check DGV. Resizable: delegate to base class. ToolTipText: Never return null. Initialize a few other properties correctly.
5958         * DataGridViewColumnCollection.cs: Add: Default column is a TextBoxColumn.
5959         * DataGridViewComboBoxCell.cs: Started implementing this, lots left still.
5960         * DataGridViewElement.cs: State defaults to Visible.
5961         * DataGridViewRowCollection.cs: Add: creates the new row based on a template.
5962         * DataGridViewTextBoxColumn.cs: SortMode: delegate to base class, but initialize to Automatic. ToString: implement correctly.
5963
5964 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5965
5966         * Control.cs: Minor 1.1 corcompare fix.
5967
5968 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
5969
5970         * LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
5971         TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
5972
5973 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5974
5975         * DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,
5976           DataGridViewImageColumn.cs, DataGridViewSelectedCellCollection.cs,
5977           DataGridViewComboBoxCell.cs, DataGridViewLinkCell.cs,
5978           DataGridViewSelectedColumnCollection.cs,
5979           DataGridViewSelectedRowCollection.cs: Corcompare work.
5980
5981 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
5982
5983         * PrintDialog.cs: Stub UseEXDialog.  I chose to stub this because
5984         it is autoset by VS2005 designer and the effect is barely noticeable.
5985
5986 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
5987
5988         * TreeView.cs: Implement HitTest.
5989
5990 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5991
5992         * DataGridViewTextBoxCell.cs: Use DGV.EditControlInternal instead of
5993           manually adding and removing the control from the Controls
5994           collecftion.
5995         * DataGridView.cs: Implement DataGridViewControlCollection. Add an
5996           EditingControlInternal property that tracks the editing control.
5997           Always keeping the scrollbars in the Controls collection, as MS
5998           testing confirms is the right behaviour.
5999
6000 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6001
6002         * ScrollableControl.cs: Fix implementation of AutoScrollPosition
6003           according to MSDN and new test.
6004
6005 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
6006
6007         * TreeNode.cs: Implement ToolTipText.
6008         * TreeView.cs: Implement tooltips, NodeMouse* events.
6009
6010 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
6011
6012         * TreeView.cs: Implement OnNodeMouseClick and OnNodeMouseDoubleClick.
6013
6014 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
6015
6016         * TreeNode.cs: Implement ContextMenu, ContextMenuStrip, and Level.
6017         * TreeView.cs: Use the node's contextmenu[strip] if applicable.
6018
6019 2007-07-20  Ivan N. Zlatev  <contact@i-nz.net>
6020
6021         * Control.cs, Form.cs, ContainerControl.cs,
6022         ScrollableControl.cs, ButtonBase.cs:  Added ShouldSerialize
6023         for misc properties.
6024
6025 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
6026
6027         * TreeNode.cs: Implement StateImageIndex and StateImageKey.
6028         * TreeView.cs: Implement StateImageList.
6029
6030 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6031
6032         * Form.cs: Don't check if the current form is the active form before
6033           activating it. Fixes #81904.
6034
6035 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6036
6037         * Form.cs: Don't check if the current form is the active form before
6038           activating it. Fixes #81904.
6039
6040 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6041
6042         * TreeView.cs: Apply patch from Tyron (tmm@aon.at). Fixes #81847.
6043
6044 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6045
6046         * Form.cs: Don't try to position the form after loading if the form was
6047           disposed. Fixes #81969.
6048
6049 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6050
6051         * PropertyGrid.cs, PropertyGridView.cs: Implemented 2.0 methods and
6052           properties. Had to change ToolBar into ToolStrip, which required a
6053           few #ifs.
6054
6055 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6056
6057         * PropertyGrid.cs: PropertyToolBar: Redraw the entire toolbar when it's
6058           resized, fixes part of #79829 (vertical lines in toolbar).
6059           PropertyGrid: Refactored Populate* to something that's easier to
6060           follow at least for me, as well as splitting it up into several new
6061           methods, required to update only subitems when something has
6062           changed by a popup editor or listbox. Don't use events to check
6063           when any values are changed, since the events are unreliable (we're
6064           changing the objects the events are registered with, and if the
6065           event handling requires the objects to be immutable (objects stored
6066           in hashtables for instance), the events will never be raised).
6067         * PropertyGridView.cs: Call PropertyGrid.PropertyValueChangedInternal
6068           everytime we change a value, since events are unreliable.
6069           DropDownButtonClicked: For the same reason don't compare objects to
6070           check if it has changed or not, it would require all objects to
6071           derive Equals. Fix dialog location on windows, MS is doing weird
6072           things when creating parented forms.
6073         * GridEntry.cs: Add a SelectedObject setter.
6074
6075 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
6076
6077         * TreeNode.cs: Add some corcompare attributes.
6078         * TreeNodeCollection.cs: Implement 2.0 stuffs.
6079         * TreeView.cs: Implement some 2.0 stuffs.
6080
6081 2007-07-18  Andreia Gaita  <avidigal@novell.com>
6082
6083         * WebBrowser.cs, WebBrowserBase.cs: add some more MonoTODOs now
6084         for moma.
6085
6086 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
6087
6088         * ListBox.cs: Implement custom tab offsets.
6089
6090 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
6091
6092         * ToolStripContentPanel.cs: Support System renderer.
6093         * ToolStripControlHost.cs: Set RightToLeft to default to No.
6094
6095 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
6096
6097         * ScrollableControl.cs: Don't mess up the user's explicit bounds.
6098
6099 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
6100
6101         * CheckBox.cs: Chain TextAlign to base implementation instead of
6102         maintaining another one.
6103
6104 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
6105
6106         * ButtonBase.cs: Fix an incorrect string constant.
6107
6108 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
6109
6110         * TextRenderer.cs: Use the static Graphics context in Hwnd instead
6111         of creating one for measuring strings.
6112
6113 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
6114
6115         * ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownMenu.cs: 
6116         Implement MaxItemSize.
6117
6118 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
6119
6120         * Control.cs: Remove per-control 1x1 Bitmap and Graphics context used
6121         for DeviceContext.  Instead, use the static one available in Hwnd.
6122         Informal tests show this saves about 500k on formtest.exe.
6123
6124 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
6125
6126         * ContainerControl.cs: Implement 2.0 AutoScaling.
6127
6128 2007-07-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6129
6130         * ComboBox.cs: Work around bug #82120 (bug in mcs).
6131
6132 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
6133
6134         * ThemeWin32Classic.cs: Allow a Flat button to be Focused and Entered.
6135         Darken the focus color.
6136
6137 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
6138
6139         * ListBox.cs: When measuring items, if it's a CheckedListBox, add room
6140         for the checkbox.
6141         * ThemeWin32Classic.cs: Make the checkbox bigger in a CheckedListBox and use
6142         X, Y instead of a rect for drawing text.
6143         - For ControlPaint.DrawCheckBox, center the check a little better when the
6144         checkbox is odd width.  When drawing a flat checkbox, use a white background
6145         when state != inactive.
6146         [Fixes bugs #82097, 82100]
6147
6148 2007-07-16  Gert Driesen  <drieseng@users.sourceforge.net>
6149
6150         * ListControl.cs: When changing CurrencyManager, disconnect event
6151         handlers from previous one. Fixes bug #81771. Code formatting.
6152
6153 2007-07-15  Andreia Gaita <avidigal@novell.com>
6154
6155         * PrintPreviewControl.cs: Remove extraneous Invalidate calls. Separate
6156         full preview invalidation from layout invalidation, and only invalidate
6157         the layout when setting zoom or other properties. Invalidation should
6158         always be done even when resetting properties with the same values as
6159         what is there. Fixes #81744 and #79830.
6160
6161 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6162
6163         * ListView.cs: Implement initial support for Groups. Split some of the
6164         LayoutIcons code to render a partial list of the items (needed by
6165         items contained in ListViewGroup instances). Let the
6166         ListViewItemsCollection.ListView property be modifiable (needed when
6167         using Groups, too).
6168         * ListViewGroup.cs: Use a Bounds property rather than a Location
6169         one. Also invalidate the bounds when they get changed.
6170         * ThemeWin32Classic.cs: When drawing items, also draw the group header
6171         if ListView.Groups.Count is bigger than 0. Add a DrawListViewGroupHeader
6172         method as well.
6173
6174 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6175
6176         * ListView.cs: When space gets pressed and CheckBoxes is true, 
6177         don't invoke the Begin and EndUpdate methods. We are generating 
6178         a redraw of the entire control without need to do so.
6179
6180 2007-07-13  William Holmes <billholmes54@gmail.com> 
6181
6182         * Control.cs: Changing logic in FindFlatForward and 
6183           FindFlatBackward to handle multiple Controls with 
6184           the same TabIndex.  
6185           This fixes bug 81687.
6186
6187 2007-07-13  Jonathan Pobst  <monkey@jpobst.com>
6188
6189         * OSFeature.cs: Enable IsPresent.
6190
6191 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6192
6193         * Control.cs: Don't do anything in WmShowWindow if the control has been
6194           disposed. We can get WM_SHOWWINDOW after a control is disposed: a
6195           control is created, put on a form, the control is disposed (the
6196           form is never shown), and then we get a MapNotify, triggering a
6197           WM_SHOWWINDOW.
6198         * Form.cs: Exclude the current form when sending Deactivate to all
6199           MdiChildren.
6200         * NativeWindow.cs: Set WindowCreating to null as soon as possible,
6201           there was a race condition because assigning the handle raises
6202           events, we can get more messages, therefore trying to assign the
6203           handle again, which would fail if any of those event handlers
6204           closed/disposed the control.
6205
6206 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6207
6208         * Form.cs: Make the fix for #80775 windows-only (fixes #81957).
6209
6210 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
6211
6212         * SystemInformation.cs, Theme.cs, XplatUI.cs, XplatUIDriver.cs,
6213         XplatUIWin32.cs: Implement SystemInformation 2.0 properties.
6214
6215 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6216
6217         * DateTimePicker.cs: If there's no part format specifier, return an
6218           empty string.
6219
6220 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
6221
6222         * FlatButtonAppearance.cs: Throw NotSupportedException for a
6223         Transparent BorderColor.
6224
6225 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6226
6227         * DataGridView.cs, TextControl.cs, ProgressBar.cs, PrintDialog.cs,
6228           MessageBox.cs, ButtonBase.cs, PageSetupDialog.cs, NumericUpDown.cs,
6229           X11Dnd.cs, Binding.cs, DataGrid.cs, AxHost.cs,
6230           LinkLabelLinkClickedEventArgs.cs, TextRenderer.cs, Label.cs,
6231           LinkLabel.cs, TreeNode.cs, BindingSource.cs, TabPage.cs,
6232           TextBoxBase.cs, BindingNavigator.cs, Application.cs,
6233           ToolStripPanel.cs, TabControl.cs, ThemeClearlooks.cs, TreeView.cs:
6234           Remove warnings.
6235         * X11Structs.cs: Remove warnings, add ToString implementations.
6236
6237 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6238
6239         * XplatUIX11.cs: Translate min/max size according to the actual min/max
6240           size, and not the current size. Fixes #81798.
6241
6242 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6243
6244         * XplatUIX11.cs: Fix #80822 again (DefWndProc can be reached before
6245           XplatUI.CreateWindow returns, in which case the hwnd isn't assigned
6246           to the control yet).
6247
6248 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6249
6250         * PropertyGridTextBox.cs: Add a method that sends any forwarded
6251           mousedowns to the contained textbox.
6252         * X11Structs.cs: More ToString implementation.
6253         * PropertyGridView.cs: Forward any mousedowns to the textbox, fixes
6254           #81791.
6255
6256 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6257
6258         * PropertyGridView.cs: Add a null-check, fixes a few tests.
6259
6260 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
6261
6262         * TableLayoutPanelCellPosition.cs: TypeConverter.
6263
6264 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6265
6266         [ Fixes #79761]
6267         
6268         * PropertyGridTextBox.cs: Propagate any color changes to all contained
6269           controls.
6270         * PropertyGridView.cs: A few color fixes.
6271
6272 2007-07-10  Jackson Harper  <jackson@ximian.com>
6273
6274         * TextControl.cs: Remove some old unused text formatting stuff.
6275
6276 2007-07-10  Jackson Harper  <jackson@ximian.com>
6277
6278         * TreeView.cs: Update full row select invalidation to match the
6279         newer DrawSelection... method.
6280         - Make sure to invalidate the entire width when selecting a new
6281         node, if we have full row selection enabled.
6282
6283 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6284
6285         * PropertyGridView.cs: Fix for #81800, makes text show up on initial
6286           display of properties again.
6287
6288 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
6289
6290         * ListBox.cs: Add IntegerCollection and Add, Clear, Remove
6291         to existing collections.
6292
6293 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6294
6295         * AccessibleObject.cs, RadioButton.cs: Fix some base classes
6296         that changed between 1.1 and 2.0.
6297
6298 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6299
6300         * PowerStatus.cs: Added.  This is just a data class, it is filled
6301         in by SystemInformation.
6302
6303 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6304
6305         * Message.cs: Add op_Equality and op_Inequality.
6306
6307 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6308
6309         * MenuStrip.cs: Finish corcompare work.
6310
6311 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6312
6313         * LinkArea.cs: Add op_Equality and op_Inequality.
6314
6315 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6316
6317         * Application.cs: Add MessageLoopCallback delegate.
6318
6319 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6320
6321         * ListBox.cs: First set of 2.0 stuffs.
6322
6323 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
6324
6325         * Control.cs: Make an internal Height property we can override
6326         without messing up the public API.
6327         * ListBox.cs: Override HeightInternal to always return the size
6328         the user set.  [Fixes bug #80466]
6329
6330 2007-07-08  Jonathan Pobst  <monkey@jpobst.com>
6331
6332         * TableLayoutPanel.cs: Add a null check so we don't NRE trying to
6333         paint cell borders if we haven't calculated where they go yet.
6334         [Fixes bugs #82040 and #82041]
6335
6336 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6337
6338         * ListView.cs: In Details view, set the location of item_control
6339         in the (0,0) position (and the header_control is thus on the
6340         item_control). This way the Bounds of the Items are relative to the
6341         ListView control (before this, they had a Bounds value without the
6342         header_control offset, which wasn't matching .Net). Fixes #82004.
6343
6344 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6345
6346         * ListControl.cs: When DataSource is set to null, pass an empty
6347         array of object to SetItemsCore. This is done to clean the items
6348         in the ListContol children. Fixes #81788.
6349
6350 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
6351
6352         * ListControl.cs: Add 2.0 stuffs.
6353
6354 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
6355
6356         * Label.cs: Finish up 2.0 stuffs.  Replace calls to Refresh with Invalidate,
6357         Refresh is overkill for just about every repaint request.
6358
6359 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
6360
6361         * ToolStripItem.cs: TextDirection getter handles looking up Inherit for us,
6362         so remove my custom Get method and fix the property getter.
6363
6364 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
6365
6366         * Label.cs: DefaultMargin for 2.0.
6367
6368 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
6369
6370         * ComboBox.cs: Override IsInputCharInternal and return true.  Fixes 
6371         reported issue where other controls with mnemonics would steal strokes
6372         from a selected ComboBox.
6373
6374 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
6375
6376         * ScrollOrientation.cs: Make internal for 1.1.
6377         * ScrollEventArgs.cs: Add 2.0 stuffs.
6378
6379 2007-07-05  Jonathan Pobst  <monkey@jpobst.com>
6380
6381         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
6382         ToolStripItem.cs, ToolStripItem.cs, ToolStripItemTextRenderEventArgs.cs,
6383         ToolStripRenderer.cs, ToolStripSeparator.cs: Implement TextDirection.
6384
6385 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6386
6387         * ListViewItem.cs: Implement the small 2.0 GetSubItemAt method.
6388
6389 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6390
6391         * ListView.cs: Implement the so-incredibly broken 2.0 
6392         VirtualItemsSelectionRangeChanged event.
6393
6394 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6395
6396         * ListView.cs: When enter is pressed and selection is non empty,
6397         an OnItemActivate event must be fired.
6398
6399 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6400
6401         * ListView.cs: Store the FocusedItem information as an
6402         int instead of a ListViewItem (needed by VirtualMode).
6403         Update the calls to SetFocusedItem to pass an index instead of
6404         an item.
6405         * ListViewItem.cs: Likewise. Also, in VirtualMode retrieve
6406         the Focused state from the owner ListView. 
6407
6408 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6409
6410         * ListView.cs: Set ListView.focused_item from ListViewItem.Focused
6411         property. Also, invalidate previous focused item in the mentioned
6412         property (match .Net).
6413
6414 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6415
6416         * ListView.cs: Implement 2.0 FocusedItem property setter.
6417
6418 2007-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6419
6420         * ListView.cs: Implement 2.0 TopItem property setter.
6421
6422 2007-07-03  Jonathan Pobst  <monkey@jpobst.com>
6423
6424         * StatusStrip.cs: The default renderer is System.
6425         * ToolStrip.cs, ToolStripManager: Now that we have System renderer, use it 
6426         if the user specifies it.
6427         * ToolStripDropDown.cs: Don't reset our Renderer on changing OwnerItem
6428         if we are ManagerRenderMode.
6429         * ToolStripMenuItem.cs: Calculate our text color better.
6430         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Move some stuff
6431         from Professional to the base class based off working with the System renderer.
6432         * ToolStripSystemRenderer.cs: Added.
6433
6434 2007-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6435
6436         * ListView.cs: I'm so lame - the real name is HitTest, not HitInfo.
6437
6438 2007-07-02  Jonathan Pobst  <monkey@jpobst.com>
6439
6440         * ToolTip.cs: Implement 2.0 Tag property.
6441
6442 2007-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6443
6444         * ListView.cs: Implement 2.0 HitTest methods.
6445
6446 2007-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6447
6448         * ListViewItem.cs: Add a 2.0 bool Hot property, to tell whether the
6449         item is under the pointer or not (sugar). Also remove the TODO
6450         regarding to the cursor changes in OneClick activation.
6451         * ThemeWin32Classic.cs: When HotTracking is true and we are drawing
6452         the subitems use the parent's HotFont if UseItemStyleForSubItems is
6453         true; otherwise don't show the underline style.
6454
6455 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6456
6457         * ListView.cs: In ItemControl.ItemsMouseMove, refactor
6458         the code to retrieve the item at position only one time. Also
6459         change cursor when Activation is ItemActivation.OneClick as well
6460         as invalidate the item if HotTracking is true (to show/hide the
6461         underline style). Add an internal HotItemIndex property to retrieve
6462         the current hot item's index.
6463         * ListViewItem.cs: Add an internal HotFont property to cache the
6464         font used when HotTracking is true and the pointer moves within the
6465         item's borders.
6466         * ThemeWin32Classic.cs: When drawing the item's text, use Font or
6467         HotFont depending on the hot state of the item.
6468
6469 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6470
6471         * ListView.cs: Implement 2.0 HotTracking property.
6472
6473 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
6474
6475         * ToolStripControlHost.cs: If our hosted control never got created,
6476         don't try to dispose it.  [Fixes bug #81909]
6477
6478 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
6479
6480         * TableLayoutPanel.cs: Implement ScaleCore, ScaleControl.
6481
6482 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
6483
6484         * TableLayoutPanel.cs: Implement CellBorderStyle.  [Fixes bug #81884]
6485
6486 2007-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6487
6488         * ThemeWin32Classic.cs: In OwnerDraw mode draw subitems only for 
6489         Details view.
6490         * DrawListViewColumnHeaderEventArgs.cs:
6491         * DrawListViewSubItemEventArgs.cs: Add padding to the bounds when drawing text
6492         using the DrawText () methods.
6493
6494 2007-06-19  Jonathan Pobst  <monkey@jpobst.com>
6495
6496         * ToolStripProfessionalRenderer.cs: Put back clearing a ToolStripDropDown's
6497         background which got erased in my changes yesterday.
6498
6499 2007-06-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6500
6501         * ListViewItem.cs: Actually set bounds for subitems in Details view
6502         (2.0 feature).
6503         * ThemeWin32Classic.cs: Refactor the drawing code for subitems, so we
6504         can invoke from the owner draw routines if we need it. Also, add
6505         support for Owner draw in Details view.
6506
6507 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
6508
6509         * ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripLabel.cs,
6510         ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs: Respect the
6511         ShowImageMargin setting, properly align text in a ToolStripLabel
6512         hosted on a ToolStripDropDown.
6513
6514 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
6515
6516         * ToolStrip.cs, ToolStripContentPanel.cs, ToolStripDropDownMenu.cs,
6517         ToolStripProfessionalRenderer.cs: Refactor and clean up some rendering code.
6518
6519 2007-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6520
6521         * DrawListViewSubItemEventArgs.cs: Actually implement its methods.
6522
6523 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
6524
6525         * ToolStripLabel.cs: If the label is on a dropdown, adjust the text
6526         location to match ToolStripMenuItems.
6527
6528 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6529
6530         * DrawListViewColumnHeaderEventArgs.cs:
6531         * ThemeWin32Classic.cs: Implement 2.0 OwnerDraw support for
6532         column headers in ListView. 
6533
6534 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
6535
6536         * UserControl.cs: Implement AutoSize.
6537
6538 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6539
6540         * DrawListViewItemEventArgs.cs:
6541         * ListView.cs:
6542         * ThemeWin32Classic.cs: Implement basic support for 2.0 OwnerDraw in
6543         ListView.
6544
6545 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
6546
6547         * ToolStripDropDownItemAccessibleObject.cs: Added.
6548         * ToolStripDropDownItem.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
6549         ToolStripOverflow.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
6550         ToolStripProgressBar.cs, ToolStripSeparator.cs, ToolStripSplitButton.cs,
6551         ToolStripTextBox.cs: corcompare work.
6552
6553 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
6554
6555         * OSFeature.cs, StatusStrip.cs, TabControl.cs, TableLayoutSettings.cs,
6556         TableLayoutStyle.cs, TableLayoutCollection.cs, ToolStripContentPanel.cs,
6557         ToolStripControlHost.cs, ToolStripDropDown.cs, ToolStripDropDownButton.cs:
6558                 corcompare.
6559
6560 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
6561
6562         * OSFeature.cs: Add IsPresent.
6563         * PrintPreviewControl.cs: Add RightToLeft.
6564         * SplitContainer.cs: Add AutoScrollOffset, ScaleControl.
6565         * SplitterPanel.cs: Add AutoSizeMode.
6566
6567 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
6568
6569         * LayoutEventArgs.cs: Add 2.0 AffectedComponent.
6570         * MdiClient.cs: Add 2.0 ScaleControl.
6571         * NativeWindow.cs: Implement 2.0 interface IWin32Window.
6572         * NumericUpDownAccelerationCollection.cs: Add [ListBinding].
6573
6574 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
6575
6576         * Form.cs: Implement some scaling methods, stub some RTL methods,
6577         corcompare work.
6578
6579 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
6580
6581         * Control.cs: corcompare work.
6582         * FlatButtonAppearance.cs, FolderBrowserDialog.cs: Add TypeConverters.
6583
6584 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
6585
6586         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Implement
6587         ControlPaint 2.0 stuffs.
6588
6589 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6590
6591         * ThreadExceptionDialog.cs: Add 2.0 stuffs.
6592
6593 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6594
6595         * UpDownBase.cs: Add 2.0 stuffs.
6596
6597 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6598
6599         * NumericUpDown.cs: Add 2.0 stuffs.
6600
6601 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6602
6603         * NotfiyIcon.cs: Add MouseDoubleClick event, hook up MouseClick event.
6604
6605 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6606
6607         * ErrorProvider.cs: Implement 2.0 stuffs.
6608
6609 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6610
6611         * DomainUpDown.cs: Implement 2.0 stuffs.
6612
6613 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6614
6615         * CheckedListBox.cs: Fix RefreshItems signature.
6616
6617 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
6618
6619         * PictureBox.cs: Implement 2.0 stuffs.
6620
6621 2007-06-12  Andreia Gaita  <avidigal@novell.com>
6622         
6623         * TabControl.cs: Check if there are tabpages before checking
6624         the selected index - fix #81802 (font changes raise a ResizeTabs
6625         call on controls.add, which blew up nicely with no tabpages)
6626
6627 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6628
6629         * ListView.cs:
6630         * ListViewItem.cs: Implement 2.0 ItemSelectionChanged event.
6631
6632 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6633
6634         * ListView.cs:
6635         * ListViewItem.cs: In VirtualMode the selection information
6636         resides in the ListView, rather than in the Items. Also, throw
6637         InvalidOperationExceptions when VirtualMode is being used and
6638         CheckedItemCollection is accessed.
6639
6640 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
6641
6642         * ComboBox.cs: Add ScaleControl.
6643
6644 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
6645
6646         * ButtonBase.cs: ButtonBaseAccessibleObject.State should not be visible to 1.1.
6647
6648 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
6649
6650         * GroupBox.cs: Add 2.0 stuffs.
6651
6652 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
6653
6654         * Panel.cs: Add autosize properties/event.
6655
6656 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
6657
6658         * Control.cs:
6659         - When we remove a control, remove it from the collection before performing the layout.
6660         - Setup an internal property for explicit_bounds.
6661         - Don't let the UpdateBounds in CreateHandle overwrite our explicit bounds.
6662         - Perform a layout when we set a new AutoSizeMode.
6663
6664 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
6665
6666         * ScrollableControl.cs: Add 2.0 stuffs.
6667
6668 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
6669
6670         * ScrollBar.cs: Add 2.0 stuffs.
6671
6672 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
6673
6674         * Splitter.cs: Add 2.0 stuffs.
6675
6676 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
6677
6678         * SplitContainer.cs: Apply patch from Neil Cawse <neilcawse@geotab.com>
6679         to have BindingContext simply use base implementation.
6680
6681 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
6682
6683         * ColumnHeader.cs: corcompare fix.
6684
6685 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
6686
6687         * Button.cs: corcompare fixes.
6688         * ButtonBase.cs: corcompare fixes, add ButtonBaseAccessibleObject.State.
6689
6690 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
6691
6692         * Button.cs: Override GetPreferredSizeCore.
6693         * ButtonBase.cs: PerformLayout after changing properties that can affect
6694         AutoSize.  Simplify some mouse/keyboard code.
6695         * Control.cs: PerformLayout after changing Padding if AutoSize = true.
6696         * MouseEventArgs.cs: Make Location internal for 1.1.
6697         * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool) internal for 1.1.
6698         * Theme.cs: Add CalculateButtonAutoSize.
6699         * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
6700
6701 2007-06-05  Miguel de Icaza  <miguel@novell.com>
6702
6703         * TreeNodeCollection.cs: Applied patch from Neil Cawse <neilcawse@geotab.com>
6704
6705 2007-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6706
6707         * ListViewItem.cs: We can't cache Bounds in VirtualMode 
6708         since we can get different item instances every time we retrieve it.
6709
6710 2007-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6711
6712         * ListView.cs: Work around for #81602, since an unkown an pretty
6713         infrequent condition appears only in some systems (old linux boxes, it
6714         seems).
6715
6716 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
6717
6718         * Button.cs: Completely reformat and a little refactor to bring
6719         this closer to Mono circa 2007.
6720
6721 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
6722
6723         * CheckBox.cs, Form.cs, RadioButton.cs: Change call to ButtonBase.Redraw
6724         to be ButtonBase.Invalidate.
6725
6726 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
6727
6728         * ButtonBase.cs: GetPreferredSize is 2.0 only.  Fixes build.
6729
6730 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
6731
6732         * ButtonBase.cs: Completely reformat and a little refactor to bring
6733         this closer to Mono circa 2007.
6734
6735 2007-06-01  Everaldo Canuto  <ecanuto@novell.com>
6736
6737         * Label.cs: Fixes preferred sizes for 2.0 profile, also adjust some
6738         values for autosize. Fixes #80137.
6739
6740 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
6741
6742         * Control.cs: Don't perform layout when AutoSize changes.
6743         * Form.cs: Perform layout in AutoSize override.  Don't set ClientSize
6744         directly when autosizing, use SetBounds with BoundsSpecified.None.
6745         Fixes unit tests my last commit broke.
6746
6747 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
6748
6749         * Control.cs: Perform layout when AutoSize changes.
6750         * Form.cs: Implement AutoSizing.
6751
6752 2007-06-01  Chris Toshok  <toshok@ximian.com>
6753
6754         * DataGrid.cs: remove the XXX'ed check at the top of
6755         ProcessGridKey.  fixes #80464.
6756
6757 2007-06-01  Chris Toshok  <toshok@ximian.com>
6758
6759         * DataGridTextBoxColumn.cs: TextBox.TextChanged event handler
6760         adding idempotent (add/remove in Edit()), and also make sure we
6761         don't add it until after we set the text, so it's not tripped in
6762         Edit().  Fixes unit test regression.
6763
6764 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
6765
6766         * Control.cs: In UpdateBounds, only recalculate anchor distances if the
6767         change is user explicit, not when the layout engine moves stuff.  Fixes
6768         anchoring to bottom and right.  [Fixes bug #81790]
6769
6770 2007-06-01  Andreia Gaita  <avidigal@novell.com>
6771
6772         * PrintDialog.cs: Add collation preview thumbnails. Fixes #80726.
6773
6774 2007-06-01  Andreia Gaita  <avidigal@novell.com>
6775
6776         * ContainerControl.cs: 
6777         Fire enter event for common ancestor if it is not a ContainerControl.
6778         Send focus to the active_control and not the 'value', the active 
6779         control might have been changed in one of the events fired.     
6780         Definitely fixes #80159.
6781
6782 2007-06-01  Andreia Gaita  <avidigal@novell.com>
6783
6784         * DataGrid.cs: Finish editing when focus leave the datagrid. Fixes #80159.
6785
6786 2007-06-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6787
6788         * PropertyGrid.cs: Anchor the help description to the bottom of the
6789           help panel and refactor SelectGridItem into a
6790           SelectGridItemInternal that can be set to null (and update it to
6791           clear the help texts when it is set to null). Set root item to null
6792           when there's no SelectedObject. Fixes #80438.
6793         * ScrollableControl.cs: In Recalculate we need to ResumeLayout(true)
6794           when we're recalculating after a resize (only).
6795
6796 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6797
6798         * ListView.cs: Implement 2.0 RedrawItems method.
6799
6800 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6801
6802         * ListControl.cs: Disconnect PositionChanged and ItemChanged
6803         handlers from previous data manager when DataSource is set to
6804         null. Fixes #81771.
6805
6806 2007-05-31  Jackson Harper  <jackson@ximian.com>
6807
6808         * TextBoxBase.cs: These seem to be the correct values.
6809
6810 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
6811
6812         * FileDialog.cs: When close dialog with ok set filterindex using combobox
6813         value. Fixes #81784.
6814
6815 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
6816
6817         * Control.cs: Implement 2.0 scaling methods.
6818
6819 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6820
6821         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
6822           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
6823           corcompare issues.
6824
6825 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6826
6827         * ProgressBar.cs: Implemented missing 2.0 members.
6828
6829 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6830
6831         * Control.cs: Corcompare issues.
6832         * MessageBox.cs: Implemented missing 2.0 functions.
6833
6834 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6835
6836         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
6837           Implemented more 2.0 members.
6838
6839 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6840
6841         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
6842           null (strange, but it seems to happen when running unit tests).
6843
6844 2007-05-30  Andreia Gaita  <avidigal@novell.com>
6845
6846         * ContainerControl.cs: Set active_control even earlier, before 
6847         firing any events, and undo it if validation returns false.
6848
6849 2007-05-30  Andreia Gaita  <avidigal@novell.com>
6850
6851         * ContainerControl.cs: Raise Validation and Enter/Leave events
6852         even if there is no Form and set active_control earlier, just
6853         before firing Enter events (toshok's patches). Fixes #80647.
6854
6855 2007-05-30  Jackson Harper  <jackson@ximian.com>
6856
6857         * TextControl.cs: Redid the pageup/pagedown a little to simplify
6858         things and fix bug #81311.
6859
6860 2007-05-30  Jackson Harper  <jackson@ximian.com>
6861
6862         * X11Dnd.cs: Now that we have our own event loop, we need to
6863         cancel when we get a mouseup but it won't be accepted.
6864
6865 2007-05-30  Chris Toshok  <toshok@ximian.com>
6866
6867         * DataGrid.cs (set_CurrentCell): guard against negative
6868         column/row.
6869
6870         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
6871         array index syntax instead of looping over the property names.
6872
6873         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
6874         and set IsInEditOrNavigateMode to false there.
6875
6876 2007-05-30  Jackson Harper  <jackson@ximian.com>
6877
6878         * TreeView.cs: Make sure we don't get a bad visible order when
6879         setting to the top node.  Fixes some misc crashing in
6880         ControlInspector.
6881
6882 2007-05-30  Andreia Gaita  <avidigal@novell.com>
6883
6884         * UserControl.cs: Add 2.0 AutoSizeMode
6885
6886 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
6887
6888         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
6889
6890 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
6891
6892         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
6893         lines. Fixes #80285. 
6894
6895 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
6896
6897         * DataGridColumnStyle.cs: Add char trimming column header text format. 
6898
6899 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
6900
6901         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
6902         Fixes #80147.
6903
6904 2007-05-29  Jackson Harper  <jackson@ximian.com>
6905
6906         * TreeNode.cs: Fix off by one on calculating whether or not a node
6907         is visible.
6908
6909 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
6910
6911         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
6912         * ScrollableControl.cs: Force an UpdateDistances when we move the
6913         scrollbars.
6914         [Fixes bug #80605]
6915
6916 2007-05-29  Andreia Gaita  <avidigal@novell.com>
6917
6918         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
6919         update the page setup screen.
6920
6921 2007-05-29  Andreia Gaita  <avidigal@novell.com>
6922
6923         * PageSetupDialog.cs: Fix landscape mode.
6924
6925 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6926
6927         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
6928         IconSizeHorizontalSpacing.
6929
6930 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6931
6932         * ListView.cs: The declaration of prev_tooltip_item should be inside
6933         a NET_2_0 conditional (avoid a warning).
6934
6935 2007-05-28  Andreia Gaita  <avidigal@novell.com>
6936
6937         * PageSetupDialog.cs: Implement PrintPreview control to display
6938         the preview thumbnail. Change unit conversion to use 
6939         PrinterUnitConvert methods.
6940         
6941         Note: there is a huge bug in ms.net where the default margins are 
6942         interpreted as centimeters (?), when in fact they are set in inches. When 
6943         loading the page setup dialog initially (ms.net), the default margins 
6944         are set to 1 inch, and the dialog shows them with value 10, when in fact 
6945         it should be 25 (properly converted). Our dialog doesn't have this bug.
6946         
6947         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
6948         RectangleF.
6949         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
6950
6951 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6952
6953         * ListView.cs:
6954         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
6955         items.
6956
6957 2007-05-28  Andreia Gaita  <avidigal@novell.com>
6958
6959         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
6960         an IntPtr on csc (it builds fine on mcs, could it be a compiler
6961         bug?), convert the ptr to Int32 first.
6962
6963 2007-05-28  Jackson Harper  <jackson@ximian.com>
6964
6965         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
6966         recieved, we will exit the dnd tracking loop.
6967
6968 2007-05-28  Jackson Harper  <jackson@ximian.com>
6969
6970         * X11Dnd.cs: Keep tracking until the xdnd finished event is
6971         recieved. TODO: I should probably stick a timer on the dropped
6972         event, and finish the drag if the XDND Finished event never shows
6973         (because some apps don't seem to send it).
6974
6975 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
6976
6977         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
6978         #81733.
6979
6980 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6981
6982         * MonthCalendar.cs: Only mark the keypresses we actually handle as
6983           handled.
6984
6985 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6986
6987         * MonthCalendar.cs: Set the size after initializing all the relevant
6988           variables. Fixes #81742.
6989
6990 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6991
6992         * KeyEventArgs.cs: Fix typo.
6993
6994 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
6995
6996         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
6997         to match MS. Fixed MinDate to only accept value less than or equal
6998         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
6999         Removed TODO's that are now verified by unit tests.
7000
7001 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
7002
7003         * TreeNodeCollection.cs: Minor corrections to exceptions to match
7004         MS.
7005
7006 2007-05-25  Jackson Harper  <jackson@ximian.com>
7007
7008         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
7009         it's own message loop.
7010         * XplatUIX11.cs: Remove some of the dnd hooks
7011
7012 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
7013
7014         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
7015         instead of MinimizedWindowSize.
7016
7017 2007-05-25  Jackson Harper  <jackson@ximian.com>
7018
7019         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
7020
7021 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7022
7023         * KeyEventArgs.cs: Added SuppressKeyPress.
7024         * Control.cs: Added support for SuppressKeyPress.
7025
7026 2007-05-24  Andreia Gaita  <avidigal@novell.com>
7027
7028         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
7029         problems with PieChart. suppress_validation should not be a counter,
7030         if there are several BeginInit calls, the first EndInit will 
7031         activate validation. Fix exceptions thrown by set_Value.
7032         * UpDownBase.cs: ValidateText only if it's the user editing it.
7033
7034 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7035
7036         * ListControl.cs: FilterItemOnProperty should return the filtered
7037         item proeprty even if DataSource is null. The same applies for
7038         GetItemText. Fixes #80427.
7039
7040 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
7041
7042         * Control.cs: If a control doesn't have a parent when it's Dock is
7043         set, but it has children, it needs to do a layout.  Fixes some nested
7044         controls issues.  [Fixes bug #81199]
7045
7046 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7047
7048         * ComboBox.cs: If there are few items in the drop down list, make it
7049           the exact size the items need, no bigger. Fixes #81612.
7050
7051 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
7052
7053         * Application.cs: When we have captured the keyboard for a menu,
7054         check for mouse down events in case we need to close the menu.
7055         * Control.cs, Form.cs: Remove mouse down checks for menus.
7056
7057 2007-05-24  Jackson Harper  <jackson@ximian.com>
7058
7059         * TextControl.cs: Handle tabs in non multiline mode a little
7060         differently.
7061
7062 2007-05-24  Jackson Harper  <jackson@ximian.com>
7063
7064         * TextControl.cs: We need to manually break apart tabbed text and
7065         move the tabs, since the system.drawing tabbing mechanism relies
7066         on tab stops.
7067         * TextBoxBase.cs: Move the caret properly when the user enters a
7068         tab.
7069
7070 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
7071
7072         * ContainerControl.cs: Don't check CanSelect before calling
7073         ProcessMnemonic.
7074         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
7075         release a KeyboardActive on click if it's not ours.
7076
7077 2007-05-23  Andreia Gaita  <avidigal@novell.com>
7078
7079         * ColumnHeader.cs: Add TypeConverter
7080
7081 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
7082
7083         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
7084
7085 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
7086
7087         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
7088
7089 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
7090
7091         * LinkLabel.cs: Implement public Padding property.
7092
7093 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
7094
7095         * LinkLabel.cs: Implement public FlatStyle.
7096
7097 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
7098
7099         * Control.cs: Apply patch from George to call parent.PerformLayout
7100         when Visible is changed.  [Fixes bugs #81118, 81718]
7101
7102 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
7103
7104         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
7105
7106 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
7107
7108         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
7109
7110 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
7111
7112         * ContextMenu.cs: Implement Collapse.
7113
7114 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
7115
7116         * ToolBarButton.cs: Implement Name.
7117
7118 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
7119
7120         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
7121         use current_item, it prevents some NRE. Fixes #81675.  
7122
7123 2007-05-22  Andreia Gaita  <avidigal@novell.com>
7124
7125         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
7126         without updating the text.
7127
7128 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
7129
7130         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
7131         without calling DeleteObject.  [Should fix bug #81709]
7132
7133 2007-05-22  Jackson Harper  <jackson@ximian.com>
7134
7135         * RichTextBox.cs: Set the line endings correctly, when flushing
7136         RTF text.
7137
7138 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
7139
7140         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
7141          {Width=0,Height=0}.
7142
7143 2007-05-22  Jackson Harper  <jackson@ximian.com>
7144
7145         * TreeView.cs: Setting top with a null node should set to the very
7146         top.
7147
7148 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7149
7150         * Form.cs: ShowDialog: destroy the handle when message loop is
7151           finished, matches MS behaviour. Refactor parts of WmClose into
7152           RaiseCloseEvents, that only raises events if they haven't already
7153           been raised. Fixes #81688 and #81521.
7154         * Application.cs: Don't call close on the form when exiting a modal
7155           loop, it will raise all the (Form)Closed/Closing events again if
7156           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
7157           which doesn'r raise any events it they have been raised before.
7158
7159 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
7160
7161         * Control.cs: Add OnPrint.
7162         * ToolStrip.cs: Add GetChildAtPoint.
7163         * ToolStripContainer.cs: Add OnRightToLeftChanged.
7164         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
7165
7166 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
7167
7168         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
7169
7170 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7171
7172         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
7173           isn't visible anymore. Fixes #81651.
7174
7175 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7176
7177         * Control.cs: WmShowWindow: Update children's z-order after setting
7178           their parent. SetParent may show the window, thereby corrupting
7179           z-order, since the window will be shown on top.
7180         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
7181           multiple (and redundant) WM_SHOWWINDOW messages.
7182         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
7183           event has already been raised.
7184         * Form.cs: Change is_changing_visible_state to a counter, since
7185           SetVisibleCore can be called recursively. CreateHandle: when
7186           creating mdi children, send (De)Activated events.
7187         * MdiClient.cs: Update use of is_changing_visible_state.
7188         * Application.cs: OnThreadException: Surround exception handling with
7189           try/finally to ensure we always reset the error-handling state
7190           before leaving.
7191
7192 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7193
7194         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
7195           (#81704).
7196
7197 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7198
7199         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
7200         SmallIcon views, now that we have a standarized horizontal spacing.
7201
7202         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
7203         4, just like the other views (Match .Net).
7204
7205 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
7206
7207         * Control.cs: Delay calculating anchor distances until we actually layout.
7208         Always query the WM for the actual size and location it put us at instead of
7209         only when we send negative values.
7210         [Fixes bugs #81694, 81695]
7211
7212 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7213
7214         * Application.cs: Avoid a possible stack overflow when trying to exit
7215           the application.
7216
7217 2007-05-19  Marek Safar  <marek.safar@gmail.com>
7218
7219         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
7220         enum value.
7221
7222 2007-05-19  Andreia Gaita  <avidigal@novell.com>
7223
7224         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
7225         * NumericUpDownAcceleration.cs, 
7226           NumericUpDownAccelerationCollection.cs: Added 2.0
7227           implementation.
7228
7229 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
7230
7231         * RichTextBox.cs: Recalculate the document after the ScrollBars
7232         property is changed. Fixes bug #81681.
7233
7234 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
7235
7236         * DataObject.cs: Implement 2.0 methods.
7237
7238 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7239
7240         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
7241         in the center of the checkbox, not in the left-top corner. 
7242         Fixes #80037.
7243
7244 2007-05-18  Jackson Harper  <jackson@ximian.com>
7245
7246         * RichTextBox.cs: Recalculate the document after the scrollbars
7247         property is changed.
7248         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
7249         81486.
7250
7251 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7252
7253         * CreateParams.cs: Make HasWindowManager marginally faster.
7254         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
7255           into Hwnd so that other drivers can use it as well.
7256         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
7257           the default location from Hwnd. Fixes MDI client windows always
7258           showing up at (0,0) in Windows (Win32 won't set the default
7259           location since the window styles aren't correct).
7260
7261 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
7262
7263         * TreeView.cs: Modified DoubleBuffered to just use the base
7264         implementation.
7265
7266 2007-05-18  Jackson Harper  <jackson@ximian.com>
7267
7268         * TreeView.cs: Set the top node to the last child node when
7269         expanding all
7270         - When we get focus, if there is no selected node, use the top
7271         node.
7272
7273 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
7274
7275         * KeysConverter.cs: Add CanConvertTo.
7276         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
7277         * LinkConverter.cs: Added.
7278
7279 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
7280
7281         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
7282         it prevents error when file dont have write access. Fixes #81669 and #81667.  
7283
7284 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
7285
7286         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
7287         button text. Fixes #79640.  
7288
7289 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
7290
7291         * Control.cs: According to MSDN controls created in the designer theres 
7292         keyboard accelerators visible by default. So included check for design
7293         in ShowKeyboardCuesInternal.  
7294
7295 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
7296
7297         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
7298         text. Fixes #81621.  
7299
7300 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
7301
7302         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
7303         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
7304
7305 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
7306
7307         * Control.cs: Finish implementation of UI State using WmChangeUIState
7308         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
7309         in some controls to check for show_keyboard_cues to draw accell keys "_".  
7310
7311 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7312
7313         * ListBox.cs: When calculating the horizontal scrollbar
7314         in single column mode, don't use values less than 0 for
7315         Maximum. Fixes #81474.
7316
7317 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7318
7319         * ListBox.cs: Throw the some missing exceptions in
7320         ListBox.ObjectCollection methods.
7321
7322 2007-05-17  Jackson Harper  <jackson@ximian.com>
7323
7324         * TextBoxBase.cs: Recalculate the document when the word wrap
7325         value has changed. This fixes 81488.
7326
7327 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
7328
7329         * Clipboard.cs: Implement missing GetText overload.
7330
7331 2007-05-17  Chris Toshok  <toshok@ximian.com>
7332
7333         * Control.cs (CheckDataBindings): remove the binding_context arg
7334         to binding.Check.
7335
7336         * CurrencyManager.cs (OnItemChanged): fix this now that
7337         BindingManagerBase is fixed. also remove the comment telling where
7338         the fix should go.  We set transfering_data to true/false around
7339         the call to PushData to keep UpdateIsBinding from being called.
7340         (ListChangedHandler): remove the extra OnMetaDataChanged call for
7341         PropertyDescriptorAdded in the 1.1 case.  The extra call is
7342         actually generated by System.Data generating 2 metadata changed
7343         events of its own per column add.  The fix should go there.  Add a
7344         comment to that affect in our test's Assert.Ignore.
7345
7346         * BindingManagerBase.cs: Rework PullData and PushData slightly.
7347         we keep a boolean flag (transfering_data) that keeps us from
7348         calling UpdateIsBinding multiple times if we re-enter either of
7349         them.
7350
7351         * ControlBindingsCollection.cs (AddCore): remove the
7352         binding_context arg to binding.Check.
7353
7354         * Binding.cs (IsBinding): don't check if we're binding here, just
7355         return our cached value.  we update it in UpdateIsBinding.
7356         (Check): don't take the binding_context arg, we'll just use our
7357         control's.  Also, for some reason MS doesn't use the data member
7358         field when getting the bindingmanager for this binding.  it just
7359         uses the datasource.  Make this method callable multiple times,
7360         and only do the is_null_desc stuff if manager.Position != -1 (so
7361         we don't get an exception accessing manager.Current).
7362         (UpdateIsBinding): move the code from IsBinding here.
7363         (PositionChangedHandler): call Check here to we can initialize
7364         things that require a non- -1 position.
7365
7366 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
7367
7368         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
7369         control.
7370
7371 2007-05-17  Andreia Gaita  <avidigal@novell.com>
7372
7373         * TabControl.cs: Add 2.0 methods and events, including
7374         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
7375         * TabPage.cs: Add 2.0 methods
7376
7377 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
7378
7379         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
7380         keyboard_cues is properly handled by message method.  
7381
7382 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
7383
7384         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
7385
7386 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
7387
7388         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
7389
7390 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
7391
7392         * Control.cs: 
7393         - WmUpdateUIState added to handle state changes, it make call to
7394         OnChangeUICues event.
7395         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
7396         SystemInformation.
7397
7398 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
7399
7400         * ImageKeyConverter.cs: Added.
7401         * TreeViewImageKeyConverter.cs: Added.
7402
7403 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7404         
7405         * ToolTips.cs: Update Text if SetToolTip is called for a control
7406         already showing the tooltip, as well as restarting its timer; show
7407         tooltip if we are inside the control bounds by the time of calling
7408         SetToolTip. Inside ShowTooltip remove the check to not show the 
7409         tooltip again for the active control (it is allowed by .Net to 
7410         show the tooltip on the same control multiple times).
7411
7412 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7413
7414         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
7415
7416 2007-05-16  Andreia Gaita <avidigal@novell.com> 
7417
7418         * ContainerControl.cs: only process tab key if there are no 
7419         modifier keys present, otherwise the control does the 
7420         tab processing, if it needs to. Fixes #81622
7421         * TabControl.cs: Fixes calculation for which tab to select on
7422         shift+ctrl+tab.
7423
7424 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7425
7426         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
7427
7428 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
7429
7430         * Control.cs: Make IsInputCharInternal to allow controls to
7431         override it and still match MS API.
7432         * TextBoxBase.cs: Override IsInputCharInternal and always
7433         return true.
7434         [Fixes bug #81616]
7435
7436 2007-05-15  Jackson Harper  <jackson@ximian.com>
7437
7438         * TextBox.cs: Disable some of the menu options when using a
7439         readonly textbox.
7440
7441 2007-05-15  Jackson Harper  <jackson@ximian.com>
7442
7443         * TextBox.cs:
7444         * TextBoxBase.cs:
7445         * RichTextBox.cs: Some new 2.0 methods
7446
7447 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
7448
7449         * FileDialog.cs: On 1.0 profile, do not support multidotted 
7450         extensions.
7451
7452 2007-05-14  Jackson Harper  <jackson@ximian.com>
7453
7454         * TextBoxBase.cs: Implement some of the new 2.0 methods.
7455         * RichTextBox.cs: We need to override these methods on 2.0.
7456         * MaskedTextBox.cs: These are implemented now
7457         * TextControl.cs: This was off by one.
7458
7459 2007-05-14  Jackson Harper  <jackson@ximian.com>
7460
7461         * TextControl.cs: Because the line endings are including in the
7462         text, we don't need to add them in anymore.
7463
7464 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
7465
7466         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
7467         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
7468
7469 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
7470
7471         * ToolBar.cs: Adjust size to default size when button theres no text and
7472         image, it fixes remaining issues from #81524.
7473
7474 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
7475
7476         * ToolBar.cs: 
7477         - When not flat call redraw to recalculate sizes on creare handle to match
7478         win32 behavior.
7479         - Revert 77220 because it causes some regressions in toobar
7480         button.
7481
7482 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7483
7484         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
7485           now actually enters a usable state.
7486
7487 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
7488
7489         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
7490         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
7491         3 buttons.
7492
7493 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
7494
7495         * ToolBar.cs: Save default_size on create handle to use later for buttons
7496         without text, needed to mimic win32 behavior.
7497
7498 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
7499
7500         * ToolBar.cs: Fix button layour to best fit width or height according to
7501         vertical or not. Fixes #81524.
7502
7503 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
7504
7505         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
7506         toolbar size info because different styles theres different sizes.
7507         Fixes #81522.
7508
7509 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7510
7511         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
7512         if we are using checkboxes, checked is true, and we have less
7513         than two images in StateImageList; for the 1.1 in the same scenario
7514         draw the first image if we have at least one image in StateImageList.
7515         Fixes part of #81191.
7516
7517 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
7518
7519         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
7520         the owner's Items collection on merge.
7521
7522 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
7523
7524         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
7525         * ToolStripItemCollection.cs: Lots of fixes to when events get called
7526         and parent/owner gets changed based on gert's unit tests.
7527
7528 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7529
7530         * MaskedTextBox.cs: Started implementing parts of it.
7531
7532 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7533
7534         * ListView.cs: When clicking the checkbox on the items
7535         take into account the double clicks even if we have only
7536         one image in StateImageList (only for 1.0/1.1). Also 
7537         generate an extra change of checked state when we receive
7538         the second click on checkbox (match .Net behaviour). 
7539         Fixes part of #81191.
7540
7541 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
7542
7543         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
7544
7545 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
7546
7547         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
7548         even if OnLoad is overriden and base.OnLoad is not called.
7549         [Fixes bug #81582]
7550
7551 2007-05-10  Andreia Gaita  <avidigal@novell.com>
7552
7553         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
7554         shame. (I blame my ever-persisting and annoying cold)
7555
7556 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
7557
7558         * ListView.cs: Don't eat navigation keys.  Let them flow through to
7559         KeyDown/KeyPress routines.  [Fixes bug #81569]
7560
7561 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
7562
7563         * ListView.cs: When handling keys for selecting the item based off
7564         keyboard input, do not consider keys pressed with Alt or Control.  Also,
7565         correctly handle keys when the Shift key is down. [Fixes bug #81578]
7566
7567 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
7568
7569         * Control.cs: When using UseWaitCursor, we have to store the requested
7570         Cursor to use when UseWaitCursor is turned off.
7571
7572 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
7573
7574         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
7575         to false.
7576         * Application.cs: Use PreProcessControlMessage instead of
7577         PreProcessMessage.
7578         * PreProcessControlMessage.cs: Make internal for 1.1.
7579
7580 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7581
7582         * Control.cs: Add InternalContains focus property, which hast the same
7583         functionality of ContainsFocus, but also including implicit controls.
7584         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
7585         since we need to know if the focus is contained in our implicit
7586         ItemControl when calculating Layout. Fixes part of #80888.
7587
7588 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
7589
7590         * ToolTip.cs: Remove center form string alignment as it must be align to
7591         left.
7592
7593 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
7594
7595         * ToolStripItemCollection.cs: Set the new item's parent and owner
7596         in Insert like we do in Add.  [Fixes bug #81568]
7597
7598 2007-05-08  Jackson Harper  <jackson@ximian.com>
7599
7600         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
7601         - Off by one error in SetTop
7602         - Disable DoubeBuffering
7603         
7604 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7605
7606         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
7607           control as much as necessary in order to make it entirely visible,
7608           instead of centering the control in the container (matches MS
7609           behaviour). CalculateCanvasSize: we need to take the current scroll
7610           position into account when calculating the maximum canvas,
7611           otherwise the following scenario will fail: resize so that the
7612           scrollbars appear, use the scrollbars to scroll, resize again
7613           smaller, and now the canvas size is too small. Recalculate: when
7614           showing scrollbars make sure they start off at 0, and try to scroll
7615           the active control into view. Fixes #79540. HandleScrollBar: don't
7616           scroll anywhere if the scrollbar isn't visible.
7617
7618 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7619
7620         * ListView.cs: When focus changed, call Layout/Invalidate
7621         in the focused item to update the selected state (should show
7622         entire label when ListView is focused, and a part of it if is not).
7623         * ListViewItem.cs: When doing layout for LargeIcon, take into account
7624         for displaying the entire label not only the Focused state of the
7625         item, but also the Focused state of the ListView (match .Net
7626         behaviour).
7627
7628 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
7629
7630         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
7631         Implement UseWaitCursor. 
7632
7633 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
7634         Applying contributed patch from Sergey Volk.
7635
7636         * Clipboard.cs: Implement SetDataObject retry logic and new overload
7637         of SetDataObject.
7638         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
7639
7640 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
7641
7642         * Control.cs: Implement DrawToBitmap.
7643
7644 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
7645         Applying contributed patch from Stefan Noack.
7646         
7647         * Control.cs: Add [Get|Set]AutoSizeMode.
7648
7649 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
7650
7651         * MdiClient.cs: Unmerge menus when the last child is closed.
7652
7653 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
7654
7655         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
7656         * ToolStripManager.cs: Call Merge on DropDowns.
7657         [Fixes bug #81477]
7658
7659 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7660
7661         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
7662           uints.
7663         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
7664           visibility. We can't create forms visible, since we have to set the
7665           owner before making the form visible (otherwise Win32 will do
7666           strange things with task bar icons). The problem is that we set the
7667           internal is_visible to true before creating the control, so
7668           is_changing_visible_state is the only way of determining if we're
7669           in the process of creating the form due to setting Visible=true -
7670           this works because SetVisibleCore explicitly makes the form
7671           visibile afterwards anyways. Fixes #80775.
7672
7673 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7674
7675         * ThemeWin32Classic.cs: When drawing ListViewItems,
7676         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
7677         or LargeIcon _and_ item is not focused (match .Net behaviour).
7678
7679 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
7680
7681         * Control.cs, Form.cs: Fix some obsolete method warnings.
7682
7683 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
7684
7685         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
7686         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
7687
7688 2007-05-04  Andreia Gaita  <avidigal@novell.com>
7689
7690         * ContainerControl.cs: Fix active_control attribution when going
7691         up the parent chain so that the first parent container gets the control
7692         and the rest of the parent containers get the child containers (skips
7693         non-containers). Fixes #80729
7694
7695 2007-05-04  Randolph Chung  <tausq@debian.org>
7696
7697         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
7698         [Fixes bug #81499]
7699
7700 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7701
7702         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
7703           takes a size parameter, since the CreateParam's size isn't true for
7704           minimized forms. Fixes #81518,
7705
7706 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7707
7708         * Form.cs: Add OnDeactivateInternal.
7709         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
7710
7711 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7712
7713         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
7714           accessing the parent. Fixes #81508.
7715
7716 2007-05-03  Chris Toshok  <toshok@ximian.com>
7717
7718         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
7719         2.0 block, pass listposition + 1 to ChangeRecordState when a row
7720         was added before the current listposition.  Fixes the
7721         TestInsertRowBeforeCurrent unit test.
7722
7723 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
7724
7725         * Application.cs: Add RaiseIdle.
7726         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7727         XplatUIX11.cs: Implement RaiseIdle.
7728
7729 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
7730         corcompare work: N - Z
7731         * NotifyIcon.cs
7732         * ProgressBar.cs
7733         * RadionButton.cs
7734         * ScrollableControl.cs
7735         * SplitContainer.cs
7736         * SplitterPanel.cs
7737         * StatusBar.cs
7738         * SystemInformation.cs
7739         * TabControl.cs
7740         * TableLayoutControlCollection.cs
7741         * TableLayoutPanel.cs
7742         * TabPage.cs
7743         * ToolBar.cs
7744         * ToolBarButton.cs
7745         * ToolStrip.cs
7746         * ToolStripComboBox.cs
7747         * ToolStripContainer.cs
7748         * ToolStripContentPanel.cs
7749         * ToolStripDropDown.cs
7750         * ToolStripDropDownItem.cs
7751         * ToolStripDropDownMenu.cs
7752         * ToolStripItem.cs
7753         * ToolStripItemCollection.cs
7754         * ToolStripMenuItem.cs
7755         * ToolStripPanel.cs
7756         * ToolStripSplitButton.cs
7757         * ToolTip.cs
7758         * TreeNode.cs
7759         * TreeNodeCollection.cs
7760         * TreeNodeMouseHoverEventArgs.cs
7761         * TreeView.cs
7762
7763 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
7764
7765         * ContextMenu.cs: Add public method Show with alignment property to 2.0
7766         stuff. Thanks aatdark for the patch. 
7767
7768 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
7769
7770         * GridItem.cs: Implement 2.0 Tag property.
7771
7772 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
7773
7774         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
7775         count instead of Nodes.Length.  [Fixes bug #81448]
7776
7777 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
7778
7779         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
7780         [Fixes bug #81506]
7781
7782 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
7783         corcompare work: A - M
7784         * BindingNavigator.cs
7785         * Button.cs
7786         * ButtonBase.cs
7787         * CheckBox.cs
7788         * Control.cs
7789         * FlowLayoutPanel.cs
7790         * Form.cs
7791         * Label.cs
7792         * LinkLabel.cs
7793         * ListView.cs
7794
7795 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
7796
7797         * Application.cs: Give toolstrips a chance to process mnemonics.
7798         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
7799         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
7800         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
7801
7802 2007-05-01  Jackson Harper  <jackson@ximian.com>
7803
7804         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
7805         wider area too.
7806         - Don't set the BoundsSpecified
7807
7808 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
7809
7810         * Application.cs: When using the toolstrip shortcut mechanism, allow the
7811         message to pass through to a regular control if it hosted by a toolstrip.
7812         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
7813         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
7814
7815 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
7816
7817         * TextRenderer.cs: Use the flags argument when using the MeasureString
7818         fallback algorithm.
7819
7820 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
7821
7822         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
7823         the MDI menu item.  [Fixes bug #81483]
7824
7825 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
7826
7827         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
7828         string. When setting Name to null, use zero-length string instead.
7829
7830 2007-04-29  Andreia Gaita  <avidigal@novell.com>
7831
7832         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
7833         DeselectTab). Implement missing 2.0 TabPageCollection methods
7834         (Add, ContainsKey, RemoveByKey, IndexOfKey)
7835
7836 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
7837
7838         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
7839
7840 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
7841
7842         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
7843         Fixes bug #81479. Include details of exception when LoadFile fails.
7844
7845 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
7846
7847         * DrawListViewSubItemEventArgs.cs: Added missing setter
7848
7849 2007-04-27  Andreia Gaita  <avidigal@novell.com>
7850
7851         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
7852         Hide methods (not complete). Implement missing 2.0 OnPopup event.
7853
7854 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7855
7856         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
7857         removed in ly last commit (it was breaking the Label edit feature).
7858
7859         * ThemeWin32Classic.cs: When drawing a ListViewItem use
7860         StringAlignment.Near for LineAlignment (match .Net).
7861
7862 2007-04-27  Andreia Gaita  <avidigal@novell.com>
7863
7864         * TabControl.cs: Change SetTab so it adds the tabpage to the list
7865         of controls if it isn't already there - was blowing up when doing
7866         tabcontrol.TabPages[i]=new TabPage(). 
7867         SetTab now does a replace by removing the page at the index. 
7868         Add a new InsertTab method that inserts a page in a given index 
7869         instead of replacing. 
7870         Implements TabPageCollection.Insert(int, TabPage).
7871
7872 2007-04-27  Chris Toshok  <toshok@ximian.com>
7873
7874         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
7875         internal handler that can be invoked from our subclasses.)  Also,
7876         add a comment to PushData about how we need to fix it.
7877
7878         * CurrencyManager.cs: tons of changes here.  trying to get things
7879         matching the behavior of .net wrt event orders (ItemChanged,
7880         CurrentChanged, PositionChanged.)  I've implemented a private .net
7881         symbol (ChangeRecordState) that appears in stack traces because
7882         it's actually easier to do this than to effective inline all its
7883         various behaviors at every call site.
7884
7885         * RelatedPropertyManager.cs: guard against an exception here by
7886         not using parent.Current if the position is set to -1 (if the
7887         parent datasource is cleared, for instance).
7888
7889         * Binding.cs: don't parse data in PushData (this might be wrong,
7890         but it jives with MS's behavior.)  Also, don't call PushData when
7891         we get a CurrentChanged event.
7892
7893 2007-04-27  Andreia Gaita  <avidigal@novell.com>
7894
7895         * WebBrowser.cs,
7896           WebBrowserBase.cs,
7897           WebBrowserSiteBase.cs,
7898           HtmlDocument.cs: Added stubbed out classes, no real implementations 
7899           yet.
7900
7901 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
7902
7903         * MainMenu.cs: In draw method without parameters call draw method with 
7904         PaintEvent, another one (just rect) adjust rectangle and we dont need it
7905         as Rect property is already adjusted. Fixes #80694.
7906
7907 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
7908
7909         * Application.cs: Need to handle keyboard menu deselection here.
7910         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
7911         navigation, allowing keyboard to work on X11.
7912         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
7913
7914 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
7915
7916         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
7917         menu bar. It fixes some drawing issues in menu bar.
7918
7919 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
7920
7921         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
7922         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
7923         when <alt> key is pressed.
7924
7925 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
7926
7927         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
7928         example just set visible to false and make this prevent from other problems.
7929         In SystrayAdd always remove pending expose. Fixes #81072.
7930
7931 2007-04-26  Marek Safar  <marek.safar@gmail.com>
7932
7933         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
7934         value is set.
7935
7936 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
7937
7938         * ListView.cs: Added three missing 2.0 events and corresponding
7939         EventHandlers. Added the OwnerDraw property.
7940         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
7941
7942 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
7943
7944         * DrawListViewItemEventArgs.cs
7945         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
7946
7947 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
7948
7949         * TextControl.cs: Fixed typo in constructor
7950
7951 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
7952
7953         * Application.cs: Create a shortcut path so that currently selected
7954         MenuStrips can intercept keyboard events without having focus.
7955         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
7956         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
7957         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
7958         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
7959         generate WM_SYSCOMMAND message in X11 for other platforms.
7960         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
7961         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
7962         * ToolStripSplitButton.cs: Add DefaultItem property.
7963         
7964 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
7965
7966         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
7967         fixes some menu draw problem on Windows with border diferent from default
7968         it also fixes #81403.
7969
7970 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7971
7972         * Form.cs: Refactor WndProc into separate methods, just like Control is
7973           doing it.
7974
7975 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7976
7977         * Control.cs: set_Text: move the call to the driver into a seperate
7978           virtual method so that Form can override it.
7979         * MaskedTextBox.cs: Corcompare fixes.
7980         * Form.cs: Override UpdateWindowText and only update the styles if the
7981           form has been shown (fixes #81405).
7982
7983 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
7984
7985         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
7986         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
7987         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
7988         the form lost focus or another control was clicked.
7989
7990 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
7991
7992         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
7993         fixed.
7994
7995 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7996
7997         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
7998           DrawListViewItemEventHandler.cs,
7999           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
8000           Added.
8001         * X11Structs.cs: More ToString implementation.
8002
8003 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
8004
8005         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
8006         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
8007
8008 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8009
8010         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
8011           handle.
8012         * FormCollection.cs: Don't add a form if it's already in the
8013           collection.
8014         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
8015           according to behaviour and MSDN. The ownerWin32 is the active
8016           window at the moment when we call ShowDialog, not the context's
8017           main form (the context's main form may open another form that opens
8018           a form with ShowDialog, the win32 owner is the second form). Add
8019           and remove forms to the Application.OpenForms in other places to
8020           better match MS behaviour. Add an IsActive property that raises
8021           On(de)Activated only if the active state has changed (we were
8022           raising OnDeactivated before OnActivated while creating forms).
8023         * Application.cs: Refactor Enabling/Disabling of windows for modal
8024           dialog loops out to separate methods, and restore the thread
8025           context when we quit the method. Fixes #81407.
8026
8027 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8028
8029         * ListView.cs: In ItemControl.HandleClicks, also fire 
8030         2.0 MouseClick or MouseDoubleClick events on the parent,
8031         not only the Click/DoubleClick events.
8032
8033 2007-04-24  Andreia Gaita  <avidigal@novell.com>
8034
8035         * TableLayoutSettings.cs: 
8036         - Added a GetControls method and a support structure to help the 
8037         TypeConverter to enumerate the controls for     serialization. 
8038         - Added a new serialization constructor. 
8039         - Added a isSerialized flag initialized to true on the 
8040         serialization constructor so that the TableLayoutPanel.LayoutSettings 
8041         setter does not throw the designed NotSupportedOperation exception
8042         when the object is built through deserialization.
8043         - Implemented GetObjectData
8044         
8045         * TableLayoutPanel.cs: Added check on LayoutSettings.
8046
8047 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8048
8049         * ListView.cs: Report Click and DoubleClick events to the parent
8050         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
8051         from breaking the click count state when using dialog forms (Control
8052         reports the clicks in a similar fashion). In the previous behaviour
8053         the last WM_LBUTTONUP message in a  double click was sent to the
8054         ListView's form, instead of the ListView, which was breaking the click
8055         count for it. Fixes #80387.
8056
8057 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
8058
8059         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
8060
8061 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
8062
8063         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
8064         us from created dropdowns for menu items that do not have subitems.
8065         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
8066         Check HasDropDownItems before calling DropDown so a dropdown will not be
8067         created if it isn't needed.
8068
8069 2007-04-24  Jackson Harper  <jackson@ximian.com>
8070
8071         * TreeView.cs: Set the first node to the selected node when we get
8072         focus if there is no selected node.
8073
8074 2007-04-24  Andreia Gaita  <avidigal@novell.com>
8075
8076         * MimeIcon.cs: remove using blocks so that image streams are
8077         not disposed of. Fixes #80151
8078
8079 2007-04-24  Jackson Harper  <jackson@ximian.com>
8080
8081         * TextBoxBase.cs: Fixup the height of textboxes when the control
8082         is created.
8083
8084 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
8085
8086         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
8087         for each ToolStripItem when the parent's RightToLeftChanged is called.
8088
8089 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8090
8091         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
8092           Fixes #80163.
8093         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
8094           property, so that the setter can be overriden too.
8095         * TextBox.cs: Change GetContextMenuInternal() to use
8096           ContextMenuInternal.
8097
8098 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8099
8100         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
8101           #81406.
8102
8103 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8104
8105         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
8106           #81406.
8107
8108 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8109
8110         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
8111           avoid duplicate work. Mostily skeleton code, it's not working at
8112           all yet.
8113
8114 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
8115
8116         * NotifyIcon.cs : stub for MouseClick event
8117         * Application.cs: stub for SetUnhandledExceptionMode
8118
8119 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
8120
8121         * BindingNavigator.cs : Initial (partial) implementation
8122
8123 2007-04-23  Jackson Harper  <jackson@ximian.com>
8124
8125         * TreeView.cs: Do not create the treeview's handle when setting
8126         the scroll position.
8127         - ExpandAll needs to compute the scrollbars so it knows which
8128         position to set the bar too.
8129         * TreeNode.cs: 
8130         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
8131
8132 2007-04-23  Jackson Harper  <jackson@ximian.com>
8133
8134         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
8135         key. Fixes #81408.
8136
8137 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
8138
8139         * ToolStripItem.cs: Make GetImageSize internal.
8140         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
8141         need to draw an item.  Fixes a reported issue where images on menus
8142         that were not 16x16 were drawing incorrectly.
8143
8144 2007-04-21  Miguel de Icaza  <miguel@novell.com>
8145
8146         * Padding.cs: Use the converter, fixes the resgen2 issue with
8147         XMLNotePad. 
8148
8149 2007-04-21  Jackson Harper  <jackson@ximian.com>
8150
8151         * TreeView.cs: Dont try to unhighlight the selected node if there
8152         isn't a selected node.
8153
8154 2007-04-21  Jackson Harper  <jackson@ximian.com>
8155
8156         * UpDownBase.cs:
8157         * TextBoxBase.cs:
8158         * ListView.cs:
8159         * ListBox.cs:
8160         * TreeView.cs: Use the InternalBorderStyle property to set the
8161         initial border style, this forces the client rectangle to be sized
8162         correctly.
8163
8164 2007-04-20  Jackson Harper  <jackson@ximian.com>
8165
8166         * TreeView.cs: Simplify scrolling to the last node after expanding
8167         all.
8168         - Fix some off by ones with setting the bottom.
8169
8170 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
8171
8172         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
8173         that.  We were incorrectly doing it the other way around.  Also,
8174         update ClientSize if we change the BorderStyle before the control
8175         is created.
8176
8177 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
8178
8179         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
8180         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
8181         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
8182         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
8183         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
8184         Caption to CaptionHeight.
8185         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
8186         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
8187         and FixedFrameBorderSize to return value from current XplatUI driver.
8188         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
8189         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
8190         and FixedFrameBorderSize using win32 API. Renamed Caption to
8191         CaptionHeight.
8192         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
8193         * SystemInformation.cs: Fixed typo in BorderSize.
8194
8195 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
8196
8197         * XplatUI.cs: Added MenuAccessKeysUnderlined.
8198         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
8199         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
8200         returning false.
8201         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
8202         value from XplatUI driver.
8203         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
8204         SystemParametersInfo.
8205         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
8206         override.
8207         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
8208         returning false.
8209
8210 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8211
8212         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
8213
8214 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8215
8216         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
8217
8218 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
8219
8220         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
8221         MenuStrips that contain ToolStripSeparators.
8222
8223 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8224
8225         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
8226           DefineStdCursorBitmap.
8227         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
8228           has been created off a standard cursor. This is used to get a
8229           bitmap of the standard cursor when Draw or DrawStretched is called
8230           in order to draw the cursor.
8231         * X11Structs.cs: Added XcursorImage and XcursorImages.
8232         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
8233           DefineStdCursorBitmap.
8234         * Cursors.cs: Update all relevant creations of Cursor to use the new
8235           internal constructor.
8236
8237 2007-04-19  Jackson Harper  <jackson@ximian.com>
8238
8239         * TextBox.cs: Move the has_been_focused into the base control, so
8240         some of the text adding methods can manipulate it (probably time
8241         for a better name for this flag too).
8242         - Call a new version of selectall that doesn't scroll
8243         * TextBoxBase.cs: When we append text, if the document is empty,
8244         don't scroll.  If the document has text already, we scroll to the
8245         end of the appended text.
8246         - When the text is changed, we reset the has_been_focused, so the
8247         next time the control gets focused, all the text is selected.
8248
8249 2007-04-19  Jackson Harper  <jackson@ximian.com>
8250
8251         * TextControl.cs: Move the margins to the document, add a method
8252         so the margin sizes can be updated.
8253         * TextBoxBase.cs: When the border style is changed, update the
8254         border sizes.
8255
8256 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
8257
8258         * Control.cs: Respect DefaultPadding.
8259         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
8260         padding into account.
8261         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
8262
8263 2007-04-19  Jackson Harper  <jackson@ximian.com>
8264
8265         * TextControl.cs: Oops, we need to use the ClientRect not the
8266         bounds here.
8267
8268 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8269
8270         * ListView.cs: In ItemControl.ItemsMouseDown, take into
8271         account the double clicks when CheckBoxes are used and
8272         the pointer is inside the checkbox. Fixes part of #81191.
8273
8274 2007-04-18  Jackson Harper  <jackson@ximian.com>
8275
8276         * TextControl.cs: Pressing the end key shouldn't move the caret
8277         past the line ending.
8278         * TextBoxBase.cs: We can still delete if we are in the line
8279         ending and the combine will just kill the existing line ending.
8280
8281 2007-04-18  Jackson Harper  <jackson@ximian.com>
8282
8283         * TextControl.cs: We can't move lines, then invalidate their
8284         bounds, we need to get the old bounds and combine that with the
8285         new bounds.
8286         * TextBoxBase.cs: Before combining two lines for a delete, we need
8287         to invalidate the area of the old line, since that will be moved
8288         in the combine operation.
8289
8290 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
8291
8292         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
8293         with transparent background. Fixes #80482.
8294
8295 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
8296
8297         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
8298         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
8299         [Fixes bug #81391]
8300
8301 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8302
8303         * CreateParams.cs: Add a couple of helper methods and do a less string
8304           concatenation in ToString.
8305         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
8306           overload that takes a Control parameter, since this method may be
8307           called before a control is assigned to the hwnd (from
8308           CreateWindow), and update CreateWindow to use the new overload. In
8309           GetMenuOrigin subtract the title bar from the y position if the
8310           form has a window manager (since we're painting it and not X).
8311         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
8312           CreateParams to calculate the origin (since border sizes may vary).
8313           In ScreenToMenu only subtract the title height if we actually have
8314           a title.
8315         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
8316           mdi children never have menus of themselves.
8317         * InternalWindowManager.cs: Implement menu handling like form does.
8318           Added GetMenuOrigin to calculate the menu origin, can't use the
8319           CreateParams from the form like normally since it's lying.
8320         * Hwnd.cs: Implement GetBorderSize better (in the sense more
8321           windows-like) and add Inflate and comparison operators to the
8322           Borders type. When calculating MenuOrigin and it's a form with a
8323           window manager, use the window manager to calculate it.
8324
8325 2007-04-17  Chris Toshok  <toshok@ximian.com>
8326
8327         * Control.cs (CreateControl): turns out in 2.0 we don't need this
8328         OnBindingContextChanged thing here.  It's only generated from
8329         ContainerControl.OnCreateControl.  Fixes a newly written unit test
8330         - BindingTest.BindingContextChangedTest4.
8331         
8332 2007-04-17  Jackson Harper  <jackson@ximian.com>
8333
8334         * ScrollBar.cs: When setting values, make sure the current
8335         position stays within the new values range.
8336
8337 2007-04-17  Chris Toshok  <toshok@ximian.com>
8338
8339         * Control.cs (CreateControl): talk about a bizarre corner case.
8340         Don't emit OnBindingContextChanged here if we're a parentless
8341         control (i.e. if we're a form.).  Fixes
8342         BindingTest.BindingContextChangedTest2.
8343
8344 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
8345
8346         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
8347         from win32. Fixes #81255.
8348
8349 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
8350
8351         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
8352         already present in CalculateButtonTextAndImageLayout.
8353
8354 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8355
8356         * XplatUIX11.cs: When setting min/max size for a window we need to
8357           translate the coordinates to x coordinates. Create an overload of
8358           SetWindowMinMax that takes a CreateParams handling this, and change
8359           SetWMStyles to call this function (can't use Control.FromHandle in
8360           the SetWindowMinMax to get the control/CreateParams from the handle
8361           because the handle might not have been assigned to the control
8362           yet). Fixes #81371.
8363
8364 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8365
8366         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
8367         if StateImageList is non-null and it has less than two items (match MS
8368         behaviour). Also, in HandleNavKeys handle the Space key, calling
8369         the new ToggleItemsCheckState method, which tries to change the
8370         checked state of the selected items. Fixes part of #81191.
8371
8372 2007-04-16  Jackson Harper  <jackson@ximian.com>
8373
8374         * RichTextBox.cs: namespace cleanup.
8375
8376 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
8377
8378         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
8379
8380 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
8381
8382         [Fixes #79447]
8383         * Control.cs: Call invalidate in set_Region.
8384
8385         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
8386         it dont works here.
8387
8388 2007-04-16  Jackson Harper  <jackson@ximian.com>
8389
8390         * TextBoxBase.cs: When enter is pressed, we need to update all
8391         lines below the current.
8392
8393 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
8394
8395         * MdiClient.cs: Implement implicit menu merging for MDI
8396         children.  When a child form is active, if it has a menustrip
8397         and the parent form has a MainMenuStrip, automatically merge
8398         the menus.
8399
8400 2007-04-15  Andreia Gaita  <avidigal@novell.com>
8401
8402         * TabControl.cs: Refactored sizing methods to not repeat
8403         code all over the place. Tab bounds are now calculated
8404         as if alignment is top and single line, and only when 
8405         setting the bounds are the positions adjusted according
8406         to alignment. Replaced hardcoded positions, spacings and
8407         paddings by getting the values the ThemeEngine. 
8408         Fixes #79619.
8409         
8410         * Theme.cs: Change TabControl properties and methods so
8411         that all start with TabControl*. Added more properties
8412         to help remove hardcoded values on tabcontrol.
8413         Add CPDrawBorder3D declaration so the Theming classes
8414         can access it.
8415         
8416         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
8417
8418         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
8419         on the Theming namespace, and call the appropriate methods here.
8420         Change CPDrawBorder3D to public.
8421
8422 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8423
8424         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
8425         the control after firing the OnMouseUp event, instead of sending
8426         the message before the mentioned event. This is so we can match the
8427         MS behaviour. Fixes part of #80385.
8428
8429 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
8430
8431         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
8432         RightToLeft property.
8433
8434 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
8435
8436         * ToolStrip.cs: Add properties and internal methods to support merging.
8437         * ToolStripItem.cs: Add MergeAction and MergeIndex.
8438         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
8439         not trigger reparenting or layouts.
8440         * ToolStripManager.cs: Add Merge and RevertMerge methods.
8441         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
8442         is hosting the overflow menu.
8443
8444 2007-04-13  Jackson Harper  <jackson@ximian.com>
8445
8446         * TextControl.cs: Set the line ending correctly for the first
8447         inserted line.
8448
8449 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
8450
8451         * Theme.cs: Update GetMethod to get the new definition for 
8452         KnownColors.Update (and fix theme color updates).
8453
8454 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
8455
8456         * MessageBox.cs: Fix some test and button position.
8457
8458 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8459
8460         * Form.cs: Consider the implicit controls in
8461         GetRealChildAtPoint. We need it since this method
8462         is called on Form when handling the some messages in
8463         WndProc, and need to consider those implicit ones too.
8464         Fixes #80385.
8465
8466 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
8467
8468         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
8469         if there are no ShortcutKeys set.
8470         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
8471         set, use it when painting.
8472
8473 2007-04-12  Jackson Harper  <jackson@ximian.com>
8474
8475         * TextControl.cs: Fix some off-by-one issues in line duplication
8476         and insertion in the undo manager. Also, overwrite the first tag
8477         of a line on insert, if it is just a zero lengthed tag. This
8478         prevents us from getting an extra stranded tag at the beginning of
8479         the first line.
8480
8481 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
8482
8483         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
8484         to calculated proper size including when handle was not created yet.
8485
8486 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8487
8488         * MdiWindowManager.cs: When moving a form, allow the form to be moved
8489           when the mouse is outside of it's parent's client rectangle. Fixes
8490           #79982 (take 3, part 2).
8491
8492 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8493
8494         * X11Structs.cs: Add a few ToString() overrides.
8495         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
8496           the window location in a window-manager independent way. Reworked
8497           FrameExtents, it now actually works. Reworked AddConfigureNotify
8498           and ReparentNotify handling to use GetTopLevelWindowLocation
8499           instead of the earlier, more hacky solution. Reworked SetWMStyles,
8500           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
8501           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
8502           for all other windows (fixes #81281 part 1), a toolwindow is hidden
8503           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
8504           and generally refactored to do as few calculations as possible
8505           inside the lock.
8506
8507 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
8508
8509         * Theme.cs: Change "reflective-contract" between MWF and SD to 
8510         minimize # of calls, avoid Color serialization and avoid updating 
8511         every "known colors" each time a single one is updated.
8512
8513 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
8514
8515         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
8516         when not readonly and the text is explicitly set. Code style updates.
8517         * DataGridTableStyle.cs: Removed extra line.
8518         * DataGrid.cs: Code style updates. Removed extra whitespace.
8519         * DataGridColumnStyle.cs: Code style updates. Removed extra 
8520         whitespace.
8521
8522 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8523
8524         * XplatUIX11.cs: Added comment that "fixes" #80021.
8525
8526 2007-04-09  Jackson Harper  <jackson@ximian.com>
8527
8528         * TextControl.cs: We don't need this -1 on the line count anymore.
8529
8530 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
8531
8532         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
8533         entered value to underlying type, and convert it back to a string to
8534         apply formatting. Modified GetFormattedValue to use TypeConverter
8535         if available.
8536
8537 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
8538
8539         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
8540         Use SubItems property when we want to ensure there's at least one
8541         subitem. Modified SubItems property to ensure there's always at least
8542         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
8543         the NRE's reported by MS.
8544
8545 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
8546
8547         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
8548         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
8549         Spaces to tabs. Removed extra tabs.
8550
8551 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
8552
8553         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
8554         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
8555
8556 2007-04-06  Jackson Harper  <jackson@ximian.com>
8557
8558         * TextBoxBase.cs: When a delete removes a line, recalculate all
8559         lines below that line (they need to get offsets setup correctly)
8560         and invalidate.
8561
8562 2007-04-05  Jackson Harper  <jackson@ximian.com>
8563
8564         * TextControl.cs: We need to invalidate across the width of the
8565         document when we are invalidating multiple lines.
8566         * TextBoxBase.cs: Don't delete into the line ending.
8567
8568 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8569
8570         * ListView.cs: Restore the check for the MouseHover event
8571         in ListView. It looks like the ListView fires more than one MouseHover
8572         event when HoverSelection is true  _only_ in weird-corner scenarios, but
8573         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
8574         event.
8575
8576 2007-04-05  Mike Kestner  <mkestner@novell.com>
8577
8578         * ListView.cs : raise MouseDown before updating selection.
8579         [Fixes #80373 tab 1&3]
8580
8581 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
8582
8583         * ToolStripRenderer.cs: Add static method to mirror image.
8584         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
8585         and RightToLeftAutoMirrorImage.
8586         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
8587
8588 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
8589
8590         * ToolStripSplitStackLayout.cs: Support Alignment property.
8591         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
8592
8593 2007-04-05  Jackson Harper  <jackson@ximian.com>
8594
8595         * TextControl.cs: Move around the line endings when crossing line
8596         boundaries.
8597         - When combining lines, strip the ending text off the first line.
8598
8599 2007-04-05  Jackson Harper  <jackson@ximian.com>
8600
8601         * TextControl.cs:
8602         * TextBoxBase.cs: Try to never move the cursor into the line
8603         ending.
8604         
8605 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
8606
8607         * ToolStripItem.cs: Make sure we aren't firing mouse events when
8608         the item is disabled.  Also add a few missing methods.
8609
8610 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8611
8612         * ListView.cs: We don't need the MouseEnter/MouseLeave check
8613         to fire just one MouseHover event when HoverSelection is true, since
8614         .Net does fire more than one MouseHover event in that scenario. Also,
8615         fix the selection in HoverSelection, by invoking UpdateMultiSelect
8616         if MultiSelect is true, instead of only setting ListViewItem.Selected.
8617         Finally, we need to reset the Hover logic in MouseMove, even when we
8618         don't have a selected item.
8619
8620 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
8621
8622         * ToolStrip.cs: Add several missing methods, properties, and events.
8623
8624 2007-04-04  Chris Toshok  <toshok@ximian.com>
8625
8626         * DataGridTextBoxColumn.cs: set the bounds of the text box to
8627         (0,0,0,0) in Commit, as MS does.
8628
8629         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
8630         make sure we set CurrentRow on a row header click *before* calling
8631         Select.  This moves the current cell (and the textbox) to the new
8632         row.  The call to Select then hides the textbox, giving us the
8633         correct behavior.  Fixes #80362.
8634
8635         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
8636         (ListChangedHandler): reorder the position/current changed events,
8637         and call UpdateIsBinding in the ItemAdded case.
8638
8639         * GridColumnStylesCollection.cs: add some columns events, one of
8640         which raises the CollectionChanged event.
8641
8642 2007-04-04  Jackson Harper  <jackson@ximian.com>
8643
8644         * TextControl.cs: When we delete multiple selection lines
8645         invalidate the selection area, don't need to do that for single
8646         lines because the final update view will handle it.
8647
8648 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
8649
8650         * Control.cs: When we CreateControl, we need to also create all of the
8651         control's children.  The child's OnLoad must also fire before the parent's
8652         OnLoad.  Fixes the toolbox size in PDN.
8653
8654 2007-04-04  Jackson Harper  <jackson@ximian.com>
8655
8656         * TextBoxBase.cs: When the user presses enter, insert a line
8657         ending into the text. (Maybe this would be a good spot for
8658         Environment.NewLine).
8659         * TextControl.cs: Remove undo manager hack, line endings get
8660         inserted properly now.
8661         
8662 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
8663
8664         * MenuAPI.cs: 
8665         - Remove unneeded parameters in UpdateCursor.
8666         - Fix UpdateCursor to check if menu is active.
8667         - Call UpdateCursor when menu deactivate my click.
8668         [Fixes remaining issues from #80410]
8669
8670 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
8671
8672         * Control.cs: GetRealChildAtPoint method added, it make an
8673         recursive child control search for the point. 
8674
8675         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
8676         menu.
8677
8678         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
8679
8680 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
8681
8682         * Form.cs: Fix mouse position when send back mouse event after closes
8683         menu.
8684
8685 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
8686
8687         * Form.cs: Simplify the BUTTONDOWN for active tracker.
8688
8689 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
8690
8691         * Control.cs: Fix an issue where if a user resized a control inside
8692         a sizing method like OnResize, we would overwrite their explicit
8693         value.  Also, only call DefaultSize once in the constructor instead
8694         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
8695         nothing actually changed.
8696
8697 2007-04-03  Jackson Harper  <jackson@ximian.com>
8698
8699         * TextControl.cs: Don't attempt to copy text for lines with no
8700         text in them (technically this shouldn't happen, but we aren't
8701         always inserting line endings when we should be).
8702
8703 2007-04-03  Jackson Harper  <jackson@ximian.com>
8704
8705         * TextBoxBase.cs: Calculate the scrollbars before calculating the
8706         document, because this sets some of the document size properties
8707         that are needed.
8708
8709 2007-04-03  Jackson Harper  <jackson@ximian.com>
8710
8711         * TextBoxBase.cs: We need to calculate maximums even if this is
8712         not a multiline control, because the maxs are used for scrolling.
8713         - Display the caret after doing a page up/down, we need to
8714         manually display it because a proper CaretMoved event isn't
8715         triggered (this is because of the way the math is done to
8716         determine how far to scroll).
8717
8718 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
8719
8720         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
8721         (ToolBar was relying on SetBoundsCore to default the values sent 
8722         base off of BoundsSpecified.)
8723
8724 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8725
8726         * DateTimePicker.cs: Change Text so that when a null value or empty
8727           string is assigned to the test we always raise ValueChanged and
8728           TextChanged (earlier implementation would only raise ValueChanged
8729           if the current date value was different from DateTime.Now).
8730
8731 2007-04-03  Andreia Gaita <avidigal@novell.com> 
8732
8733         * ButtonBase: Call update after invalidation, fixes #80194
8734
8735 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8736
8737         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
8738           #79335.
8739
8740 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8741
8742         * XplatUIX11.cs: SetWMStyles: If the control is a form with
8743           FormBorderStyle = None, don't give the window any decorations.
8744           Fixes #81276.
8745
8746 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8747
8748         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
8749         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
8750           to check for is a mix of several styles (such as WS_CAPTION for
8751           instance).
8752         * Control.cs: Don't paint an area bigger than the client area when
8753           painting the background colour. Add an internal GetCreateParams.
8754           Update calls to XplatUI.CalculateWindowRect due to API change.
8755         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
8756           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
8757           the size if it hasn't been handled by any windows. When creating
8758           and moving windows, X wants the location of the entire window, but
8759           the size of the client window, so add
8760           TranslateClientRectangleToXClientRectangle,
8761           TranslateWindowSizeToXWindowSIze and
8762           TranslatedXWindowSizeToWindowSize to cope with this, and call them
8763           before every window creation and move. Update CalculateWIndowRect
8764           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
8765           In AddConfigureNotify don't do anything if the hwnd is a zombie
8766           (fixes the BadWindow we were getting while running the tests),
8767           always calculate the offsets when it's a parentless window, not
8768           only when reparented, and translate the window size, since we're
8769           getting the client size of the whole window, excluding entire
8770           window.
8771         * Theme.cs: Added BorderSizableSize.
8772         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
8773           anymore. Update calls to XplatUI.CalculateWindowRect due to API
8774           chang
8775         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
8776           change. Fake the window styles here instead of in XplatUIWin32 so
8777           that all back-ends get the same window styles (and it's Form that's
8778           deciding when to use wm, not the Win32 backend anyways)
8779         * Hwnd.cs: Completely reworked GetWindowRectangle and
8780           GetClientRectangle - they are now passed a CreateParams and they
8781           only use Style and ExStyle to determine the rectangles (they should
8782           now work just like Win32AdjustWindowRectEx - though quite a few
8783           special cases are probably missing). They should also be 100%
8784           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
8785           == rect), and all numbers (borders, menu sizes) are taken from the
8786           current theme. Added a GetBorders helper function that will return
8787           the borders for any given CreateParams (including captions and
8788           menus), and GetBorderSize that returns the given border size only.
8789         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
8790           Hwnd.GetClientRectangle.
8791
8792 2007-04-02  Chris Toshok  <toshok@ximian.com>
8793
8794         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
8795         logic between the values we present to the user and the values
8796         which are stored in the column's property.  Also, don't call
8797         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
8798
8799 2007-04-02  Jackson Harper  <jackson@ximian.com>
8800
8801         * TextBoxBase.cs: Scroll faster!
8802
8803 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
8804
8805         * StatusStrip.cs: Layout fixes for PDN.
8806         * ToolStrip.cs: Set item's available to true, and placement to main when
8807         added.
8808         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
8809         changing in setter before doing any work, add InternalVisible.
8810         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
8811         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
8812         infinite loop.
8813
8814 2007-04-02  Jackson Harper  <jackson@ximian.com>
8815
8816         * TextBox.cs: LBUTTON does not make the textbox select all of it's
8817         text on focus.
8818
8819 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8820
8821         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
8822           Makes ToolStripComboBoxes show up again.
8823
8824 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8825
8826         * ListView.cs: Add a hover_pending field in ListView
8827         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
8828         cycle (we are resetting the MouseHover logic in XplatUI
8829         to handle HoverSelection). Fixes #80429.
8830
8831 2007-04-02  Jackson Harper  <jackson@ximian.com>
8832
8833         * TextControl.cs: Make sure the attributes get set on the last
8834         tag.
8835         - Still have to do the end tag if we have stepped all the ways to
8836         the end.
8837
8838 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
8839
8840         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
8841         on an internal libgdiplus call when the information is already 
8842         available via the public API.
8843
8844 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8845
8846         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
8847           control is removed from a control collecftion.
8848         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
8849           Fixes FormPropertyTest (failed on rare occasions).
8850         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
8851           of Win32SetParent (when changing from no parent to a parent it
8852           might add the new parent's location in screen coordinates to this
8853           window's location).
8854         * Form.cs: Rework ChangingParent once again, now the handle is
8855           recreated whenever a FormWindowManager is added or removed (that is
8856           whenever a normal form is parented or abandoned). Also change
8857           CreateParams so that all non-toplevel windows always get the
8858           specified sice (StartupPosition is never considered for
8859           non-TopLevel forms).
8860         * ContainerControl.cs: Add ChildControlRemoved, the container control
8861           needs to be notified when a control is removed from it's
8862           collection, in the case the removed control is the active control.
8863
8864 2007-04-02  Jackson Harper  <jackson@ximian.com>
8865
8866         * RichTextBox.cs: Use the new methods for setting the font and
8867         color, these methods set the specified attribute without
8868         overriding the other attributes.
8869
8870 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
8871
8872         * ToolStripPanel.cs: Fixes for better layouts in PDN.
8873
8874 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
8875
8876         * TextBox.cs: Added internal ChangeBackColor method to special-case
8877         Color.Empty. Added check for invalid ScrollBars value.
8878         * TextBoxBase.cs: Added internal ChangeBackColor method.
8879         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
8880         internal ChangeBackColor method to special-case Color.Empty. Added
8881         check for invalid ScrollBars value.
8882
8883 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
8884
8885         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
8886
8887 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
8888
8889         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
8890         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
8891         [Based on submitted patch from Olivier Duff.]
8892
8893 2007-03-30  Jackson Harper  <jackson@ximian.com>
8894
8895         * TextBox.cs: Only select all on initial focus if the user has not
8896         specified a selection area.
8897
8898 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
8899
8900         * UserControl.cs: Override CreateParams.
8901
8902 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8903
8904         [ Fixes #80995 ]
8905
8906         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
8907         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
8908           check for is a mix of several styles (such as WS_CAPTION for instance).
8909         * Control.cs: Don't paint an area bigger than the client area when painting
8910           the background colour. Add an internal GetCreateParams. Update calls to
8911           XplatUI.CalculateWindowRect due to API change.
8912         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
8913           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
8914           hasn't been handled by any windows. When creating and moving windows, X
8915           wants the location of the entire window, but the size of the client
8916           window, so add TranslateClientRectangleToXClientRectangle,
8917           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
8918           to cope with this, and call them before every window creation and move.
8919           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
8920           removing DeriveStyles). In AddConfigureNotify don't do anything if the
8921           hwnd is a zombie (fixes the BadWindow we were getting while running the
8922           tests), always calculate the offsets when it's a parentless window, not
8923           only when reparented, and translate the window size, since we're getting
8924           the client size of the whole window, excluding entire window.
8925         * Theme.cs: Added BorderSizableSize.
8926         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
8927           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
8928         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
8929           Fake the window styles here instead of in XplatUIWin32 so that all
8930           back-ends get the same window styles (and it's Form that's deciding when
8931           to use wm, not the Win32 backend anyways)
8932         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
8933           they are now passed a CreateParams and they only use Style and ExStyle
8934           to determine the rectangles (they should now work just like
8935           Win32AdjustWindowRectEx - though quite a few special cases are probably
8936           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
8937           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
8938           sizes) are taken from the current theme. Added a GetBorders helper
8939           function that will return the borders for any given CreateParams
8940           (including captions and menus), and GetBorderSize that returns the given
8941           border size only.
8942         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
8943           Hwnd.GetClientRectangle.
8944
8945 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8946
8947         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
8948           layout of the mdi children is handled by CreateParams. Fixes
8949           #79964,
8950
8951 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
8952
8953         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
8954         processed.
8955
8956         * Form.cs: When active tracker mouse down is not processed, send event 
8957         back to control inside mouse position. [Fixes #81227]
8958
8959 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
8960
8961         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
8962         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
8963         stealing focus from the active form on Windows.  (Control will be made
8964         visible in ShowWindow.)
8965
8966 2007-03-29  Mike Kestner  <mkestner@novell.com>
8967
8968         * ImageList.cs : add internal Changed event.
8969         * ListView.cs : hook up to StateImageList.Changed to perform
8970         invalidations when the the state icon list changes. [Fixes #81191]
8971
8972 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
8973
8974         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
8975         to prevent tooltips from stealing focus from the active form on Windows.
8976
8977 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
8978
8979         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
8980
8981         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
8982
8983 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
8984
8985         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
8986         balloons.
8987
8988 2007-03-29  Jackson Harper  <jackson@ximian.com>
8989
8990         * TextControl.cs: When deleting text from non multiline textboxes,
8991         we need to update the entire document, because line offsets will
8992         be shifting.
8993
8994 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
8995
8996         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
8997         added to theme, now we can create themes that uses diferent notify engines
8998         like notification-daemon from galago project or growl for Mac OS.
8999
9000 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
9001
9002         * NotifyIcon.cs: Prevent Balloon to show in task bar.
9003
9004 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
9005
9006         * XplatUIX11.cs: Prevent system to open more than one balloon.
9007
9008         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
9009         some compiler warning messages.
9010
9011 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
9012
9013         [Fixes #79149]
9014
9015         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
9016
9017         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
9018         implemented, this methods is used by NotifyIcon.BalloonWindow class.
9019
9020         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
9021         systems.
9022
9023 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9024
9025         * ListViewItem.cs: Forgot to make Invalidate internal.
9026
9027 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9028
9029         * ListView.cs: Add a InvalidateSelection method to
9030         invalidate methods which are currently selected, and call
9031         it when setting FullRowSelect and HideSelection, instead of
9032         calling Redraw.
9033
9034 2007-03-28  Chris Toshok  <toshok@ximian.com>
9035
9036         * XplatUIX11.cs (UnmapWindow): reindent this block.
9037
9038         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
9039         the selection_start if we're moving the selection (that is, not
9040         extending it). Fixes bug #80461.
9041
9042 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
9043
9044         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
9045         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
9046         create private ControlCollection.
9047
9048 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
9049
9050         * Control.cs: We need to call OnVisibleChanged for our implicit
9051         children as well as our normal children.  Fixes scrollbars in
9052         comboboxes not showing up.
9053
9054 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
9055
9056         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
9057         the check for IsHandleCreated first.  The check in CreateHandle is not
9058         good enough because CreateHandle can be overriden, and the override 
9059         should not be called if the handle is already created.
9060
9061 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
9062
9063         * ToolStrip.cs: Remove MonoTODO for tooltips.
9064         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
9065         * ToolStripContainer.cs: Add custom ControlCollection class.
9066         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
9067         * ToolStripDropDown.cs: Add some missing properties/methods.
9068         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
9069         * ToolStripItem.cs: Remove MonoTODO for tooltips.
9070         * ToolStripManager.cs: Add IsShortcutDefined.
9071         * ToolStripOverflow.cs: Override LayoutEngine.
9072         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
9073         * ToolStripSeparator.cs: Add ImageKey.
9074
9075 2007-03-28  Jackson Harper  <jackson@ximian.com>
9076
9077         * TextControl.cs: If a char delete removes a line ending, we need
9078         to update the ending style.
9079         - Make sure the line ending calcs get called.
9080
9081 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9082
9083         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
9084           it was making the new code not work. Fixed a typo in the new code
9085           as well. Fixes #79826.
9086
9087 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
9088
9089         * XplatUIWin32.cs:
9090         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
9091         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
9092         - SystrayBalloon method implemented.
9093         [Add support for notifyicon balloon on win32, #79149]
9094
9095 2007-03-27  Mike Kestner  <mkestner@novell.com>
9096
9097         * ThemeWin32Classic.cs : update StateImageList selection to mirror
9098         the ms behavior when only one image is added to the list.
9099         [Fixes #81191]
9100
9101 2007-03-27  Jackson Harper  <jackson@ximian.com>
9102
9103         * TextControl.cs: Improvements to non multiline line ending
9104         drawing/measuing.
9105
9106 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
9107
9108         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
9109
9110 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
9111
9112         * NotifyIcon.cs: 
9113         - Balloon message handling added.
9114         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
9115
9116         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9117         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
9118         to SystrayBalloon to me like other Systray method, also a
9119         handle parameter added.
9120
9121 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9122
9123         * ListView.cs: Show scrollbars even when items.Count == 0
9124         but the columns Width is bigger than the ListView.Width.
9125         Also, when columns.Count == 0 set layout_wd and layout_ht
9126         to the ClientRectangle values, so we don't show any scrollbar
9127         in that case.
9128
9129 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
9130
9131         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
9132
9133 2007-03-27  Jackson Harper  <jackson@ximian.com>
9134
9135         * RichTextBox.cs: The RTF library decodes the text properly for us
9136         now.
9137
9138 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9139
9140         * ListView.cs: Display HeaderControl even when columns.Count == 0.
9141         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
9142         ListView header (HeaderControl), instead of Control.BackColor.
9143
9144 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
9145
9146         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
9147         Fixes tab control issues where controls would not show up because they
9148         never received their OnVisibleChanged call.
9149
9150 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
9151
9152         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
9153         BalloonTipShown).
9154
9155 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
9156
9157         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
9158         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
9159         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
9160         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
9161         the handle.  Fix WindowState by using the internal variable until we are 
9162         sure that we've been shown.
9163         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
9164         max or min.
9165         [Fixes bug #81198]
9166
9167 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9168
9169         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
9170           (at least borders). Fixes #79386 on Linux (with a small difference
9171           in behaviour: when trying to resize a caption-less window metacity
9172           shows the sysmenu. Resizing is still possible though).
9173         * XplatUIWin32.cs: When setting window styles send request an extra
9174           WM_NCCALCSIZE when it's a form without title (due to no text and no
9175           caption), since Win32 seems to calculate it wrong the first time we
9176           get the message, though the second time things work as they should.
9177         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
9178           newly reparented window might show up unparented. Update
9179           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
9180           there's no title text. Fixes #79386.
9181
9182 2007-03-27  Mike Kestner  <mkestner@novell.com>
9183
9184         * ListBox.cs : don't perform invalidations if the handle hasn't been
9185         created.  [Fixes #80753]
9186
9187 2007-03-27  Mike Kestner  <mkestner@novell.com>
9188
9189         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
9190         [Fixes #80428]
9191
9192 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
9193
9194         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
9195         needed to implement Balloon.
9196
9197 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9198
9199         * ListViewItem.cs: In the constructors that take
9200         an array of strings, don't use ListViewSubItemCollection.AddRange
9201         method to add items, since we need to have a different behaviour (in
9202         the constructors we add an item for each null string, opposed to
9203         the behaviour of AddRange, which adds nothing).
9204
9205 2007-03-26  Andreia Gaita  <avidigal@novell.com>
9206
9207         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
9208
9209 2007-03-26  Jackson Harper  <jackson@ximian.com>
9210
9211         * TextControl.cs: Draw and measure line endings when in non
9212         multiline mode.
9213         - When searching the text, count the end of the last line as a
9214         word boundary.
9215
9216 2007-03-26  Jackson Harper  <jackson@ximian.com>
9217
9218         * RichTextBox.cs: The selection_start and selection_end don't
9219         really track the correct tags for the selection. So we'll manually
9220         compute the correct tag here.
9221
9222 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9223
9224         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
9225           and Continuous styles. Fixes #79469.
9226
9227 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
9228
9229         * ToolStrip.cs: Implement Tooltips.
9230         * ToolStripItem.cs: Create internal method for determining tooltip.
9231
9232 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
9233
9234         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
9235
9236 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
9237
9238         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
9239         it prevents a problem thak keeps icon visible after application 
9240         closes on win32.
9241
9242 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
9243
9244         * NotifyIcon.cs: Balloon properties and methods created.
9245
9246         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9247         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
9248
9249 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
9250
9251         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
9252
9253 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
9254
9255         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
9256         parameter indicates which aspects were explicit/user-set.
9257         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
9258
9259 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
9260
9261         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
9262         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
9263         SmallChange, and Value (2.0).
9264         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
9265
9266 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9267
9268         * ListView.cs: Always set item_control.Width in LayoutDetails
9269         if View is Details. Setting it later in CalculateScrollBars
9270         in a not-so-corner scenario (the sum of columns width is
9271         not bigger than the ListView width when handle is created, and then
9272         that sum gets bigger by increasing the width of the columns)
9273         causes a very weird recursion path (which shouldn't be happening,
9274         since header_control sets it in CalculateScrollBars too). This bug
9275         appeared after Chris' fixes for handle created issues, so probably
9276         it's related to some handle-creation time.
9277
9278 2007-03-23  Chris Toshok  <toshok@ximian.com>
9279
9280         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
9281         case where there's an add row, just so we don't end up in a case
9282         where it's not displayed (this happens when the row is partially
9283         obscured).  Fixes bug #79574.
9284
9285 2007-03-23  Jackson Harper  <jackson@ximian.com>
9286
9287         * TextControl.cs:
9288         * TextBoxBase.cs:
9289         * RichTextBox.cs: Preserve line endings in the lines text buffer,
9290         also added an enum that represents the line ending type. 
9291
9292 2007-03-23  Andreia Gaita  <avidigal@novell.com>
9293
9294         * NumericUpDown.cs: Fix logic so Text and Value properties are not
9295         messed with in every method call, but only from DownButton, 
9296         UpButton, UpdateEditText() and ValidateText. Fixes #80346
9297
9298 2007-03-23  Chris Toshok  <toshok@ximian.com>
9299
9300         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
9301         format objects if the format spec is "".  Fixes bug #80889.
9302
9303 2007-03-22  Miguel de Icaza  <miguel@novell.com>
9304
9305         * ToolStripPanel.cs (Join): added stubs to build PDN3
9306
9307         * Control.cs (AutoScrollOffset): Add.
9308
9309         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
9310         property, its only implemented for Win32, on X11 it defaults to
9311         some hardcoded value.
9312
9313         * ToolStripItem.cs (AllowDrop): Add property
9314
9315 2007-03-22  Mike Kestner  <mkestner@novell.com>
9316
9317         * ListView.cs : in FullRowSelect Details mode, only enable box
9318         selection if the user clicks over the "item" column outside of the
9319         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
9320
9321 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9322
9323         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
9324           handle is not created yet.
9325         * Form.cs: Select: Don't call CreateHandle if the handle is already
9326           created, avoids a stack overflow on Windows when we are recreating
9327           controls.
9328         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
9329           they are made visible, and override AfterTopMostControl to keep
9330           them on top when other controls are brought to front.
9331           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
9332           or force_*scroll_visible is true (old implementation always shows
9333           scrollbars when needed, no matter what auto_scroll was set to).
9334         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
9335           IsHandleCreated check.
9336
9337 2007-03-22  Andreia Gaita  <avidigal@novell.com>
9338
9339         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
9340         row or col separator.
9341         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
9342
9343 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
9344
9345         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
9346
9347 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
9348
9349         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
9350         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
9351         every time. Fixes #80410.
9352
9353 2007-03-22  Chris Toshok  <toshok@ximian.com>
9354
9355         * BindingSource.cs (AddNew): partially implement.
9356
9357         remove a couple of NotImplementedException's
9358         to get bug #81148 closed.
9359
9360 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
9361
9362         [Fixes #80380]
9363         
9364         * Control.cs:
9365         - UpdateCursor method added to update the screen cursor.
9366         - GetAvailableCursor method added to return cursor for enabled tree,
9367         it searches for cursor on control and it's parent's for enabled control.
9368         - Call UpdateCursor method on setter of Cursor property.
9369         - On setter of Enabled call UpdateCursor when it is false, we need to
9370         change cursor to normal (or to this parent cursor) because cursor 
9371         setting theres no effect to disabled controls.
9372         - Some minor source changes to follow the coding style guidelines.
9373
9374         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
9375         controls.
9376
9377 2007-03-22  Chris Toshok  <toshok@ximian.com>
9378
9379         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
9380         generates.
9381
9382 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9383
9384         * XplatUIX11.cs: Implement default locations for forms.
9385         * Form.cs: Completely rework startup location for forms. Fixes #79964.
9386         * Hwnd.cs: Add previous_child_startup_location (to track the current
9387           startup location for any child forms of the current form) and
9388           previous_main_startup_location (to track the startup location for
9389           the current toplevel form).
9390
9391 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
9392
9393         * Control.cs: Don't trigger a layout if an implicit control is added
9394         that isn't visible.  Also, don't notify the owner when an implicit control
9395         is added.  (Owners shouldn't even know about their implicit controls.)
9396
9397 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
9398
9399         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
9400         to save some re-layouts.
9401
9402 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
9403
9404         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
9405         [Fixes #81203]
9406
9407 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
9408
9409         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
9410         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
9411
9412 2007-03-21  Mike Kestner  <mkestner@novell.com>
9413
9414         * ListView.cs : disable selection update for non-left button clicks
9415         with mods and over selected items.  [Fixes #80524]
9416
9417 2007-03-20  Jackson Harper  <jackson@ximian.com>
9418
9419         * TextControl.cs:
9420         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
9421         \r\r\n, \n.
9422
9423 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9424
9425         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
9426           very probably a more complicated calculation there. Update the
9427           textbox' ForeColor and BackColor when the ComboBox' colors are
9428           changed. Change the border change in LayoutComboBox to only affect
9429           the textbox, not all the calculations there. Seems to fix most of
9430           #79436.
9431
9432 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9433
9434         * ComboBox.cs: Handle Home and End keys as well as all combinations of
9435           modifiers + navigation keys as input keys, enables advanced text
9436           selection in the combobox (like Shift+Left Arrow for instance).
9437           ComboTextBox now overrides Focused and returns whatever
9438           ComboBox.Focused returns, since it really should be focused
9439           whenever the ComboBox is. Fixes #80795. Also make the border around
9440           the text box one pixel bigger, as mentioned in #79436.
9441
9442 2007-03-20  Jackson Harper  <jackson@ximian.com>
9443
9444         * TreeView.cs: Don't offset the images, this was causing some
9445         artifacts when expanding/collapsing with images that were the
9446         exact height of the treenode.
9447
9448 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9449
9450         * TrackBar.cs: Query the theme for the correct value when the mouse
9451           moves and the thumb is pressed. 
9452         * Theme.cs: Added TrackBarValueFromMousePosition
9453         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
9454           implementation was updating the trackbar value when drawing, now
9455           the drawing methods only draw. Fixes #80900. Refactored the
9456           calculations out to TrackBarValueFromMousePosition and
9457           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
9458           according to the mouse position whenever it wants to. Changed the
9459           light coloured pen when drawing the thumb from ControlLight to
9460           ControlLightLight, because the ControlLight is the same colour as
9461           the background so the 3D effect is lost. 
9462
9463 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
9464
9465         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
9466         defined. Fixes #80784.
9467
9468 2007-03-20  Marek Habersack  <mhabersack@novell.com>
9469
9470         * ContextMenuStrip.cs: align with the change introduced in
9471         revision 74664.
9472
9473 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
9474
9475         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
9476         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
9477         in SetTopmost.
9478
9479 2007-03-19  Chris Toshok  <toshok@ximian.com>
9480
9481         * Control.cs (WmPaint): don't make use of the Handle property
9482         after an event is emitted, as the user could have closed the
9483         form/destroyed the control.  Store the Handle in a local variable
9484         and make use of that.  Fixes bug #80768.
9485
9486 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
9487
9488         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
9489         behavior in X11 environments.
9490
9491 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
9492
9493         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
9494         because on setter of topmost we dont call SetTopmost when handle is not
9495         created.
9496
9497 2007-03-20  Jackson Harper  <jackson@ximian.com>
9498
9499         * TextControl.cs: Need to use SelectionLength () not
9500         selection_length, since that var is reset to -1.
9501         - Draw the caret when we don't have focus.
9502         * TextBox.cs: The selectall actually doesn't occur until the first
9503         focus.
9504         * TextBoxBase.cs: Need to update the caret position after a
9505         selectall.
9506         
9507 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9508
9509         * ListView.cs: Enable scrolling when using Tile view.
9510
9511 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
9512
9513         [Fixes #80902]
9514
9515         * XplatUIDriver.cs: Abstract SetOwner method created.
9516
9517         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
9518         must be implemented and was masked as todo.
9519
9520         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
9521         GWL_HWNDPARENT.
9522
9523         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
9524         cheking for null owner to remove transient. The SetTopmost will be change
9525         on a decond step.
9526
9527         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
9528         SetTopmost. Now owned forms will work properly in win32 and X11.
9529
9530 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9531
9532         * MdiWindowManager.cs: Update function name.
9533         * Form.cs: After closing a form MdiParent is always null.
9534         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
9535           better what it should do: necessary book-keeping when the form is
9536           closed, it should not close the form itself.
9537
9538 2007-03-19  Andreia Gaita  <avidigal@novell.com>
9539
9540         * ListViewItem.cs: Fix back and fore color. The subitems only
9541         use their own colors if they are set, otherwise use the listview's
9542         colors. Don't set default colors on constructor for subitem.
9543         Fixes #79315.
9544
9545 2007-03-19  Mike Kestner  <mkestner@novell.com>
9546
9547         * ListView.cs : make box selection for Details views with 
9548         FullRowSelect conform to MS behavior when clicking in the "item" 
9549         column and clicking outside the defined columns.
9550         [Fixes case 5-6 of #80374]
9551
9552 2007-03-19  Chris Toshok  <toshok@ximian.com>
9553
9554         * ScrollableControl.cs: create the controls from within the ctor,
9555         but don't actually add them until our handle is created.  this
9556         fixes a NRE possibility jpobst found (if you override OnLayout in
9557         a subclass, it's called before your ctor).  Also, add a
9558         IsHandleCreated guard to UpdateSizeGripVisibility as well.
9559
9560 2007-03-19  Jackson Harper  <jackson@ximian.com>
9561
9562         * TextBox.cs: Reduce the amount of invalidation we do.
9563         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
9564         some of them are true by default on MS.
9565         - Add some functions to reduce the amount of invalidates we do.
9566         * TextControl.cs: Less invalidation.
9567
9568 2007-03-19  Chris Toshok  <toshok@ximian.com>
9569
9570         [ Fixes #81773, and *seems* to fix #81553 as well ]
9571
9572         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
9573         AccumulateDestroyedHandles.  We need to do it *after* we send
9574         WM_DESTROY, as the user's code can access Control.Handle in
9575         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
9576         move the WM_DESTROY/zombie handling to before the call to
9577         XDestroyWindow.  For some reason without this ordering
9578         FormTest.RecreateHandle hangs.  This ordering is semantically
9579         equivalent, however, as XDestroyWindow is async anyway.
9580
9581 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
9582
9583         * RichTextBox.cs: Reset backcolor_set after setting default.
9584
9585 2007-03-19  Chris Toshok  <toshok@ximian.com>
9586
9587         * ScrollableControl.cs: the scroll position should not effect the
9588         canvas size.  commit patch from georgegiolfan@yahoo.com, which
9589         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
9590         
9591 2007-03-19  Chris Toshok  <toshok@ximian.com>
9592
9593         * ScrollableControl.cs: clean this up a bit.  create the
9594         scrollbars in the ctor and just show/hide them as needed.  Also,
9595         make hscroll_visible/vscroll_visible internal to Recalculate, and
9596         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
9597         everywhere else.  This seems to fix the scrollbars appearing
9598         beneath the content for me (i have *no* idea why that is,
9599         however.)
9600
9601 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
9602
9603         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
9604         some redundacy for stuff in Anchor and Dock that base will take care of.
9605         [Fixes #80762]
9606
9607 2007-03-19  Mike Kestner  <mkestner@novell.com>
9608
9609         * ListView.cs : make box selection for Details views without 
9610         FullRowSelect dependent on the text bounds, not item bounds.
9611         * ListViewItem.cs : add an internal property to obtain the TextBounds
9612         in Details view.  [Fixes case 1-4 of #80374]
9613
9614 2007-03-19  Andreia Gaita  <avidigal@novell.com>
9615
9616         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
9617         we're < 2.0. #78448 && #80316
9618
9619 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
9620
9621         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
9622         have the same style available as the previously selected one.  Also,
9623         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
9624
9625 2007-03-19  Jackson Harper  <jackson@ximian.com>
9626
9627         * TextControl.cs: Add an alignment property that all new lines
9628         will be given.
9629         - Make sure to use the align shift when calculating the line's X
9630         position.
9631         * TextBox.cs: Set the alignment on the document as well as on all
9632         the document lines.
9633
9634 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9635
9636         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
9637           throw if setting the parent of an mdichild that already has an
9638           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
9639           AssemblyProductAttribute in the assembly, use the type's namespace (as
9640           MS seems to do). CreateControl: don't create the handle if the control
9641           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
9642           create handle if the control is not a form. Change FocusInternal to
9643           virtual so that it can be overriden by Form.
9644         * TextBox.cs: Update call to FocusInternal.
9645         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
9646           form is not a toplevel form when it's a mdi child, so update is_toplevel
9647           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
9648           hasn't been created. Show (IWin32Window): Don't allow this overload for
9649           toplevel windows. CenterToParent/CenterToScreen/Select: create the
9650           handle as MS does. SetVisibleCore: if called on a MdiChild and the
9651           parent isn't visible yet, save the visibility and restore it when the
9652           parent is made visible.
9653         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
9654           methods, since the visibility of the scrollbars can be changed from
9655           several places, not only from AutoScroll.
9656           [Fixes #81179]
9657
9658 2007-03-19  Jackson Harper  <jackson@ximian.com>
9659
9660         * RichTextBox.cs: Enable shortcuts by default.
9661         * TextBoxBase.cs: Add conditional shortcuts.  
9662
9663 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
9664
9665         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
9666
9667 2007-03-19  Chris Toshok  <toshok@ximian.com>
9668
9669         [ Fixes bug #80604]
9670         
9671         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
9672         swallow the message we're waiting on, instead of delivering it, as
9673         this is only used for the WM_SHOWWINDOW raised from
9674         MapWindow/UnmapWindow, and the message needs to be generated
9675         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
9676         before doing the Map/Unmap.  Also make sure that the Hwnd is still
9677         alive after the message has been handled.
9678
9679         *before* the window is shown.
9680
9681         * Control.cs (CreateControl): guard a few more things inside the
9682         if (!is_created) block, as we might end up being called again -
9683         yay .net.
9684         (WmShowWindow): call CreateControl if we're showing the control.
9685
9686 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9687
9688         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
9689           controls without a handle if they have any parent with a handle. In
9690           Dispose add a check whether the handle is created or not before
9691           calling BeginInvoke, this removes the need of the extra disposing
9692           parameter (which was bogus anyway since it didn't prevent the
9693           invoke from happening, it only skipped the check for an existing
9694           handle, meaning that the invoke would call on an inexistent
9695           handle).
9696
9697 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
9698
9699         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
9700         appears in taskbar.
9701
9702 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
9703
9704         * MessageBox.cs:
9705         - Fixed a problem that dont show help button for messages with 3 buttons.
9706         - Refactory button size and position calculations, now dont use fixed 
9707         values, also fixed button sizes (#80043) and form's border space.
9708         - AddButton method created, now all other AddButton methods call this one.
9709         - Some other source code cosmetic changes.
9710
9711 2007-03-18  Jackson Harper  <jackson@ximian.com>
9712
9713         * RichTextBox.cs: Don't do this all fonts must match check if
9714         there is only one char selected.
9715
9716 2007-03-18  Jackson Harper  <jackson@ximian.com>
9717
9718         * TreeView.cs: ScrollWindow works properly now, so we don't need
9719         to screw around with the scroll area.  This fixes some artifacts
9720         when expanding and collapsing.
9721
9722 2007-03-18  Jackson Harper  <jackson@ximian.com>
9723
9724         * TextBoxBase.cs: Allow updating the selection position when the
9725         cursor is outside the textarea, but we have a capture.
9726         * TextControl.cs: A special case for when the cursor is outside
9727         the bounds of the TB.
9728         
9729 2007-03-18  Jackson Harper  <jackson@ximian.com>
9730
9731         * TextBoxBase.cs: Remove image pasting code for now.  There is no
9732         way to get an image on the clipboard right now anyways.
9733         * TextControl.cs:
9734         * RichTextBox.cs: Use the new RTF Picture class for pictures.
9735
9736 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
9737
9738         * MessageBox.cs:
9739         - Set window properties in constructor intead of on CreateParams.
9740         - Remove topmost from Window ExStyle.
9741         - Set ShowInTaskbar to false.
9742         - Set form border to FixedDialog.
9743         - Some cosmetic changes and remove unneeded comments.
9744         - It fixes itens 2,3 and 4 of bug #80043.
9745
9746 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
9747
9748         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
9749         none was explicitly set. Fixes part of bug #79949.
9750
9751 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
9752
9753         * ToolStripComboBox.cs: Add AutoComplete*.
9754
9755 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
9756
9757         * ToolStripComboBox.cs: Add FlatStyle.
9758
9759 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
9760
9761         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
9762         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
9763
9764 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9765
9766         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
9767           CheckBox.cs, RadioButton.cs, BindingSource.cs,
9768           DataGridColumnStyle.cs: Remove warnings.
9769
9770 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9771
9772         * Menu.cs: MergeMenu: Check menu argument for null before looping over
9773           it.
9774         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
9775           visibility of mdi child forms. FormSizeChangedHandler: update the
9776           maximized size if size has changed while maximized.
9777         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
9778           creating the handle.
9779         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
9780           avoid creating the handle if not created.
9781         * XplatUI.cs: Update debug output.
9782         * XplatUIStructs.cs: Added ToString's for a couple of structs.
9783
9784 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
9785
9786         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
9787         ProcessCmdKey().
9788         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
9789         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
9790         Implement keyboard shortcuts.
9791
9792 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
9793
9794         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
9795         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
9796         ColorDialog and all derived classes.
9797
9798 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
9799
9800         [ Fixes bug #79828 ]
9801
9802         * ToolBar.cs:
9803         - Rename ToolBarButtonInfor to ToolBarItem.
9804         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
9805         - Maintain an array of ToolBarItem, used instead of ToolBarButton
9806         collection to be able add same button more than one time on a toolbar.
9807         - Refactory all properties and methods to use ToolBarItem. 
9808
9809         * ToolBarButton.cs: 
9810         - Remove all propeties and methods that is now in ToolBarItem.
9811         - Rectangle propery now gets the rectangle from first ToolBarItem to
9812         mimic win32 behavior.
9813         - Size calculation and layout methods also removed.
9814
9815         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
9816         ToolBarItem instead of ToolBarButton to right drawing buttons when
9817         same button/separator was added more than one time to ToolBar.
9818
9819         * ThemeNice.cs: Same as above. 
9820
9821 2007-03-15  Andreia Gaita  <avidigal@novell.com>
9822
9823         * XplatUIX11.cs: Fire extra MouseMove events right after
9824         MouseDown and MouseUp, emulating win32's <censored> behaviour
9825         for apps that rely on it.
9826
9827 2007-03-15  Jackson Harper  <jackson@ximian.com>
9828
9829         * TextControl.cs:
9830         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
9831         it is drawn on the controls client window and there is no NC
9832         area.
9833         - Set the background color to gray on 2.0 when we are readonly.
9834
9835 2007-03-15  Chris Toshok  <toshok@ximian.com>
9836
9837         [ Fixes bug #81144 ]
9838         
9839         * XplatUIX11.cs: implement VirtualScreen independently of
9840         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
9841         property.
9842
9843 2007-03-15  Chris Toshok  <toshok@ximian.com>
9844
9845         * Hwnd.cs: add an internal field for the cached_window_state.
9846
9847         * XplatUIX11.cs: cache the window state, invalidating the cache
9848         (and thus re-querying the X server) only when we see an update to
9849         the _NET_WM_STATE property.
9850
9851 2007-03-15  Chris Toshok  <toshok@ximian.com>
9852
9853         * BindingSource.cs: get a lot of the unit tests working.
9854
9855 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
9856
9857         * Control.cs: Modify UpdateStyles to store distances when bounds >=
9858         0 instead of just bounds > 0.  [Fixes bug #80912]
9859
9860 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
9861
9862         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
9863         and methods.
9864
9865 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
9866         
9867         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
9868         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
9869         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
9870         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
9871
9872 2007-03-15  Chris Toshok  <toshok@ximian.com>
9873
9874         [ Fixes #81101 ]
9875         
9876         * Control.cs: add Ivan's fix for 81101, with a slight modification
9877         - you can set control.Target to null.
9878
9879 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
9880
9881         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
9882         HideDropDown, use Hide instead to prevent an NRE.
9883         [Fixes bug #81147]
9884
9885 2007-03-14  Jackson Harper  <jackson@ximian.com>
9886
9887         * TextBoxBase.cs: Mess with the creation stuff a little. We need
9888         to calculate the document before the handle is created, in some
9889         cases. (Actually just one case).
9890
9891 2007-03-14  Jackson Harper  <jackson@ximian.com>
9892
9893         * TextBoxBase.cs: Need to display the caret after letting the base
9894         wndproc handle the focus methods, because the caret display
9895         methods check the focus state.
9896         - Try to display the caret after updating it's position with SelectWord.
9897         - Don't need to do an immediate update on this recalc, since there
9898         will be an invalidate anyways.
9899
9900 2007-03-14  Jackson Harper  <jackson@ximian.com>
9901
9902         * TreeView.cs: Some workarounds so that we can match event order a
9903         little better.
9904
9905 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
9906
9907         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
9908         #80803. Avoid NullReferenceException when Control does not have
9909         parent. Fixed different blinkstyle issues. Only subscribe to Tick
9910         event a single time. Only draw error icon when control is created and
9911         visible. Fixes failing unit tests.
9912
9913 2007-03-14  Andreia Gaita  <avidigal@novell.com>
9914
9915         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
9916         Selecting events. Fire Leave and Enter events when changing tabs.
9917
9918 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
9919
9920         * TreeView.cs: Add TreeViewNodeSorter.
9921         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
9922
9923 2007-03-14  Chris Toshok  <toshok@ximian.com>
9924
9925         * Form.cs: go ahead and remove the RecreateHandles that jpobst
9926         removed earlier and I had him add back it.  It turns out metacity
9927         *does* in fact handle the MOTIF_WM_HINTS property changing, it
9928         just doesn't redraw the window titlebar until you resize the
9929         window.  This also means we aren't recreating the entire window
9930         hierarchy on X when you change this property.  And it looks better
9931         on windows, too.
9932
9933 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9934
9935         * ListViewItem.cs:
9936         * ListView.cs: Collecting selection information
9937         is now done in SelectedIndexCollection rather than in
9938         SelectedListViewItemCollection. This is done so we can
9939         have the selection information code in one single place
9940         (virtual mode selection information entirely depends on
9941         SelectedIndexCollection).
9942
9943 2007-03-13  Miguel de Icaza  <miguel@novell.com>
9944
9945         * ErrorProvider.cs: Add stubs for ISupportInitialize
9946
9947 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9948
9949         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
9950         in the right order with the right values, from the Checked property, 
9951         just as MS does (instead of triggering them from ListView).
9952
9953         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
9954
9955 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9956
9957         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
9958         the correct handler in OnItemCheck method (ItemCheckEventHandler 
9959         instead of EventHandler). This used to throw an InvalidCastException.
9960
9961 2007-03-13  Jackson Harper  <jackson@ximian.com>
9962
9963         * TextBoxBase.cs: Calculate the document before the handle is
9964         created, so there isn't an extra invalidate called.
9965
9966 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
9967
9968         * Form.cs: Don't set owner in ShowDialog until we are sure
9969         that we aren't going to throw an exception.  [Fixes bug #80773]
9970
9971 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
9972
9973         * TreeView.cs: Make it compile.
9974
9975 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
9976
9977         * Control.cs: Another place we don't call SizeFromClientSize.
9978         * Form.cs: Another place we don't call SizeFromClientSize.
9979         [Fixes bug #81125]
9980
9981 2007-03-12  Jackson Harper  <jackson@ximian.com>
9982
9983         * TreeView.cs: Basically emulating some strangness here with
9984         exanding nodes and setting node positions when windows aren't
9985         created.
9986         - Also attempting to walk the node tree less than previously, and
9987         just use visible order calculations for determining offsets.
9988         - oops made scrolling backwards.
9989         * TreeNode.cs: We need to start nodes with a zero visible order,
9990         because the order calcs are based on the first nodes order.
9991
9992 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
9993
9994         * Form.cs: Don't exit the program if RecreateHandle is called on
9995         the main form.
9996
9997 2007-03-12  Chris Toshok  <toshok@ximian.com>
9998
9999         * XEventQueue.cs: remove the use of PostQuitState.
10000
10001         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
10002         WM_QUIT message in GetMessage, return false (and if we're in the
10003         nested WaitForHwndMessage, repost the WM_QUIT message).
10004
10005 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
10006
10007         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
10008         or the MaximizeBox properties.  [Part of bug #80640]
10009
10010 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
10011
10012         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
10013         no links.
10014
10015 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
10016
10017         * ToolStripItem.cs: Fix some tests I broke by checking Visible
10018         instead of visible.
10019
10020 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
10021
10022         * FileDialog.cs: Use text of File name combobox to determine what
10023         files the user selected. Added tokenizer to parse the file names.
10024         Fixes bug #81123.
10025
10026 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
10027
10028         * Control.cs: We can't call SizeFromClientSize in the constructor,
10029         but we still need to do the same work, so make an internal version.
10030         [Fixes bug #80621]
10031
10032 2007-03-12  Jackson Harper  <jackson@ximian.com>
10033
10034         * TreeView.cs:
10035         * TreeNode.cs:
10036         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
10037         IsExpanded.
10038
10039 2007-03-12  Jackson Harper  <jackson@ximian.com>
10040
10041         * TextBoxBase.cs: Now that the handles are being created a little
10042         later, we need to make sure that the document is recalculated when
10043         the handle is created.
10044
10045 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
10046
10047         * Theme.cs: GetLinkFont abstract method added.
10048         
10049         * LinkLabel.cs: 
10050         - Remove CalcTrimRectangle, no longer needed.
10051         - Factor also remove, position issues must be fixed in libgdiplus.
10052         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
10053         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
10054         care about font used to draw links.
10055         - Set TabStop to true when control is "Selectable", control is selectable
10056         when have one or more links. Fixes #80501 (test case is also added).
10057         - Set the LinkArea values after links change, LinkArea values must be
10058         based in first link position and size, a test case was created.
10059         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
10060         the attribute must be true LinkArea.Length > 0. The same was applied to
10061         TabStop.
10062         
10063         * ThemeWin32Classic.cs: 
10064         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
10065         in draw method.
10066         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
10067         color change.
10068         - Draw focus rectangle for every parts focused, including parts that 
10069         is on another line, its because regions returns various rectangles
10070         and not only one. Needed to mimic W32 look.
10071         - Uses Graphics.Clip to delimite region painted, it mean that now 
10072         complete text is passed to DrawString, with this we solve layout
10073         issues without create another text renderer.
10074         - Uses Region.Intersect to fix some flickers problems, now only needed
10075         parts will redrawed.
10076         - This changes fixes #79614 and some other unreported issues, on Linux 
10077         some layout problems still remain, the problem is under 
10078         MeasureCharacterRanges but it is an libgdiplus bug.
10079
10080 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
10081
10082         * TextBox.cs: Set for foreground color.
10083         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
10084         this is already done in Control.
10085
10086 2007-03-10  Jackson Harper  <jackson@ximian.com>
10087
10088         * TextBox.cs: Set the background color, but reset the
10089         backcolor_set flag which is just for the user setting the
10090         background color.
10091
10092 2007-03-09  Chris Toshok  <toshok@ximian.com>
10093
10094         * Control.cs: really remove the call to XplatUI.SetVisible from
10095         CreateHandle(), like I said I did when I merged the branch.
10096
10097         * BindingSource.cs: implement some more of this stuff.
10098
10099 2007-03-09  Jackson Harper  <jackson@ximian.com>
10100
10101         * TextBox.cs: Don't explicitly set our background colors.
10102         * TextControl.cs:
10103         * TextBoxBase.cs: Draw readonly text.
10104         - Need to invalidate when backcolor or readonly are changed.
10105         
10106 2007-03-09  Jackson Harper  <jackson@ximian.com>
10107
10108         * TextBoxBase.cs: Don't set the forecolor until the handle is
10109         created.
10110         - Do not raise OnPaint, and removed some old debug code.
10111
10112 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
10113
10114         * ScrollableControl.cs: Fix mouse wheel scrolling.
10115
10116 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
10117
10118         * Control.cs: Wire up MouseDoubleClick event.
10119
10120 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
10121
10122         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
10123         top or bottom.
10124         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
10125         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
10126         item is added.  This logic was moved to ToolStrip.OnItemAdded.
10127         [Fixes bug #81090]
10128
10129 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10130
10131         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
10132
10133 2007-03-08  Jackson Harper  <jackson@ximian.com>
10134
10135         * TreeView.cs: Show the correct image for selected node (this used
10136         to work, not sure how the code got deleted). Also implemented 2.0 feature
10137         SelectedImageKey.
10138
10139 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10140
10141         * ListView.cs:
10142         * ListViewItem.cs: Cache index in items when retrieving them
10143         in VirtualMode.
10144
10145 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
10146
10147         * ToolStripItem.cs: Don't return the explicit_size if we are using 
10148         AutoSize.  Fixes invalidation issue when user has explicitly set a
10149         size and has AutoSize = true.
10150
10151 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
10152
10153         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
10154
10155 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
10156
10157         * DataGridView.cs: Remove event handler from DataView when a
10158         DataTable is used as DataSource.
10159
10160 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
10161
10162         * Control.cs: Create internal setter for client_size to allow it to be
10163         set without triggering resizing code.
10164         * Form.cs: Calculate client_size in constructor, only change client_size
10165         in FormBorderStyle property if Handle has been created.
10166         [Fixes #80574, #80791]
10167
10168 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
10169
10170         * SystemInformation.cs: Add TerminalServerSession.
10171
10172 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
10173
10174         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
10175         TreeView code.
10176
10177 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
10178
10179         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
10180         Handle before we were supposed to.  Now checks ActivateOnShow property
10181         in Control.
10182         * Control.cs: Add internal ActivateOnShow property.
10183         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
10184         for ActivateOnShow.
10185         * Hwnd.cs Remove no longer needed no_activate field.
10186
10187 2007-03-07  Jackson Harper  <jackson@ximian.com>
10188
10189         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
10190         2.0 properties
10191         * DrawTreeNodeEventHandler.cs: Add
10192         * DrawTreeNodeEventArgs.cs: Correct default value.
10193         
10194 2007-03-07  Chris Toshok  <toshok@ximian.com>
10195
10196         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
10197         to be called before NativeWindow.WndProc.  Put the HwndCreating
10198         magic there to hook up our Hwnd's to handles.
10199
10200 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
10201
10202         * DataGridView.cs: Comment out debug code.
10203
10204 2007-03-07  Chris Toshok  <toshok@ximian.com>
10205
10206         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
10207         to make the rest of the world happy]
10208
10209         * Control.cs (CreateHandle): there's no need to call
10210         XplatUI.SetVisible here, it's effectively done by
10211         XplatUI.CreateWindow on X now, and always was on windows.
10212
10213         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
10214         shortcircuit out of the loop if we have a message loop running on
10215         this thread.
10216
10217         [Changelog from merge]
10218
10219         2007-03-05  Chris Toshok  <toshok@ximian.com>
10220
10221                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
10222                 causes handle creation.
10223
10224         2007-02-28  Chris Toshok  <toshok@ximian.com>
10225
10226                 * ApplicationContext.cs: Add a flag to make sure we only raise the
10227                 ThreadExit event once (ExitThreadCore can be indirectly called
10228                 from a few places.)  I don't like the additional flag, but it
10229                 makes the event ordering/count correct.
10230
10231                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
10232                 without locking the collection.  An enumerator doesn't give us any
10233                 protection from modification anyway.  Lock the thread hash and
10234                 replace the complicated enumerator loop with a foreach.
10235                 (Application.CloseForms): make internal so it can be called from
10236                 ApplicationContext.  This should probably be moved to MWFThread.
10237                 (Application.ExitThread): don't call MWFThread.Current.Exit()
10238                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
10239                 when the runloop exits (in response to WM_QUIT.)
10240                 (Application.RunLoop): add a comment (and check) for
10241                 context.MainForm being null after setting context.MainForm.Visible
10242                 = true.  This is because you're perfectly free to dispose of a
10243                 form in VisibilityChanged.  Chalk this up to another case where we
10244                 need to synchronously generate WM_ACTIVATE from Control.Show.
10245                 Also, add handling for WM_QUIT here so we'll exit the loop.
10246                 
10247                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
10248                 fact that we don't wait if we're only unmapping the whole_window
10249                 makes me a bit nervous, but it doesn't seem to cause any problems
10250                 yet.
10251
10252                 also, add a comment about the stupid, broken and wrong resetting
10253                 of PostQuitState to false in GetMessage().
10254
10255                 In PostQuitMessage, we need to add a WM_QUIT message to the
10256                 thread's queue.  We use the FosterParent to get the right
10257                 handle/hwnd/queue.
10258
10259                 Lastly, in SetVisible, we need to unmap both windows, since the
10260                 waiting only happens when we're unmapping the client window.  So
10261                 now, the *only* time we unmap just the whole_window is in the hack
10262                 for resizing a control to 0,0.
10263                 
10264         2007-02-21  Chris Toshok  <toshok@ximian.com>
10265
10266                 * Application.cs (CloseForms): rewrite this so that we don't
10267                 modify the list while we're traversing it.
10268
10269         2007-02-20  Chris Toshok  <toshok@ximian.com>
10270
10271                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
10272                 of OnHandleCreated.
10273                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
10274                 handle is created.  otherwise we'll create it here.
10275                 (VerticalScrollEvent): same here.
10276
10277                 * Application.cs (CloseForms): call Form.Dispose, don't post
10278                 WM_CLOSE_INTERNAL.
10279
10280                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
10281                 here. Application should Dispose() of the Form's.
10282
10283                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
10284                 WM_DESTROY as well.
10285                 (MapWindow,UnmapWindow): only actually do the waiting for
10286                 SHOWWINDOW if the control we're dealing with is a Form.
10287                 (CreateWindow): if the control isn't a form, SendMessage
10288                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
10289
10290                 * Control.cs (SetVisibleCore): always use is_visible here, not
10291                 value.  If we use value, we can end up re-setting something
10292                 visible if, for instance, you do Control.Hide() in a delegate
10293                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
10294
10295         2007-02-20  Chris Toshok  <toshok@ximian.com>
10296
10297                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
10298                 the message we need.  PeekMessage returning false should not be a
10299                 condition under which we exit the loop.
10300
10301         2007-02-15  Chris Toshok  <toshok@ximian.com>
10302
10303                 * Control.cs (Refresh): only refresh if we've got a handle and are
10304                 visible.
10305                 (CreateAccessibilityInstance): CreateControl() here.
10306                 (UpdateChildrenZOrder): complicate the code loop even more by
10307                 taking into account controls that haven't had their handle
10308                 created, and those that aren't visible.  But on the flip side,
10309                 simplify the code by splitting it into two loops.  one which
10310                 builds up the list of child controls we're interested in, and the
10311                 other that sets the z order of those children.
10312
10313         2007-02-14  Chris Toshok  <toshok@ximian.com>
10314
10315                 * Control.cs: Control.AccessibilityObject causes the control to be
10316                 created, not just the handle.
10317
10318         2007-02-14  Chris Toshok  <toshok@ximian.com>
10319
10320                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
10321                 problem on X where a window might have its handle created (and be
10322                 visible) while the window is unmapped.  calling XConfigureWindow
10323                 on an unmapped window is bad, and generates X errors.
10324
10325         2007-02-13  Chris Toshok  <toshok@ximian.com>
10326
10327                 * Control.cs (CreateHandle): don't loop over our children setting
10328                 their parent here.  do it when in WndProc when we're shown.
10329                 (UpdateChildrenZOrder): make this internal so we can call it from
10330                 ScrollableControl.
10331                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
10332                 creating its handle.  Also, remove the calls to PerformLayout from
10333                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
10334                 OnVisibleChanged only seems to be called directly here for the
10335                 toplevel control.  It's propagated down the window hierarchy by
10336                 calls to child.OnParentVisibleChanged.
10337                 (OnVisibleChanged): don't do layout here - it's done (oddly
10338                 enough, according to a glance at stack traces on ms.net..) in
10339                 ScrollableControl.
10340                 
10341                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
10342                 z order of our children before calling PerformLayout.
10343
10344         2007-02-12  Chris Toshok  <toshok@ximian.com>
10345
10346                 [big change, fixes #80020]
10347                 
10348                 * AccessibleObject.cs: we need to make owner internal again to fix
10349                 some of ControlAccessibleObject.
10350
10351                 * Control.cs: lots of changes here.  add support for WM_CREATE,
10352                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
10353                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
10354                 we create child controls.  leave the MonoTODO's for the
10355                 accessibility calls, but fix the exceptions so the tests pass.
10356
10357                 Add the InvalidOperationExceptions to Invoke methods, and remove a
10358                 couple of InvokeInternal methods we aren't using.
10359                 
10360                 Also, add a couple of CreateHandle calls in places where we know
10361                 the handles are being created but our code doesn't reference
10362                 .Handle.
10363
10364                 Make SetVisibleCore call OnVisibleChange if the handle isn't
10365                 created.  If the handle is created, we rely on XplatUI.SetVisible
10366                 generating the event synchronously.
10367                 
10368                 Lastly, make sure we don't use this.Handle inside CreateHandle,
10369                 because we can call back into client (and that code can dispose of
10370                 the control).
10371
10372                 * XplatUIStructs.cs: misc/cleanup.
10373
10374                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
10375                 although we don't populate the wParam properly.
10376                 (CreateWindow): generate WM_CREATE.
10377                 (MapWindow,UnmapWindow): make these calls synchronous, at great
10378                 performance expense (particularly in the unmap case), to match
10379                 win32 behavior.
10380
10381                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
10382                 to call it.
10383                 (set_MdiParent): don't recreate the handle unless it's been
10384                 created already.
10385                 
10386                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
10387                 it's created.
10388
10389                 * NativeWindow.cs: this is probably the weirdest part of the
10390                 patch.  We need a way to link up the window being created to the
10391                 WM_CREATE message.  Since we can only be creating one window at a
10392                 time on a given thread, we keep track of a per-thread reference so
10393                 we can dispatch it properly.  We also need to keep track of the
10394                 Hwnd currently being created so that the win32 backend doesn't
10395                 have problems.
10396                 
10397                 * XplatUIWin32.cs: a similar change to the one we made in
10398                 NativeWindow.cs.
10399
10400 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
10401
10402         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
10403         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
10404         to draw the menu shortcut string.
10405
10406 2007-03-07  Jackson Harper  <jackson@ximian.com>
10407
10408         * TreeNode.cs: Add the 2.0 collapse method.
10409
10410 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
10411
10412         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
10413
10414 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
10415
10416         * DataGridView.cs: Change DataSource will clear column and row
10417         lists. Call Invalidate() to reflect DataSource change.
10418
10419 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
10420
10421         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
10422         and a new row is added to it.
10423
10424 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
10425
10426         * DataGridView.cs: Add columns when DataSource is en empty list but
10427         is a System.Data.DataView (from a System.Data.DataTable).
10428
10429 2007-03-06  Andreia Gaita  <avidigal@novell.com>
10430
10431         * Label.cs: Implement AutoEllipsis (2.0)
10432
10433 2007-03-06  Jackson Harper  <jackson@ximian.com>
10434
10435         * TreeView.cs: Implement 2.0 TopNode setter property.
10436         - Use a local var instead of the skipped_nodes field for computing
10437         how many nodes to skip.  Otherwise we won't scroll because the
10438         valuechanged handler checks if skipped_nodes is equal to the new
10439         value.
10440         - Implement 2.0 Sort method.
10441         - Add useless 2.0 DoubleBuffer property
10442         - Implement 2.0 LineColors property.  Lets you change the color of
10443         the lines in the tree. Terribly useful for creating non cohesive
10444         desktops.
10445         - Implement 2.0 image key feature.
10446
10447 2007-03-06  Jackson Harper  <jackson@ximian.com>
10448
10449         * TreeView.cs: We can't get the bounds of the nodes before raising
10450         the AfterSelect event, because that event could change the node's
10451         bounds (scrolling, font change, etc).
10452
10453 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10454
10455         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
10456         * Form.cs: Don't recreate handle when creating FormWindowManager, just
10457           update window styles. In CreateParams us VisibleInternal instead of
10458           VIsible to get the actual visible flag set for this form.
10459         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
10460           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
10461           handle the case when the form is already maximized, in which case
10462           it should be restored. Fixes #81043.
10463
10464 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10465
10466         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
10467
10468 2007-03-05  Jackson Harper  <jackson@ximian.com>
10469
10470         * TreeViewHitTestInfo.cs: implement.
10471
10472 2007-03-05  Jackson Harper  <jackson@ximian.com>
10473
10474         * InternalWindowManager.cs: class status fix.
10475
10476 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10477
10478         * InternalWindowManager.cs: All windows that have a parent
10479         are confined to their parent when they're being moved.
10480         Fixes #80822.
10481
10482 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
10483
10484         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
10485         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
10486
10487 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10488
10489         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
10490           buttons invisible before deciding which ones should be visible
10491           (fixes minimize/maximize buttons showing up in toolwindows). Remove
10492           an unused variable.
10493         * InternalWindowManager.cs: Remove warning.
10494
10495 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10496
10497         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
10498         to throw an InvalidOperationException is virtual mode is being used.
10499
10500 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
10501
10502         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
10503         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
10504         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
10505         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
10506         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
10507         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
10508
10509 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10510
10511         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
10512           driver.KeyboardDelay from XplatUI.KeyboardDelay 
10513         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
10514           (patch by Sergey Volk)
10515
10516 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10517
10518         * ToolWindowManager.cs: Added, contains logic for
10519           tool windows.
10520         * CreateParams.cs: Add a few helper methods and an
10521           internal variable to know which control the CreateParams belongs
10522           to.
10523         * Control.cs: Call Form.ChangingParent when the
10524           parent is about to be changed.
10525         * XplatUIX11.cs: DeriveStyles (): Set
10526           caption_height for all windows that have captions and are children.
10527           Update to use ToolWindowManager instead of InternalWindowManager
10528           for ToolWindows.
10529         * XplatUIWin32.cs: Set fake window styles for all
10530           windows that have window managers.
10531         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
10532           now duplicated for mdi windows when they are
10533           maximized, first for the buttons the window itself has, then for
10534           the buttons that appear in the menu bar. Makes things a little
10535           easier). Updated UpdateWindowDecorations, SetWindowState and the
10536           mouse eventhandlers accordingly.
10537         * Form.cs: Add ChangingParent (), contains the
10538           logic of what should happen when the parent changes. In MdiParent
10539           don't set things that ChangingParent () is doing. When handling
10540           WM_CLOSE, we can close the form if there are any other modal forms
10541           and the current form is a descendent of the modal form.
10542         * InternalWindowManager.cs: A lot of refactoring,
10543           the title buttons are now extracted to a separate container class
10544           that takes care of all button code (clicks, tooltips, etc). Moved
10545           Iconic|Maximized|Normal Bounds properties to this class from
10546           MdiWindowManager, so that the window state logic can succeed for
10547           other than mdi wm's. Implemented general window state change logic.
10548           Moved CreateButtons to ThemeWin32Classic, since the theme might
10549           override which buttons are available when as well as the exact
10550           location.
10551         * FormWindowManager.cs: Added, contains logic for
10552           normal forms.
10553         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
10554           which buttons go where (and if they are at all visible). 
10555           Removed special handling of maximized windows, since they aren't special. 
10556           In DrawManagedWindowDecorations don't try to draw the text if it is
10557           empty.
10558         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
10559           use whatever the wm gives us.
10560
10561 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
10562
10563         * ButtonBase.cs: Add 2.0 properties.
10564         * Button.cs: Override Draw for 2.0.
10565         * Control.cs: Add Entered and Selected properties.
10566         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
10567         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
10568         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
10569         buttons.
10570         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
10571
10572 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
10573
10574         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
10575
10576 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
10577
10578         * XplatUIWin32.cs: Register a new class with Windows each time we get
10579         a new ClassStyle.  [Fixes bugs #79432, #80817]
10580         * Controls.cs: Set the correct ClassStyle in CreateParams.
10581         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
10582
10583 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
10584
10585         * ListView.cs: Add fireEvent argument to ReorderColumn since the
10586         ColumnReordered event must not be signaled when modifying DisplayIndex
10587         of a ColumnHeader. Added internal ReorderColumns method which takes
10588         care of drawing, and updating the internal DisplayIndex of the
10589         ColumnHeader. Added AddColumn method which is invoked from
10590         ColumnHeaderCollection when adding or inserting columns, and which
10591         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
10592         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
10593         Recalculated dispay indices after removing a ColumnHeader.
10594         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
10595         match MS. Allows last display index to be returned after ListView
10596         is disposed. Update actual location of ColumnHeader when DisplayIndex
10597         is modified.
10598
10599 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
10600
10601         * LinkLabel.cs: Improve CalcTrimRectangle.
10602         
10603         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
10604
10605 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
10606
10607         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
10608         get rectangle as a result value.
10609
10610 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
10611
10612         * LinkLabel.cs: Theres some diferences between rectangle return from 
10613         MeasureCharacterRanges and the area used for DrawString to fix this 
10614         CalcMeasurementFactor method was created, it calcules the diferences
10615         to be use later to adjust rectangle in draw operations. Fixes #80473.
10616         
10617         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
10618         to adjust draw rectangle.
10619
10620 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
10621
10622         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
10623         text and some other changes to reduce and optimize source code.
10624
10625 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
10626
10627         * RadioButton.cs: Implement 2.0 event.
10628         * RelatedImageListAttribute.cs: Implement new class.
10629
10630 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
10631
10632         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
10633
10634 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
10635
10636         * CheckBox.cs: Implement 2.0 functionality.
10637
10638 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10639
10640         * ListView.cs: Refactor Add and AddRange methods of
10641         ListViewItemCollection, to not update the ListView
10642         everytime an item is added in AddRange. Also move the update
10643         code to a new CollectionChanged method, and call it
10644         from other methods that need it as well (this should also fix some
10645         bugs when Sorting is used).
10646
10647 2007-02-27  Jackson Harper  <jackson@ximian.com>
10648
10649         * TextControl.cs: Try to never let the caret stay in a non-text
10650         tag.
10651         * TextBoxBase.cs: Update the caret.
10652
10653 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
10654
10655         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
10656         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
10657         delete POINT structure, duplicate of one in XplatUIStructs.
10658         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
10659
10660 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
10661
10662         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
10663         edit box since otherwise the Label would immediately be set (even if
10664         the user did not modify the label). In OnKeyDown set Handled to true
10665         if Return or Escape was pressed. In ColumnHeaderCollection unlink
10666         columns that are to be removed. In ListViewItemCollection unlink items
10667         that are to be removed.
10668
10669 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
10670
10671         * TextRenderer.cs: If we set a GDI clip region, we need to clear
10672         it when we are done.  [Fixes bug #80949]
10673
10674 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
10675
10676         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
10677
10678 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10679
10680         * ListView.cs: I forgot to commit the changes for ListView 
10681         in my previous patch.
10682
10683 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
10684
10685         * Clipboard.cs: Partially implement an overload of SetDataObject.
10686         * Form.cs: Implement ShowWithoutActivation.
10687         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
10688
10689 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10690
10691         This is a first set of changes to make the Virtual mode works,
10692         by avoiding the retrieval of ListViewItem instances until
10693         draw time.
10694
10695         * ListView.cs: Store item position in the ListView instead of the
10696         ListViewItem, this way we don't request the Bounds property of
10697         ListViewItem inside the ListView calculations, as well as cache the item
10698         size in item_size field. Store indexes instead of ListViewItem
10699         instances in the matrix used by icon view. Add a ItemMatrixLocation
10700         struct to hold the row and col info of the matrix info.
10701
10702         * ListViewItem.cs: Don't store the location anymore, and only cache
10703         the rectangles for GetBounds. Use the ListView.GetItemLocation
10704         method to retrieve the actual location.
10705
10706 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
10707
10708         * TextRenderer.cs: Add clipping support, thanks to George.
10709         [Fixes bug #80949]
10710
10711 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
10712
10713         * ListViewItem.cs: Cancel label edit when item is removed from 
10714         ListView.
10715         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
10716         event before the edit textbox is displayed.  Added CancelEdit method
10717         which is used end to editing while ignoring the value set by the
10718         user. In EndEdit, set focus to ListView to avoid losing focus to
10719         other controls. In ListViewItemCollection.Clear, cancel editing of
10720         any of the items.  In Remove, cancel editing of item being removed.
10721         Avoid udplicate code by modifing RemoveAt to invoke Remove.
10722
10723 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
10724
10725         * FileDialog.cs: Update FSEntry when move is successful. Fixes
10726         bug #80948.  
10727
10728 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
10729
10730         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
10731         compatible with non X11 systems. Fixes #80901.
10732
10733 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
10734
10735         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
10736         whether the item should be unselected and reselect. We do no want this
10737         when we're starting to edit the label. Do not fire the 
10738         SelectedIndexChanged event from ListView when its already been fired
10739         by modifying ListViewItem.Selected. Fixes bug #80943.
10740
10741 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
10742
10743         * TextRenderer.cs: Previos commit logic was backwards.
10744
10745 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
10746
10747         * TextRenderer.cs: Don't add padding on MeasureText if we were
10748         sent the NoPadding flag.
10749
10750 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
10751
10752         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
10753         after DrawButton. To prevent image overlaps button borders SetClip and 
10754         ResetClip added before and after draw image. Fixes #79129.
10755
10756 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
10757
10758         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
10759         window size, it fix problem when you run under win32 that theres
10760         Size diferent than ClientSize. Also fix controls size and positions
10761         to mimic Win32. Fixes #80837.
10762
10763 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
10764
10765         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
10766         menu area to fix some problems for non X11 systems. Fixes #80613.
10767
10768 2007-02-22  Jackson Harper  <jackson@ximian.com>
10769
10770         * TreeNode.cs: When a node is expanded, set its is_expanded flag
10771         even if it doesn't have any children.
10772
10773 2007-02-22  Jackson Harper  <jackson@ximian.com>
10774
10775         * TreeView.cs: Calculate the top node 'on the fly', this
10776         eliminates issues where you need to click on the tree before
10777         scrolling it to get the top node computed correctly.
10778         * TreeNodeCollection.cs: We don't need to mess with the top node
10779         anymore.
10780
10781 2007-02-22  Jackson Harper  <jackson@ximian.com>
10782
10783         * DataGridViewRow.cs: Fix typo so height can actually be set.
10784         Patch by Peter Grimm.
10785
10786 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
10787
10788         * FileDialog.cs: Fixed support for renaming files and directories.
10789         * ListView.cs: Do not lose focus when edit is canceled. Process
10790         Escape as regular key (to prevent closing of dialogs).
10791
10792 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
10793
10794         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
10795         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
10796
10797 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
10798
10799         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
10800         did not modify label.
10801         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
10802         modified the text. Reset Label when user presses Escape in edit mode.
10803         Move focus to ListView after having cancelled or finished editing the
10804         label.
10805
10806 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
10807
10808         * ComboBox.cs: Removed unnecessary initializations. Marked items field
10809         private. Clear textbox when Text is set to null and SelectedIndex is
10810         already -1.
10811         * FileDialog.cs: Removed unnecessary initializations. Removed 
10812         workarounds for ComboBox bugs that are now fixed. Modified
10813         DefaultExt, InitialDirectory and Title property to change null to
10814         zero-length string in getters. Avoid directly accessing fields.
10815
10816 2007-02-20  Jackson Harper  <jackson@ximian.com>
10817
10818         * TextControl.cs: Remove RecalAlignments call, that was some
10819         debugging leftovers.
10820         - Don't use the line indent when we shouldn't.
10821         * RichTextBox.cs: Add support for paragraph left indents.
10822
10823 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10824
10825         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
10826         Seems like the class status pages doesn't catch params differences.
10827
10828 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
10829
10830         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
10831
10832 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
10833
10834         * ComboBox.cs: Setting Text should have no effect if item text of
10835         selected item exactly matches value. First lookup text using
10836         case-sensitive comparison, and fallback to case-insensitive comparison.
10837         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
10838         allow startIndex to be last index. Changed ArgumentOutOfRangeException
10839         paramname to match MS. Restart from first item if string is not found
10840         after startIndex. Fixed paramname of ArgumentNullException that is
10841         thrown for null value in ObjectCollection.Contains.
10842
10843 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
10844
10845         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
10846
10847 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10848
10849         * ListControl.cs: In SelectedValue use value.Equals to compare for
10850         equality instead of ==, otherwise it will fail for strings.
10851         Fixes #80794.
10852
10853 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10854         
10855         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
10856         since the caret won't show up unless ShowSelection is true. 
10857         Fixes #80795.
10858
10859 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10860
10861         * Application.cs: When disabling all forms but the main form, do not
10862           disable any descendants of the main form (such as mdi children or
10863           other parented forms). Fixes #80822 on Windows.
10864         * Form.cs: If we have a parent, set the WS_CHILD style.
10865         * Control.cs: Update the window styles if the control whose parent has
10866           changed is a form (the WS_CHILD style has to be switched).
10867
10868 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
10869
10870         * XplatUIStructs.cs: MsgUIState structure added.
10871
10872 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
10873
10874         * FileDialog.cs: Removed need for separate fileName field. On 2.0
10875         profile, do not check filename(s) for illegal character if filename(s)
10876         were set non-interactively but always check on 1.0 profile. Fixed NRE
10877          in DefaultExt and only strip off first leading dot. Improve exception
10878         message when invalid Filter is set. Do not ignore InitialDirectory if
10879         it does no exist. Store specified Title, and if empty use default
10880         title (depending on type of dialog). Added an internal DialogTitle 
10881         property for retrieving dialog title. Fixed logic of displayed dir to
10882         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
10883         string as its buggy.
10884         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
10885         FileName is a zero-length string (it can never be null). Override 
10886         DialogTitle property to set default title of dialog box.
10887         * SaveFileDialog.cs: Override DialogTitle property to set default
10888         title of dialog box.
10889
10890 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
10891
10892         * FileDialog.cs: Modify default text of filename and filetype labels
10893         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
10894         after we've updated the SelectedIndex. Fixes part of bug #80887.
10895         * SaveFileDialog.cs: Set text of filetype label.
10896
10897 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10898
10899         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
10900         label field. Needed by latest Jackson's fixes for ListView.
10901
10902 2007-02-16  Andreia Gaita  <avidigal@novell.com>
10903
10904         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
10905         print preview images.
10906
10907 2007-02-16  Jackson Harper  <jackson@ximian.com>
10908
10909         * ListView.cs: Make AfterLabelEdit work correctly.
10910         * FileDialog.cs: After changing the name of the folder, we have to
10911         make sure that it is created, or that we pop up an error because
10912         it already exists.
10913
10914 2007-02-16  Jackson Harper  <jackson@ximian.com>
10915
10916         * X11Dnd.cs: Implement aliases on mime handlers, so things like
10917         System.String are mapped to text.
10918         - Handle dataobjects, getting all the possible formats out of them
10919         - We dont need the drag event args before we give feedback. This
10920         allows feedback cursors to be immediate before selections have
10921         been converted.
10922
10923 2007-02-16  Jackson Harper  <jackson@ximian.com>
10924
10925         * TextBoxBase.cs: Modified the method for inserting images to
10926         taking a line and position instead of tag and position.
10927         * RichTextBox.cs: Handle PngBlip data by inserting the png image
10928         into the RTF file.
10929         * TextControl.cs: Allow images to be inserted as the first tag of
10930         a line.
10931         - Fix some off by one issues when we assume the first tag is a
10932         text tag, not an image tag.
10933
10934 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10935
10936         * ListView.cs: Set focus to ListView when ItemControl gets a
10937         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
10938         Fixes part of #80467.
10939
10940 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10941
10942         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
10943           validate Text input (if null or empty string reset Value to default
10944           value). Fixes #80830.
10945
10946 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10947
10948         * ListView.cs: Set owner as null for columns and items when
10949         Dispose is invoked. Fixes #80607.
10950
10951 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
10952
10953         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
10954         showing DropDowns, don't show a Grip when doing Flow layout.
10955         [This fixes the toolbox in PDN 2.72.]
10956         * ToolStripItem.cs: Add Anchor property and some internal properties to
10957         reduces needed changes to FlowLayout.
10958         * ToolStripOverflow.cs: Remove unused variable.
10959         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
10960         use it in the layout calculations.
10961
10962 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
10963
10964         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
10965         reported in #79640.
10966         
10967         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
10968         size calculation.
10969
10970 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
10971
10972         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
10973         MeasureString format, it can make button very large in some cases, it is
10974         strange but is what win32 do.
10975
10976 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
10977
10978         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
10979         size calculation.
10980
10981         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
10982         rendering, the value is based on MenuAccessKeysUnderlined.
10983
10984 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
10985
10986         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
10987         for most themes.
10988         
10989         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
10990         
10991         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
10992         and use MenuAccessKeysUnderlined instead.
10993
10994 2007-02-13  Andreia Gaita  <avidigal@novell.com>
10995
10996         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
10997         A selected control would not get a Focus call if:
10998                 - the default active control of the container is the same as
10999                   the one that was selected
11000                 - we are switching from one container to another
11001         Under these conditions, the container being selected already has
11002         an active_control, which is the same as the one being activated, 
11003         so set_ActiveControl would always return and not send the Focus
11004         call. Fix to check if the currently active control of the container
11005         is actually focused.
11006
11007 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
11008
11009         * StatusStrip.cs: Implement the spring layout.
11010         * ToolStripControlHost.cs: Make sure the hosted control's visibility
11011         always matches the host.
11012         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
11013         and TextAfterImage.
11014
11015 2007-02-13  Andreia Gaita  <avidigal@novell.com>
11016
11017         * Control.cs: Code reorganization only.
11018           - Reorganize the WndProc cases so that each case has it's own handling method, 
11019           to help with the no-line-numbering stack traces.
11020           - Formatting changes (it's vstudio's fault, really :p)
11021
11022 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11023
11024         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
11025           Thread.CurrentUICulture to match DateTimePicker's (and MS)
11026           behaviour.
11027
11028 2007-02-12  Jackson Harper  <jackson@ximian.com>
11029
11030         * RichTextBox.cs:
11031         * TextBox.cs: By default we have a non multiline document
11032         - use the multiline property instead of the internal variable
11033         * TextBoxBase.cs: Treat multiline and non multiline the same in
11034         most places.
11035         - Use the documents multiline flag instead of tracking it ourself
11036         * TextControl.cs: Attempt at getting multiline to match MS
11037         behavior.  Lines now track an offset, which is either their X or Y
11038         offset depending on whether or not we are in multiline mode.
11039         - Update all the methods to understand that lines have an X value.
11040         - Fix crash in Undo::Duplicate when empty lines are deleted.
11041
11042 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
11043
11044         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
11045         code moved to properties PreferredHeight and PreferredWidth. It solve the
11046         all problems when preferred sizes must be recalculated. Fixes #80801.
11047
11048 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
11049
11050         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
11051         font height when compatible_text_rendering is false. Partially fix #80801.
11052
11053 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
11054
11055         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
11056
11057 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
11058
11059         * Form.cs: Improved exception messages in ShowDialog.
11060
11061 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
11062
11063         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
11064         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
11065         if not set. Fixes bug #80764. Avoid accessing current_settings field
11066         directly.
11067
11068 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
11069
11070         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
11071         false.
11072
11073         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
11074         public in 2.0 and for easy maintenance and dont break compatibility it is 
11075         internal in 1.1.
11076         
11077 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
11078
11079         * ToolStripItem.cs: Implement using images from ImageList.
11080
11081 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11082
11083         * DateTimePicker.cs: Change default date-formatting culture from
11084           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
11085           seems to be the way MS does it.
11086
11087 2007-02-08  Andreia Gaita  <avidigal@novell.com>
11088
11089         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
11090         (the 6 was cut off on the right side)
11091
11092 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
11093
11094         * Form.cs: Tell MenuStrips to close when the form is clicked.
11095         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
11096         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
11097         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
11098         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
11099         support for Overflow, where items that do not fit are automatically
11100         reparented to a drop down menu.
11101         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
11102         Also: fixes bug #80747.
11103
11104 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11105
11106         * ComboBox.cs: Remove warning (unused code).
11107         * ScrollableControl.cs: Remove warning for 1.1 profile.
11108
11109 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11110
11111         * Form.cs: Remove a warning.
11112
11113 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11114
11115         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
11116           'g' specifier, not documented anywhere, but seems to always show up
11117           as a single space (might have something to do with the DateTime 'g'
11118           specifier, which is the era format, but since DateTimePicker can't
11119           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
11120           won't crash if the format has an unmatched quote. Now shows
11121           single-character formats correctly. Fixes #80744.
11122
11123 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
11124
11125         * StatusStrip.cs: Stretch property needs to call base.Stretch,
11126         not this.Stretch to fix stack overflow. [Fixes bug #80760]
11127
11128 2007-02-07  Chris Toshok  <toshok@ximian.com>
11129
11130         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
11131         background color.  it overwrites the background image we've
11132         already painted.  Fixes #80599.
11133
11134 2007-02-07  Chris Toshok  <toshok@ximian.com>
11135
11136         * DataGrid.cs: return immediately from Edit() when there are no
11137         columns.  Fixes #80662.
11138
11139 2007-02-07  Chris Toshok  <toshok@ximian.com>
11140
11141         * MessageBox.cs: fix #80625.  don't always show the Help button in
11142         2.0.  use the displayHelpButton parameter to determine if we
11143         should show it. Also, make the internal show_help field private.
11144
11145 2007-02-07  Chris Toshok  <toshok@ximian.com>
11146
11147         * Control.cs (SetVisibleCore): check in the proposed patch for
11148         80604, and set is_visible before calling CreateControl.
11149
11150 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
11151
11152         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
11153         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
11154         on it.
11155
11156 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
11157
11158         * MenuAPI.cs: hotkey_active internal field added, it is required because
11159         we need to know when hotkeys must be draw, before this change a keystate
11160         Navigating was used but we can have menu in navigating state without
11161         hotkeys. Fixes #80694.
11162         
11163         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
11164
11165 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11166
11167         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
11168           corresponding events and methods to be internal for 1.1 profile and
11169           public for 2.0 profile (required by SizeGrip).
11170         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
11171           implicit control list). Don't set the size nor the location of the
11172           SizeGrip anymore as it's not needed.
11173         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
11174           draw directly on the captured control (fixes #80656). Removed
11175           ShowGrip (it wasn't used anywhere), redraw (always true), added
11176           GetDefaultSize and GetDefaultRectangle to calculate defaults.
11177         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
11178           be called from SizeGrip.
11179
11180 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11181
11182         * Timer.cs: Throw ArgumentException if Interval <= 0.
11183
11184 2007-02-05  Jackson Harper  <jackson@ximian.com>
11185
11186         * TreeView.cs: We need to check scrollbar visibility when window
11187         visibility is updated, because non visible trees don't ever add
11188         scrollbars.
11189         * Cursor.cs: We want the override cursor to be reset to NULL when
11190         we set current cursor to the default cursor.
11191
11192 2007-02-05  Jackson Harper  <jackson@ximian.com>
11193
11194         * TextControl.cs: Don't have crlfs when we are non multiline.
11195         - Consolidate the line position.
11196
11197 2007-02-05  Jackson Harper  <jackson@ximian.com>
11198
11199         * X11Keyboard.cs: BACK+CTRL gets a special char code.
11200
11201 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11202
11203         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
11204           handling LeaveNotify->NotifyUngrab in order to send
11205           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
11206           after calling XUngrabPointer, so we call WindowUngrabbed directly
11207           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
11208         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
11209           MouseCaptureChanged correctly. Also create handles if changing
11210           Capture (matches MS behaviour).
11211
11212 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11213
11214         * SizeGrip.cs: Make the last change 2.0 only.
11215
11216 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11217
11218         * SizeGrip.cs: If resizing and the capture is lost, revert any size
11219           changes to initial size (fixes #80597).
11220
11221 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11222
11223         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
11224
11225 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11226
11227         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
11228           background) and only allow dragging if enabled. This way the
11229           sizegrip can be used to fill the open square that otherwise would
11230           have been shown in the bottom right corner of ScrollableControl
11231           when ScrollableControl is not suppose to support sizing.
11232         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
11233           sizegrip is shown and enabled, and hook up with necessary events.
11234
11235 2007-02-01  Chris Toshok  <toshok@ximian.com>
11236
11237         * DataGridTextBoxColumn.cs: clean up the
11238         GetFormattedString/GetColumnValueAtRow combination of functions.
11239         Also fix UpdateUI, and the initial state of
11240         IsInEditOrNavigateMode.
11241
11242         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
11243         aren't supposed to scroll the textbox here, we're supposed to
11244         scroll the datagrid.
11245
11246 2007-02-01  Chris Toshok  <toshok@ximian.com>
11247
11248         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
11249         setting the position.
11250
11251 2007-02-01  Chris Toshok  <toshok@ximian.com>
11252
11253         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
11254         here, since the most recent focus fixes keep us from generating
11255         the Leave event when our textbox gets focus.
11256         (Edit): we should be passing null for the column style's
11257         instantText parameter.
11258         
11259 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
11260
11261         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
11262         raised.  Fixes menu text/icons not showing up in PDN.
11263
11264 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11265
11266         * Control.cs: Remove code in constructor that makes every
11267         control with WS_CHILD set have initial location -1, -1.
11268
11269 2007-01-31  Jackson Harper  <jackson@ximian.com>
11270
11271         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
11272         XplatUIX11.
11273         * XplatUIX11.cs: Give teh keyboard to teh dnd.
11274
11275 2007-01-31  Jackson Harper  <jackson@ximian.com>
11276
11277         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
11278         - Remove some debug code.
11279
11280 2007-01-31  Jackson Harper  <jackson@ximian.com>
11281
11282         * XplatUIX11.cs: If you set the override cursor during a grab, it
11283         should actually override the grab cursor.  This comes into play
11284         when you are setting custom cursors in a DND feedback method.
11285
11286 2007-01-31  Jackson Harper  <jackson@ximian.com>
11287
11288         * X11Dnd.cs: Add support for handling the QueryContinue and
11289         GiveFeedback events.
11290         - Cancel drag and drop actions when the escape key is clicked.
11291         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
11292         can handle the ESCAPE key.
11293         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
11294         done when dnd events are continued after the button is released.
11295         - Add a new helper method so that dnd can translate key events.
11296
11297 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
11298
11299         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
11300         make it more obvious what is happening.
11301
11302 2007-01-30  Jackson Harper  <jackson@ximian.com>
11303
11304         * XplatUIX11.cs: Don't break when handling button release in drag
11305         and drop operations. We need that BUTTONUP message to get through
11306         so capture is released.
11307         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
11308         this is handled automatically when the mouse is down.
11309
11310 2007-01-30  Jackson Harper  <jackson@ximian.com>
11311
11312         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
11313         is closed, so we need to make sure that we aren't changing the
11314         dialog result when the OK (Open or Save) button has been clicked
11315         and we are closing the window ourselves.  Note we don't need to
11316         worry about the cache being written in this case, because it was
11317         already done in the previous FilOk call.
11318
11319 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11320         
11321         * DateTimePicker.cs: Remove a warning.
11322         * ComboBox.cs: Remove a couple of warnings.
11323
11324 2007-01-29  Chris Toshok  <toshok@ximian.com>
11325
11326         * XplatUIX11.cs: don't crash, and remove the icon if the user has
11327         set one, if SetIcon is passed a null icon.
11328
11329 2007-01-29  Andreia Gaita  <avidigal@novell.com>
11330
11331         * TextBox.cs: Redraw when the password characters changes
11332         * TextControl.cs: Check if textbox has a password char and draw 
11333         a line of password chars instead of the text in the line. LineTag gets 
11334         an extra Draw() method which allows document.Draw to override the text 
11335         that will be drawn. Removes 1024 char limitation on length of passworded 
11336         lines.
11337
11338 2007-01-29  Jackson Harper  <jackson@ximian.com>
11339
11340         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
11341         single chars is not.
11342
11343 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
11344
11345         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
11346         one pixel.  Fix a StackOverflowException caused by an overload wrongly
11347         calling itself.
11348
11349 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
11350
11351         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
11352         also remove ProcessArrowKey and put the code inside ProcessKeys.
11353
11354 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
11355
11356         * PaddingConverter.cs: Added.
11357
11358 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11359         
11360         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
11361         ShowPanels is false (fixes #80600). Only draw up to 127 characters
11362         of text (fixes #80601). For panels clip the text to draw to the
11363         panel (fixes #80603).
11364
11365 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11366
11367         * ComboBox.cs: Fixed implementation of ResetText.
11368
11369 2007-01-25  Jackson Harper  <jackson@ximian.com>
11370
11371         * TextControl.cs: For the last char of a line we need to use the
11372         line size, not that chars width, since it won't actually be
11373         computed since the right side of a char is based on the start of
11374         the left side of the next char, and the next char does not exist.
11375
11376 2007-01-25  Chris Toshok  <toshok@ximian.com>
11377
11378         * Splitter.cs: fix the new unit tests, and reindent some switch
11379         statements.
11380
11381 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11382
11383         * ComboBox.cs: Implemented 2.0 methods and events.
11384         * TextBoxBase.cs: Added OnTextUpdate, so that
11385         ComboBox.ComboTextBox can inform ComboBox of it.
11386
11387 2007-01-25  Jackson Harper  <jackson@ximian.com>
11388
11389         * TextControl.cs: Respect ShowSelection when deciding whether or
11390         not to display the caret, this allows comboboxes to have carets
11391         when the combotextbox does not have focus.
11392
11393 2007-01-25  Jackson Harper  <jackson@ximian.com>
11394
11395         * TextControl.cs: Add a Suspend/Resume for updating, basically the
11396         same as the Suspend/Resume for recalc, except this will do actual
11397         Invalidates.
11398         - New Undo manager, works much like the MS version.
11399         - Implemented Redo
11400         * TextBoxBase.cs: The Cut operation is undoable.
11401
11402 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11403         
11404         * TextBoxBase.cs: Don't antialias text. Makes it look way better
11405         on Windows (no difference on Linux).    
11406
11407 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11408
11409         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
11410         we don't want to activate any windows. Fixes #79433.
11411
11412 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
11413
11414         - ButtonBase.cs: Fix capitalization of parameter: disposing.
11415         [Fixes bug #80609]
11416
11417 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
11418
11419         * FileDialog.cs:
11420         - Move to using System.ComponentModel.EventHandlerList
11421         - Replace Refresh with Invalidate
11422         - Clear the mime filecache on closing
11423         - Some other memory reducing work. After beeing closed FD now uses
11424           only about 300 KB for the fdo mime stuff plus the memory of the
11425           cached icons.
11426         * Mime.cs: Changed coding style and removed unnecessary commented
11427         code. Some more memory memory reducing work.
11428
11429 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11430
11431         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
11432         a few other missing 2.0 properties.
11433         * Theme.cs: Added DrawFlatStyleComboBox.
11434         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
11435
11436 2007-01-24  Chris Toshok  <toshok@ximian.com>
11437
11438         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
11439         wake_waiting flag, not just when there's data to be read.  if we
11440         don't, then future wakeup's won't reach us and we'll be doomed to
11441         wait for the entire 1 second timeout forever (unless there are X
11442         events to be had).
11443
11444 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
11445
11446         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
11447         until you pass Items.Count, not Items.Count - 1 like 1.1.
11448
11449 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
11450
11451         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
11452
11453 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
11454
11455         * ToolStripContainer.cs: The recent Dock fix exposed that I was
11456         adding the panels in the wrong order.
11457
11458 2007-01-24  Jackson Harper  <jackson@ximian.com>
11459
11460         * TextBoxBase.cs: When we move the caret we also need to move the
11461         selection, this fixes some random crashing after doing select
11462         text, unselect, delete a char, paste.
11463
11464 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11465
11466         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
11467
11468 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
11469
11470         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
11471         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
11472         * ToolBar.cs: Force redraw in BackgroundImageChanged.
11473
11474 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
11475
11476         * ToolBar.cs:
11477         - Implement support for vertical toolbars. Fixes #80539;
11478         - Call LayoutToolBar when resize, it fix some other problems in layout.
11479         - Rename requested_height to requested_size, as we can have width on it
11480         when toolbar is vertical.
11481         - Create a private property "Vertical" that uses Dock to verify when 
11482         toolbar is vertical or not.
11483         - Set ControlStyles when change Dock property.
11484         - Refactory in LayoutToolBar to have better variables names and to support
11485         vertical toolbars.
11486         - Fixes default value for ButtonSize when button count is equal zero, size
11487         must be (39, 36) test case writed.
11488
11489 2007-01-23  Chris Toshok  <toshok@ximian.com>
11490
11491         * Control.cs: fix the checks so that they work correctly for mdi
11492         parents/children.
11493
11494 2007-01-23  Chris Toshok  <toshok@ximian.com>
11495
11496         * Control.cs: ControlCollection seems to have super-secret
11497         abstraction breaking knowledge of Mdi containers.  allow MdiClient
11498         to add toplevel controls.
11499
11500 2007-01-23  Chris Toshok  <toshok@ximian.com>
11501
11502         * Control.cs: throw an ArgumentException if a toplevel control is
11503         added to our control collection from ControlCollection.Add, as
11504         well as from ControlCollection.IList.Add.  This fixes the
11505         ControlSetTopLevelTest.TestTopLevelAdd unit test.
11506
11507         Also, in ControlCollection.IList.Add, don't through an
11508         ArgumentNullException, throw an ArgumentException, when value ==
11509         null.  This matches MS.
11510
11511 2007-01-23  Chris Toshok  <toshok@ximian.com>
11512
11513         * BindingSource.cs: initial, incomplete, implementation of
11514         BindingSource.
11515
11516 2007-01-23  Jackson Harper  <jackson@ximian.com>
11517
11518         * TextControl.cs:
11519         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
11520         that I can fix a broken unit test (TextBoxTest::ClearUndo)
11521         
11522 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
11523
11524         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
11525
11526 2007-01-23  Andreia Gaita  <avidigal@novell.com>
11527
11528         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
11529         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
11530         IndexOfKey() for 2.0
11531
11532 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11533
11534         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
11535         to prevent it from changing z-order.
11536         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
11537         leave UI updates in MdiWindowManager.
11538         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
11539         1 sized (NC handling goes weird on Linux otherwise).
11540         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
11541         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
11542         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
11543         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
11544         and SetWindowState(s) to allow for changing the size of an activated child
11545         before activating it (reduces a lot of flicker).
11546
11547 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
11548
11549         * Form.cs: Changing FormBorderStyle has different semantics based
11550         on whether the Form is visible or not.  If not visible, don't change
11551         the Size.  But InvalidateNC needs to be called to force the window
11552         to pick up the changes and redraw itself.  [Fixes bug #80574]
11553
11554 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
11555
11556         [Moma work]
11557         * ContainerControl.cs: ProcessCmdKey.
11558         * ErrorProvider.cs: new constructor.
11559         * Form.cs: fix AutoValidateEvent compiler warning.
11560         * Label.cs: fix OnAutoSizeChanged compiler warning.
11561         * MenuStrip.cs: fix CanOverflow compiler warning.
11562         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
11563         * TextBox.cs: Dispose.
11564         * ToolStrip.cs: CanOverflow, re-enable double buffering.
11565         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
11566         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
11567         * ToolStripItem.cs: Overflow, RightToLeft properties.
11568
11569 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11570
11571         * Form.cs: Move the layout of the main form to MdiWindowManager.
11572         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
11573         do a layout of the main window to update MdiClient's client area to
11574         the right area. Fixes #80533. Remove the calculation of nc size, 
11575         it was just wrong and the correct one is the same as for 
11576         InternalWindowManager. 
11577
11578 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
11579
11580         * Control.cs: Setting Anchor or Dock needs to reset the other
11581         to its default.  [Fixes bug #80556]
11582
11583 2007-01-20  Chris Toshok  <toshok@ximian.com>
11584
11585         * CheckedListBox.cs: class status changes.
11586
11587         * ScrollableControl.cs: same.
11588
11589         * RichTextBox.cs: same.
11590
11591         * ContainerControl.cs: same.
11592
11593         * ListView.cs: same.
11594
11595         * NotifyIcon.cs: same.
11596
11597         * MenuStrip.cs: same.
11598
11599         * RadioButton.cs: same.
11600
11601         * CheckBox.cs: same.
11602
11603         * PrintPreviewDialog.cs: same.
11604
11605         * Form.cs: same.
11606
11607 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
11608
11609         * TreeNode.cs: Apply Alan's patch for Name property.
11610
11611 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11612         
11613         * Form.cs: Implemented SizeGripStyle.
11614         * SizeGrip.cs: Check for minimum and maximum size for the
11615         control being resized and only resize if size has actually
11616         changed.
11617
11618 2007-01-19  Chris Toshok  <toshok@ximian.com>
11619
11620         * DataGridColumnStyle.cs: stop setting _readonly in the
11621         PropertyDescriptor setter.  fixes a unit test failure.
11622
11623         also, rename ParentReadOnly to TableStyleReadOnly, and have it
11624         just consult our table style (if we have one).  We don't need to
11625         consult the datagrid readonly attribute because that's passed in
11626         as the _ro arg to Edit.  this simplifies things a little.
11627         
11628         * DataGrid.cs: use CurrentColumn instead of
11629         current_cell.ColumnNumber just to simplify some of the code.
11630
11631         switch the order of some things in the CurrentCell setter to keep
11632         the previous cell from getting a textbox again -
11633         EnsureCellVisibility causes scrolling to happen, which calls Edit.
11634         So we need to set the new cell before calling it.
11635         
11636         call Edit in OnEnter, as does Microsoft.
11637         
11638         also, make sure the current table style isn't the one we create
11639         initially when checking to see if it's different than the one
11640         we're setting it to in BindColumns (this fixes #80421).
11641
11642         * GridTableStylesCollection.cs: table styles can have "" for a
11643         mapping name.  part of the fix for #80421.
11644
11645         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
11646         Edit significantly.
11647
11648 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
11649
11650         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
11651         and less GDI object leaky-er.
11652
11653 2007-01-18  Andreia Gaita  <avidigal@novell.com>
11654
11655         * LinkLabel.cs: Add opaque control style
11656
11657 2007-01-18  Jackson Harper  <jackson@ximian.com>
11658
11659         * TextControl.cs: Calculate width properly.
11660         - Don't store the tag's X offset, this can be figured out very
11661         easily.
11662         - When getting the caret tag make sure to get the last empty tag.
11663
11664 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
11665
11666         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
11667         [Fixes bug #79959]
11668
11669         * Control.cs: Color.Empty shouldn't count for previous transparent
11670         redraw changes.
11671
11672 2007-01-18  Jackson Harper  <jackson@ximian.com>
11673
11674         * TextBox.cs:
11675         * RichTextBox.cs:
11676         * TextControl.cs: Starting to merge in some pieces of my older
11677         undo work.  Basically just some slight cleanup of the undo API.
11678
11679 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11680
11681         * TrackBar.cs: Fix signature of RightToLeftLayout.
11682         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
11683         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
11684         * Application.cs: Implemented UseWaitCursor.
11685
11686 2007-01-18  Jackson Harper  <jackson@ximian.com>
11687
11688         * TextControl.cs: We can't skip tags if any part of the tag is
11689         visible.
11690
11691 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
11692
11693         * ContainerControl.cs: Override OnLayout.
11694
11695 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
11696
11697         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
11698
11699         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
11700         everything else.
11701
11702 2007-01-18  Chris Toshok  <toshok@ximian.com>
11703
11704         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
11705         (leftover from the container_selected days, I'd wager).  fixes bug
11706         #80546.
11707
11708 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
11709
11710         * Control.cs: Apply patch from George to fix the new testcase on
11711         bug #80451.  We can't just check for Color.Transparent, we need 
11712         to check if the back color's alpha channel is < 255.
11713
11714 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
11715
11716         * Form.cs: Move setting show_icon = true to before the constructor
11717         so that the base constructor has that information when it calculates
11718         the form's size.  Was causing forms to be (6, 6) bigger than they
11719         were supposed to be.  Thanks for catching this Rolf!
11720
11721 2007-01-18  Jackson Harper  <jackson@ximian.com>
11722
11723         * TextControl.cs: When replacing a selection we need to invalidate
11724         from the initial selection start, because selection start is moved
11725         to the end of the replacement.
11726
11727 2007-01-18  Andreia Gaita  <avidigal@novell.com>
11728
11729         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
11730
11731 2007-01-18  Chris Toshok  <toshok@ximian.com>
11732
11733         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
11734         I just added.
11735
11736 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
11737
11738         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
11739         layout methods and properties from ToolBarButton must be available
11740         into ToolBarButtonInfo.
11741
11742 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
11743
11744         * Control.cs: If the control has a transparent background, we
11745         need to refresh it when it moves and when it's parent's background
11746         image changes.  [Fixes bug #80451]
11747
11748 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
11749
11750         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
11751
11752 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
11753
11754         * XplatUIWin32.cs: Implement proper double buffering for Windows.
11755         [Fixes bug #80447, and probably speeds up things as well]
11756
11757 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11758
11759         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
11760         * XplatUIWin32.cs: We need to recalculate NC size after changing 
11761         window style to toolwindow (otherwise the client rectangle will be
11762         3 pixels to small for some reason).
11763         * MdiWindowManager.cs: Revert NC size calculations to match how
11764         they are calculated only based on window styles (to match
11765         Win32AdjustWindowRectEx, since otherwise when setting size or 
11766         location, Control will call Win32AdjustWindowRectEx to update client 
11767         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
11768         calculate a different value of client size causing another paint 
11769         (and flickering))
11770         * InternalWindowManager.cs: When moving or resizing a window only
11771         update size or location if they actually changed.
11772         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
11773         (seems to match Windows behaviour better). Cleaned up 
11774         ManagedWindowDecorations to draw what's needed and nothing else
11775         (was drawing borders and lines where they shouldn't be)
11776         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
11777         (style = 0xFFFF) and takes into account caption height when 
11778         calculating window rectangle.   
11779
11780 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
11781
11782         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
11783         can be added to toolbar multiple times, we need to maintain a list of 
11784         button information for each positions.
11785
11786 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
11787
11788         * ToolBar.cs: Some small stetic changes.
11789
11790 2007-01-16  Jackson Harper  <jackson@ximian.com>
11791
11792         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
11793         that allow us to have nested recalc = false blocks.
11794         - Add paste support for images in the RichTextBox
11795         * RichTextBox.cs: flush the text after the color is changed, so
11796         the change takes effect.
11797         - Use SuspendRecalc
11798         - Some extra debugging info
11799         * TextControl.cs: Tags no longer track their length, it is just
11800         computed from the next tags length, this makes things a little
11801         simpler and reduces places that we have to track length changes.
11802         - Refactored the linetag class a little so we could make it
11803         a base class for different kinds of tags
11804         - Created a image tag, a tag that can have a single image inserted
11805         into it
11806         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
11807         that we can call suspend multiple times.
11808         - Add some debugging methods
11809
11810 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11811
11812         * MdiClient.cs: Add ActivatePreviousChild for 
11813         mdi child window navigation.
11814         * Form.cs: Use MdiClient.ActivateNextChild/
11815         ActivatePreviousChild instead of Form.SelectNextControl
11816         to select the next/previous child since 
11817         SelectNextControl doesn't do it in the same order
11818         as mdi children should do it.
11819
11820 2007-01-16  Chris Toshok  <toshok@ximian.com>
11821
11822         * Control.cs: remove container_selected field.
11823
11824 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11825
11826         * MdiClient.cs: Update main form's ActiveChild when
11827         updating keyboard focus for the mdi child.
11828
11829 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
11830
11831         * Control.cs: PreferredSize fix.
11832
11833         * Form.cs: Add several 2.0 events, properties, and methods.
11834
11835 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
11836
11837         * Form.cs: Provide meaningful message when MdiParent is assigned a
11838         Form that is not an MdiContainer.
11839
11840 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11841
11842         * MdiClient.cs: Update main form's ActiveChild when
11843         activating a mdi child.
11844
11845 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11846
11847         * MdiWindowManager.cs: Fix NRE when merging menus and main form
11848         doesn't have a menu.
11849
11850         * Form.cs: Request NCRecalc after creating a mdi child window.
11851         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
11852         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
11853         
11854         * MdiClient.cs: Add new method SendFocusToActiveChild that either
11855         sends keyboard focus to the active child, or to the MdiClient
11856         if there are no child forms.
11857         
11858 2007-01-15  Chris Toshok  <toshok@ximian.com>
11859
11860         * ListView.cs: drop the *Internal overrides, just do our work in
11861         ItemControl's WndProc instead.
11862
11863         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
11864         of the various controls, and forward the events properly (in the
11865         same manner as MS) from the textbox to the UpDown.  Also the
11866         ActiveControl of the UpDownBase gets set properly now.  Finally,
11867         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
11868
11869         * NumericUpDown.cs: set Text in the ctor.
11870
11871         * DomainUpDown.cs: call UpdateEditText in the ctor.
11872         
11873         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
11874         so even a Selectable = false textbox can be focused if you click
11875         in it.  Go figure.
11876
11877         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
11878         just add their handling in their respective WndProc's.  Also add
11879         an explicit FocusInternal method that doesn't consult CanFocus
11880         before calling Select(this).
11881
11882         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
11883         do our work in WndProc instead.
11884
11885         * TabControl.cs: same.
11886
11887         * ComboBox.cs: same.
11888
11889 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
11890
11891         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
11892         Fixes #80006.
11893
11894 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
11895
11896         * ListViewItem.cs:
11897         * ThemeWin32Classic.cs: Don't draw the item text outside
11898         item bounds in Details view, as well as use trimming.
11899         Fixes bug #80376.
11900
11901 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
11902
11903         * Form.cs: Implement Form.ShowIcon.
11904         
11905         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
11906         null, which when combined with the DlgModalFrame window style removes
11907         the icon from the title bar.
11908
11909 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
11910
11911         * Control.cs: Call OnMouseClick after OnClick. (2.0)
11912
11913 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
11914
11915         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
11916         menu when mdi child windows theres a menu, uses insert to get icon
11917         at first position. Partially fix #80006.
11918
11919 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
11920
11921         * Clipboard.cs: Implement 2.0 methods.
11922
11923 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
11924
11925         * Menu.cs: Implement Insert method of MenuItemCollection class
11926         to fix MenuMerge.
11927
11928 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11929
11930         * ListView.cs: Implement 2.0 FindItemWithText method.
11931
11932 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
11933
11934         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
11935         to calculate menu bar size. Fixes #80290.
11936
11937 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
11938
11939         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
11940
11941 2007-01-11  Chris Toshok  <toshok@ximian.com>
11942
11943         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
11944         initial form.
11945
11946 2007-01-11  Chris Toshok  <toshok@ximian.com>
11947
11948         * LinkLabel.cs: make sure to call base.Select in our Select method
11949         if it turns out we're going to be selected (i.e. if we have a link
11950         that is going to receive focus).  That way our container's
11951         ActiveControl is updated properly.
11952
11953 2007-01-11  Chris Toshok  <toshok@ximian.com>
11954
11955         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
11956         they have 1 or more links.  this fixes the crash gert reported.
11957
11958 2007-01-11  Andreia Gaita  <avidigal@novell.com>
11959
11960         * ContainerControl.cs: Remove ContainerSelected flag, not needed
11961         anymore.
11962
11963         * Control.cs (Controls.Add): Check if control to be added to the collection
11964         is a top level control, and throw an ArgumentException if it is.
11965         Remove ContainerSelectedFlag, not needed anymore.
11966
11967         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
11968         top most control doesn't activate the form. This fixes a problem in the
11969         MessageBox, where the default button wouldn't get focus because the form
11970         was activated before being Loaded - when the Owner is set, SetTopMost is
11971         called, and it would activate it.
11972
11973 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
11974
11975         * Button.cs: When clicked and setting the parent form's DialogResult,
11976         use FindForm instead of Parent, since parent could be a container
11977         control and not the Form.  Fixes bug #80495.
11978
11979 2007-01-10  Chris Toshok  <toshok@ximian.com>
11980
11981         * Form.cs: move the call to SendControlFocus into the same
11982         is_loaded check.
11983
11984 2007-01-10  Chris Toshok  <toshok@ximian.com>
11985
11986         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
11987         It breaks in the face of the new ActiveControl stuff, and should
11988         be unnecessary.
11989
11990         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
11991         activecontrol's focus if it's not already set, after we set
11992         ActiveControl, but before we call OnActivated.  Re-fixes #79667
11993         after the previous focus/active control fixes regressed it.
11994
11995         * Control.cs: reindent some code.
11996         
11997 2007-01-10  Chris Toshok  <toshok@ximian.com>
11998
11999         * Splitter.cs: clearing some outstanding changes from my tree.
12000         Replace all accesses (not writes) to the internal dock_style field
12001         with the Dock property.
12002
12003 2007-01-10  Chris Toshok  <toshok@ximian.com>
12004
12005         * Control.cs: make FireEnter, FireLeave, FireValidating, and
12006         FireValidated virtual.
12007
12008         * Form.cs: override and don't chain up calls to FireEnter and
12009         FireLeave.
12010
12011 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12012
12013         * ListView.cs: Add more text padding space when using
12014         auto resize for columns (the previous value didn't work fine).
12015
12016         * ThemeWin32Classic.cs: Update text position inside columns,
12017         to match the appeareance of .Net.
12018
12019         * ColumnHeader.cs: When using auto resize, only the Width should
12020         depend on the sub items, not the Height. Also, set width after
12021         auto resizing (the value of Width should never remain as -1 or -2).
12022
12023 2007-01-10  Chris Toshok  <toshok@ximian.com>
12024
12025         * Application.cs: fix compilation errors when debug is enabled.
12026
12027 2007-01-10  Chris Toshok  <toshok@ximian.com>
12028
12029         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
12030         add some nice ascii art pictures and explanation of the process).
12031         (GetMostDeeplyNestedActiveControl): new utility function we need
12032         because our ActiveControl can refer to a child container with its
12033         own ActiveControl.
12034
12035         * Form.cs (OnActivated): remove the call to SelectActiveControl
12036         from here, since you can override this method and not chain up,
12037         and winforms still sets the active control.
12038         (OnCreateControl): also remove the unnecessary SelectActiveControl
12039         call from here.
12040         (WndProc): it's actually called from the WM_ACTIVATE block, just
12041         before calling OnActivated.
12042
12043         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
12044         inside the else.  the ActiveControl setter will end up setting
12045         focus on @control.  This keeps us from setting it again (and
12046         generating an extra LostFocus/GotFocus pair).
12047         (Select (bool, bool)): reindent.
12048
12049 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
12050
12051         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
12052         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
12053         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
12054         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
12055         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
12056         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
12057         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
12058         ToolStripTextBox.cs: Another wave of corcompare work.
12059
12060 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12061
12062         * ColumnHeader.cs: Implement 2.0 AutoResize method using
12063         the Width property.
12064
12065         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
12066         methods by callling Column.AutoResize method on columns.
12067
12068 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
12069
12070         * Control.cs: Provide proper implementations of PreferredSize
12071         and GetPreferredSize (2.0).
12072
12073 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
12074
12075         * Form.cs: Remove one character (!) to make my previous OnClosing
12076         stuff work for modal windows like MessageBox.
12077
12078 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12079
12080         * ListView.cs:
12081         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
12082         ListView.Columns to get the last displayed column. Fixes #80452.
12083
12084 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
12085
12086         * Label.cs, LinkLabel.cs: Source code identation fixes.
12087
12088 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
12089
12090         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
12091         we dont need to invalidate only borders because when we invalidate four
12092         border lines the invalidate's generates a complete redraw of button, 
12093         because it now invalidate a complete rect some other redraws operations
12094         are fixed. Fixes #80196.
12095         
12096         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
12097         Remove ToolBarInvalidateEntireButton as it is not used.
12098
12099 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
12100         
12101         * Form.cs: Make sure that both OnClosing and OnFormClosing are
12102         called for 2.0 profile.
12103         * CloseReason.cs: Make class internal for 1.1.
12104
12105 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
12106
12107         * ToolStripManager.cs: Implement FindToolStrip functionality.
12108         * ToolStrip.cs: Register and unregister with ToolStripManager.
12109
12110 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
12111
12112         * Control.cs: This was messy.  2.0 moves much of ControlCollection
12113         to ArrangedElementCollection.  Implemented this with as few #if's as 
12114         possible (which is still too many).
12115
12116 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
12117
12118         * Control.cs: Implement SizeFromClientSize() [2.0].
12119
12120 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
12121
12122         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
12123         use Theme.BorderSize to calculate area instead of static value 1, 
12124         by the way use new BorderStaticSize instead     Border3DSize when 
12125         border_static is true. Fixes #79537.
12126         
12127         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
12128         
12129         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
12130         it is not needed.
12131
12132 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
12133
12134         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
12135
12136 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
12137
12138         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
12139         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
12140         
12141         * Hwnd.cs: 
12142         - border_static field added, it will used to define when a control 
12143         theres 3D border but it must be static (thin).
12144         - In GetWindowRectangle use Theme.BorderSize to calculate area 
12145         instead of static value 1, by the way use new BorderStaticSize instead
12146         Border3DSize when border_static is true.
12147
12148         * XplatUIX11.cs, XplatUIOSX.cs: 
12149         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
12150         
12151         * Theme.cs: BorderStaticSize field added.
12152
12153 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
12154
12155         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
12156
12157 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
12158
12159         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
12160         mimic same behavior than win32 that set border only in CreateParams,
12161         it fix problems under CreateParams overrides. Fix #79442 and partial
12162         fix #79537.
12163         
12164         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
12165         of thi control you must call recreate handle. 
12166         
12167         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
12168         need to do anything as RecreateHangle will take care about borders.
12169
12170 2007-01-05  Mike Kestner  <mkestner@novell.com>
12171
12172         * ListView.cs: hack to eliminate Lost/Got focus notifications on
12173         cycles between the ItemControl and parent.  Fixes #80388.
12174
12175 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
12176
12177         * Control.cs: Lazy init layout engine. Do not directly use 
12178         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
12179
12180 2007-01-05  Chris Toshok  <toshok@ximian.com>
12181
12182         * DataGrid.cs: don't forceably rebind columns in SetDataSource
12183         unless our list manager has changed (i.e. unless we have reason to
12184         believe our columns have changed).  Fixes #80422.
12185         
12186         also, disable the call do BindColumns in
12187         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
12188         1.1 the event isn't raised in response to a column addition on a
12189         table.)
12190
12191 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
12192
12193         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
12194         that inheritors can not call it if they choose.  Fixes bug #80456.
12195
12196 2007-01-05  Andreia Gaita  <avidigal@novell.com>
12197
12198         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
12199         doesn't blow up with a null exception on marshalling.
12200         
12201 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
12202
12203         * Control.cs: Implement several 2.0 protected properties and methods.
12204         Ensure that all necessary events are being called when properties
12205         are set.
12206
12207 2007-01-05  Mike Kestner  <mkestner@novell.com>
12208
12209         * ListView.cs: implement PgUp/PgDn for Details view.  Also
12210         fixes First/LastVisibleIndex to use the item_control.ClientRect 
12211         instead of the parent control.  Fixes #80378.
12212
12213 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
12214
12215         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
12216           determine whether to use yard-pound or not (bug #78399).
12217
12218 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
12219
12220         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
12221         problems. So it is time to bring back the old popupbutton colors.
12222
12223 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12224
12225         * ColumnHeader.cs:
12226         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
12227         property by using the internal information of the
12228         columns order in ListView.
12229
12230 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
12231
12232         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
12233         Add 2.0 Tag properties.
12234
12235         * LinkArea.cs: Add 2.0 ToString method.
12236
12237 2007-01-03  Chris Toshok  <toshok@ximian.com>
12238
12239         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
12240         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
12241         when we're editing, which fixes #80047.
12242
12243 2007-01-03  Chris Toshok  <toshok@ximian.com>
12244
12245         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
12246         #80404.
12247
12248 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
12249
12250         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
12251         property and implementation.
12252
12253         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
12254         for MdiWindowListItem property.
12255
12256         * ToolStripDropDown.cs: Don't consider hidden menu items while
12257         laying out the menu.
12258
12259 2007-01-03  Andreia Gaita  <avidigal@novell.com>
12260
12261         * SendKeys.cs: window handle is not needed in win32, so just
12262         get the active window for X after parsing keys and don't use
12263         it when building the message; it is passed by parameter to the 
12264         Xplat method and used there to build the message instead. Also,
12265         wait for events to be processed on SendWait, as opposed to Send,
12266         which doesn't wait :) Playing with threads and Send() completely 
12267         hangs on ms.net, only SendWait() works.
12268         
12269         XplatUIX11.cs
12270         X11Display.cs: Check for valid window handle.
12271
12272 2007-01-03  Jackson Harper  <jackson@ximian.com>
12273
12274         * TextControl.cs: Need to prevent wrap calculations when replacing
12275         text (this was there before i removed it accidently).
12276         - Don't update the cursor during the positioning, just set it to
12277         selection_start at the end of the operaion.
12278
12279 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12280
12281         * Control.cs:
12282         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
12283         
12284 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12285
12286         * MonthCalendar.cs: Added Click and DoubleClick events again,
12287         but this time they only hide Control's Click and DoubleClick.
12288         
12289 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
12290
12291         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
12292         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
12293
12294 2007-01-02  Jackson Harper  <jackson@ximian.com>
12295
12296         * TextBoxBase.cs: We move the caret with the split now, so we
12297         don't need to explicitly move the caret after splitting.  This
12298         fixes the caret bumping down an extra line on Enter.
12299
12300 2007-01-02  Miguel de Icaza  <miguel@novell.com>
12301
12302         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
12303         2.72). 
12304
12305         * ScrollableControl.cs: Add Scroll event.
12306
12307 2007-01-02  Mike Kestner  <mkestner@novell.com>
12308
12309         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
12310         to fix all hdr height padding codepaths.  Fixes #80207.
12311
12312 2007-01-02  Chris Toshok  <toshok@ximian.com>
12313
12314         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
12315         setting it to the Control defaults anyway, and it being after the
12316         Dock set was screwing up layout.
12317         (set_Dock): don't short circuit out of setting base.Dock.  Also,
12318         no need to call UpdateStatusBar here, as it'll be re-layed out if
12319         it needs to be.
12320
12321 2007-01-02  Mike Kestner  <mkestner@novell.com>
12322
12323         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
12324         to header height for width == -1. Fixes the rest of #80207.
12325
12326 2007-01-02  Mike Kestner  <mkestner@novell.com>
12327
12328         * ListView.cs: rework the mouse event forwarding everaldo added
12329         to translate the coordinates to the parent control not
12330         raise the parent events until after we've done our work. Hover
12331         needs more work, in the case where HoverSelection is on, because
12332         the item control receives more than one MouseHover per Enter
12333         event, so we need to ensure only the "first" hover gets forwarded.
12334         Opening a minor bug for that.
12335
12336 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
12337
12338         * CheckedListBox.cs: Fixed SelectionMode to match MS.
12339         * ListControl.cs: Implemented AllowSelection property. Removed extra
12340         tabs.
12341         * ListBox.cs: Implemented AllowSelection property.
12342
12343 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
12344
12345         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
12346         SelectedItem, it prevent for errors when you must disable item
12347         before perform click. Fixes #80409.
12348
12349 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
12350
12351         * MenuAPI.cs: Prevent second level and beyond submenus to close
12352         until first level when move out side of popup.
12353         
12354 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
12355
12356         * MenuAPI.cs:
12357         - Down submenu positin in three pixels.
12358         - Closes sub menu when mouse leaves from menu. Fixes #80402.
12359
12360 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
12361
12362         * ThemeWin32Classic.cs:
12363         - Fix popup menu size adding one pixel on the top.
12364         - Down menu item border from two to one to mimic Win32.
12365         - Some source identation fixes. 
12366
12367 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
12368
12369         * ThemeWin32Classic.cs: Use float numbers to calculate size and
12370         position of menu arrows, it fix wrong arrow size.
12371
12372 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
12373
12374         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
12375         instead of line, it simplify draw operation and fix it using 3D
12376         borders to mimic Win32.
12377
12378 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
12379
12380         * StatusStrip.cs: Add implementation of the sizing grip.
12381
12382         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
12383         StatusStrip rendering.
12384
12385 2006-12-31  Chris Toshok  <toshok@ximian.com>
12386
12387         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
12388         override the layout style (anchor/dock) of the control.  assign to
12389         Dock instead.  Fixes bug #80416.
12390
12391         * ToolStrip.cs: same.
12392
12393 2006-12-31  Andreia Gaita  <avidigal@novell.com>
12394
12395         * ContainerControl.cs: Use ContainerSelected flag to check if 
12396         a Container is directly selected, or if Select is called on a 
12397         non-container. If a container is directly selected, focus events 
12398         should not be raised.
12399         Apply #80411 patch to throw exception on set_ActiveControl if 
12400         control is the same as the current one.
12401         
12402         * Control.cs: Use ContainerSelected flag (see above).
12403         Add invalidation check to raise event but not invalidate if 
12404         dimensions are 0.       
12405         Apply #80411 patch.
12406         
12407
12408 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
12409
12410         * MenuAPI.cs: After click, dont close popup menu when menu is
12411         ContextMenu. Fixes #80399.
12412
12413 2006-12-30  Chris Toshok  <toshok@ximian.com>
12414
12415         * ContainerControl.cs: make sure we throw the exception if the
12416         container control doesn't contain the control we're setting
12417         ActiveControl to.
12418
12419 2006-12-30  Chris Toshok  <toshok@ximian.com>
12420
12421         * Control.cs (SetTopLevel): fix the exception raised by
12422         SetTopLevel for child controls.
12423         (set_Anchor): call UpdateDistances when setting the anchor type.
12424         This fixes bug #80336.
12425
12426 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
12427
12428         * Theme.cs: For now, revert back to 8pt font.
12429
12430 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
12431
12432         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
12433         Fixes #80395.
12434
12435 2006-12-29  Chris Toshok  <toshok@ximian.com>
12436
12437         * Control.cs: reorder the code in OnResize to give the same event
12438         ordering as MS.
12439
12440 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12441
12442         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
12443         TileHorizontally and TileVertically.
12444         
12445 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
12446
12447         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
12448         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
12449         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
12450         Corrected copyright and email adress.
12451
12452 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
12453
12454         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
12455         of Exception in FullPath property if no TreeView is associated with
12456         the TreeNode.
12457
12458 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
12459
12460         * Theme.cs: Marked default_font as private, and initialize it in ctor
12461         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
12462         on 2.0 profile.
12463         * ThemeGtk.cs: Removed default_font intialization.
12464         * ThemeWin32Classic.cs: Removed default_font initialization.
12465
12466 2006-12-28  Chris Toshok  <toshok@ximian.com>
12467
12468         * Control.cs: fix a couple of place where we were creating handles
12469         more aggressively than we should be.  Fixes ControlRefresh unit
12470         tests.
12471
12472 2006-12-28  Chris Toshok  <toshok@ximian.com>
12473
12474         * Control.cs: contrary to what the comment said, Control.Dock does
12475         not supercede Control.Anchor - the last one you assign to decides
12476         the layout behavior.  so we need to keep track of which was the
12477         last set.  Also, fix some of the affected property arguments in
12478         PerformLayout calls, and remove an redundant parent.PerformLayout
12479         call in OnResized.
12480
12481         Add a VisibleInternal property, which returns is_visible.  We
12482         can/should get rid of all the usage of this field elsewhere.
12483
12484 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12485         
12486         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
12487         control style, not DoubleBuffer. Added UseDoubleBuffering property
12488         that indicates whether doublebuffering is enabled and supported.
12489         (comment from and code based on Gert Driesen's patch in #80324).
12490         Fixes #80324.
12491
12492 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12493         
12494         * Control.cs: Fixed a NRE.
12495
12496 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12497
12498         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
12499         for 2.0.
12500
12501 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12502
12503         * Control.cs: Rewrote double buffering, now a seperate
12504         class handles all the buffering, no Graphics is disposed of
12505         until the painting is finished (earlier implementation 
12506         would crash if the control was resized in the OnPaint, 
12507         since it would cause the double buffer to be recreated
12508         and the old one disposed), a separate Graphics is 
12509         created for every paint (MS behaviour and anyways the state
12510         of the Graphics would have to be saved and restored otherwise)
12511         
12512         * XplatUIDriver.cs: 
12513         * XplatUIX11.cs:
12514         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
12515         so that we can get the graphics for the back buffer without
12516         having to create a new one and remove the offscreen_dc parameter
12517         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
12518         
12519 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12520
12521         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
12522         Also make virtual all the key-related methods.
12523
12524         * ListViewItem.cs: Make virtual the key related methods for
12525         ListViewSubItemCollection.
12526
12527 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12528
12529         * ListView.cs:
12530         * ListViewItem.cs:
12531         * ThemeWin32Classic.cs:
12532         * Theme.cs: Initial support for Tile view in ListView,
12533         as well as the implementation of the required bits for it (Item
12534         and Subitem).
12535
12536 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
12537
12538         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
12539         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
12540         Provide useful exception messages.
12541
12542 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12543
12544         * TrackBar.cs: Remove a warning.
12545         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
12546         when used by DateTimePicker, fixes #80287. This also requires that 
12547         MonthCalendar implements it's own drawing for the yearly updown control,
12548         otherwise the Capture tracking would be too complicated. Removed the Click 
12549         and DoubleClick events (according to comments they were hiding the base class
12550         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
12551         raise these events, not that they cannot be raised. It is possible to raise 
12552         them by calling OnClick and OnDoubleClick). Added two internal fields in 
12553         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
12554         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
12555         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
12556         event, no longer needed.
12557         
12558 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
12559
12560         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
12561         true if new value differs from current value.
12562
12563 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
12564
12565         * Control.cs: ControlCollection.Count must be public. Fixed build of
12566         unit tests.
12567
12568 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
12569
12570         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
12571
12572 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
12573
12574         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
12575
12576 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
12577
12578         * Control.cs: Invalidates control including when Width and Height is 
12579         equal zero or is not visible, only Paint event must be care about 
12580         this. Fixes #79913.
12581
12582 2006-12-26  Chris Toshok  <toshok@ximian.com>
12583
12584         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
12585         more corcompare work.
12586
12587         * DataGridView.cs: fix compiler warning.
12588
12589         * ColumnHeader.cs: some corcompare work, and also take the
12590         opportunity to make the internal fields private.
12591
12592         * ListView.cs: fix the fallout from the above field change.
12593
12594 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
12595
12596         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
12597         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
12598         ToolStripTextBox.cs: Fixes to events and corcompare.
12599
12600 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
12601
12602         * ListView.cs: Call owner.OnMousexx event to propagate events from
12603         item to ListView. Fixes #80367.
12604
12605 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
12606
12607         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
12608         if value is less than one. ItemHeight should not be set to a value
12609         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
12610         Removed extra tabs.
12611
12612 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
12613
12614         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
12615         * ToolStripStatusLabel.cs: Add Spring for Moma.
12616
12617 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
12618
12619         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
12620         Fixed code formatting. Removed debug code.
12621         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
12622
12623 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
12624
12625         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
12626         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
12627         ArgumentOutOfRangeException if ColumnCount is negative. In 
12628         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
12629         less than 4 or higher than 32768.
12630         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
12631         Fixed FormatProvider to return CurrentCulture unless explicitly set.
12632         Fixed IsFormatProviderDefault to return true if FormatProvider has
12633         not been explicitly set.
12634
12635 2006-12-25  Chris Toshok  <toshok@ximian.com>
12636
12637         * Application.cs: add a couple of 2.0 events.
12638
12639 2006-12-25  Chris Toshok  <toshok@ximian.com>
12640
12641         * Control.cs: fix compiler warning.
12642
12643         * AxHost.cs: corcompare fixes.
12644
12645         * ApplicationContext.cs: corcompare fixes.
12646
12647 2006-12-25  Chris Toshok  <toshok@ximian.com>
12648
12649         * Control.cs: only update dist_right/dist_bottom if the
12650         width/height is > 0.  this fixes anchored controls being resized
12651         smaller until they disappear and then resized larger again.
12652
12653 2006-12-25  Chris Toshok  <toshok@ximian.com>
12654
12655         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
12656         since they're nothing more than X/Left and Y/Top, respectively.
12657
12658         Also, move back to a per-control Bitmap/Graphics for
12659         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
12660         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
12661         Height.
12662
12663 2006-12-25  Miguel de Icaza  <miguel@novell.com>
12664
12665         * MessageBox.cs: Implemented overload that takes a new "bool
12666         displayHelpButton" by adding a new internal field "show_help".
12667         When clicked this will raise the HelpRequested on the owner or the
12668         main form. 
12669
12670         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
12671         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
12672
12673         * ListView.cs: Add support ColumnWidthChanged and
12674         ColumnWidthChanging. 
12675
12676         Add support for ColumnReordered event.
12677         (ReorderColumn): Add NET_2_0 specific support for cancelling the
12678         reorder.
12679
12680         Very nice codebase!
12681
12682         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
12683
12684         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
12685
12686 2006-12-24  Chris Toshok  <toshok@ximian.com>
12687
12688         * GridTablesFactory.cs: 2.0 corcompare work.
12689
12690         * ToolStripContainer.cs: add "override" to
12691         ContextMenuStripChanged, and remove the local event object.
12692
12693         * ToolStripDropDown.cs: same with a couple properties.
12694
12695         * ToolStripPanel.cs: same with AutoSizeChanged event.
12696
12697         * TextBoxBase.cs: add "override" to AutoSizeChanged.
12698
12699         * Form.cs: add the remaining 2.0 events, and do some corcompare
12700         attribute work.
12701
12702         * DateTimePicker.cs: add "new" to padding.
12703
12704         * ButtonBase.cs: use Control's use_compatible_text_rendering.
12705
12706         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
12707
12708         * DataGridView.cs: PaddingChanged is overridden.
12709
12710 2006-12-24  Chris Toshok  <toshok@ximian.com>
12711
12712         * Control.cs: corecompare work here too.
12713
12714         * DataGridViewElement.cs, DataGridView.cs,
12715         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
12716         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
12717         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
12718         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
12719         work.
12720
12721 2006-12-24  Miguel de Icaza  <miguel@novell.com>
12722
12723         * Control.cs: Switched the error message on the console for a
12724         todo.  A review of the code will have to cope with this anyways
12725         (since its a large feature, it is in our radar) and it was
12726         producing too much output when running PDN.
12727
12728         * ToolStripComboBox.cs: Set the text when the SelectedIndex
12729         changes.  Applications depend on this (PDN 2.72)
12730
12731 2006-12-23  Chris Toshok  <toshok@ximian.com>
12732
12733         * TableLayoutSettings.cs: finish up the corcompare work for this
12734         class.
12735
12736 2006-12-23  Chris Toshok  <toshok@ximian.com>
12737
12738         * Control.cs: make SetImplicitBounds internal, do some futzing
12739         with LayoutEngine so that it's available in 1.1, and remove the
12740         entire duplicated code mess from PerformLayout.  Use
12741         System.Windows.Forms.Layout.DefaultLayout instead.
12742
12743         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
12744
12745 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
12746
12747         * Form.cs: Add MainMenuStrip property.
12748
12749 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
12750
12751         * Control.cs: Add ContextMenuStrip property and implementation.
12752         Fix ContextMenu implementation to show menu centered on control when
12753         activated using the keyboard instead of showing at screen (0,0).
12754
12755         * ToolStripDropDown.cs: Fix needed overload of Show ().
12756
12757 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
12758
12759         * Menu.cs: Name property added for 2.0 profile.
12760         
12761 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
12762
12763         * Menu.cs: Update information about FindMenuItem, method to be
12764         implemented soon.
12765
12766 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
12767
12768         * MenuAPI.cs: When deselect items deselect also selected subitems.
12769         
12770 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
12771
12772         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
12773         FindSubItemByCoord to found itens that is not active, also an
12774         cheking added to FindSubItemByCoord to search for items only 
12775         in visible popup windows. Fixes #80274.
12776
12777 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
12778
12779         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
12780         internal property, it be care about change ExStyle. 
12781
12782 2006-12-22  Andreia Gaita  <avidigal@novell.com>
12783
12784         * ContainerControl.cs: set activeControl for parent forms up the 
12785         tree when the new activecontrol is a container.
12786         When validating the active control, if it is a container, also
12787         raise up the validation for it's active control. Fixes #80280
12788         
12789         * Control.cs: Add internal property flag and check to prevent
12790         Focus events from getting raised when Select() is called for
12791         a ContainerControl. There are still too many focus events being
12792         raised at the moment though.
12793         Cleaned up the code a bit.
12794
12795 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12796
12797         * Control.cs: Added all missing 2.0 events.and
12798         fixed a couple of corcompare issues.
12799         * TrackBar.cs: Implemented missing 2.0 bits.
12800         * MonthCalendar.cs, 
12801         * DateTimePicker.cs, 
12802         * MdiClient.cs: Fixed some corcompare issues.
12803
12804 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
12805
12806         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
12807         SplitterPanel.cs: corecompare work.
12808
12809 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
12810
12811         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
12812         Clean up warnings for BackgroundImageChanged and PaddingChanged
12813         events now that they are implemented in Control.cs.
12814
12815 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
12816
12817         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
12818         
12819         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
12820         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
12821         of TableLayoutPanel and supporting cast.
12822
12823 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12824
12825         * XplatUIWin32.cs: 
12826         - GrabWindow now confines the mouse pointer to the confine window.
12827         - Added Win32ClipCursor and Win32GetClipCursor.
12828
12829         * Control.cs: 
12830         - Added CaptureWithConfine to be able to capture and confine 
12831         mouse pointer.
12832         
12833         * InternalWindowManager.cs: 
12834         - Call CaptureWithConfine instead of Capture if we're an
12835         MdiChild (fixes #79982).
12836
12837 2006-12-21  Chris Toshok  <toshok@ximian.com>
12838
12839         * DataGrid.cs: guard against the initial state of selection, where
12840         selection_start == -1.  make sure we only select from index >= 0.
12841         Fixes bug #80291.
12842
12843 2006-12-21  Chris Toshok  <toshok@ximian.com>
12844
12845         * Control.cs: we don't need to be so draconian with
12846         UpdateDistances, and we thusly don't need to call it before
12847         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
12848
12849 2006-12-21  Daniel Nauck  <dna@mono-project.de>
12850
12851         * ComboBox.cs,
12852         TextBox.cs: Implemented AutoComplete properties.
12853
12854 2006-12-20  Chris Toshok  <toshok@ximian.com>
12855
12856         * DataGridView*.cs: some corecompare work.
12857
12858 2006-12-20  Jackson Harper  <jackson@ximian.com>
12859
12860         * XplatUIX11.cs: We need to hide the caret when deleting it,
12861         otherwise you get carets left lying around everywhere.
12862         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
12863         prevents getting some weird half drawn caret tracers when
12864         scrolling.
12865         * TextControl.cs: Attempt to reduce the number of times we need to
12866         recreate the caret.
12867
12868 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
12869
12870         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
12871
12872 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12873
12874         * DateTimePicker.cs:
12875         - Implemented missing 2.0 bits.
12876         - Changed some default values to match MS.
12877         
12878 2006-12-20  Jackson Harper  <jackson@ximian.com>
12879
12880         * TextBoxBase.cs: When changing the font across the document we
12881         can't recalculate after changing each line, since that will cahnge
12882         the line count.
12883         - PreferredHeight is a little different than i thought.
12884         - When backspacing, move the caret before we do the actual char
12885         delete, because when that delete crosses a wrap boundary the
12886         positional information will change.
12887
12888 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12889
12890         * Control.cs: Added some missing 2.0 bits: 
12891         BackgroundImageLayout, BackgroundImageLayoutChanged, 
12892         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
12893         add IBindableComponent and IDropTarget implementation.
12894         
12895         * MonthCalendar.cs: 
12896         - Added all missing 2.0 features:
12897         BackgroundImageLayout, RightToLeftLayout, 
12898         OnHandleDestroyed, RightToLeftLayoutChanged, 
12899         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
12900         PaddingChanged.
12901         - Rewrote all the BoldDate code, it was completely broken.
12902         - Fixed all the tests (the tests can now be re-enabled, the
12903         problems were not with the tests, but with the control, it was
12904         mostly broken).
12905         
12906         * DateTimePicker.cs: Changed the location where the 
12907         MonthCalendar is shown.
12908         
12909 2006-12-19  Chris Toshok  <toshok@ximian.com>
12910
12911         * DataGridView.cs: add IDropTarget implementation.
12912
12913         * ToolStripPanel.cs: add IDropTarget implementation.
12914
12915 2006-12-19  Jackson Harper  <jackson@ximian.com>
12916
12917         * TextControl.cs: soft now means something different than what it
12918         used to mean, we want to move the caret regardless of whether or
12919         not this break was soft (would we really have wanted the caret
12920         to not move with the break in the old context?)
12921         * TreeView.cs: Make sure we factor in the vert scrollbar when
12922         calculating the horizontal scrollbar's maximum.
12923
12924 2006-12-19  Andreia Gaita  <avidigal@novell.org>
12925
12926         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
12927         check for keywords in alternate casing, close bug #80049.
12928
12929 2006-12-19  Chris Toshok  <toshok@ximian.com>
12930
12931         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
12932         methods (which all do nothing).
12933
12934         * IDropTarget.cs: add the 4 missing methods.
12935
12936 2006-12-19  Chris Toshok  <toshok@ximian.com>
12937
12938         * TableLayoutRowStyleCollection.cs: corcompare work.
12939         
12940         * TableLayoutSettings.cs: same.
12941
12942         * TableLayoutStyle.cs: same.
12943
12944         * TableLayoutColumnStyleCollection.cs: same.
12945
12946 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
12947
12948         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
12949         TableLayoutPanel I've had in my local tree for way too long.
12950
12951 2006-12-19  Miguel de Icaza  <miguel@novell.com>
12952
12953         * TableLayoutSettings.cs: Finish the public API (still needs all
12954         the logic to update on changes). 
12955
12956         * TableLayoutPanelCellPosition.cs: new file.
12957         
12958         * TableLayoutRowStyleCollection.cs,
12959         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
12960         TableLayoutSettings.cs: Track the final 2.0 table api.
12961
12962 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12963
12964         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
12965         and Image List 2.0 members for ColummnHeader.
12966         * ListView.cs: Add key-related 2.0 methods for
12967         ColumnHeaderCollection.
12968
12969 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
12970
12971         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
12972         ArgumentNullException if items argument is null. Ignore null item in
12973         arrays. Removed extra tabs.
12974
12975 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
12976
12977         * MonthCalendar.cs: Fixed InvalidCastException.
12978
12979 2006-12-19  Jackson Harper  <jackson@ximian.com>
12980
12981         * TextControl.cs: Don't increment the position here.
12982         - When calculating char positions only add in the line break size
12983         for hard line breaks.
12984
12985 2006-12-19  Andreia Gaita  <avidigal@novell.org>
12986
12987         * SendKeys.cs: Changed some things to match ms.net behaviour
12988         when parsing shifted capital letters.
12989         
12990         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
12991         Add window handle as parameter to SendInput. X11 needs the 
12992         window handle, and the handle being passed      to it in the keys 
12993         queue is the active control handle (which windows needs), not 
12994         the window handle.
12995         
12996         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
12997         to support SendKeys on X.       
12998         
12999         * X11Keyboard: Implement helper method to lookup a linux keycode
13000         given the virtual keycode. Added table of keycode-2-virtualkey
13001         values to support this.
13002
13003 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13004
13005         * ListView.cs: Add support for SelectedIndexCollection
13006         and SelectedItemCollection 2.0 methods. Implement support
13007         for ImageKey too.
13008         * ListViewItem.cs: Add support for ListViewSubItemCollection
13009         2.0 methods. Also, fix an incorrect behavior of AddRange method
13010         (it shouldn't call Clear).
13011         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
13012
13013 2006-12-19  Jackson Harper  <jackson@ximian.com>
13014
13015         * RichTextBox.cs: 
13016         * TextBoxBase.cs: New args for FormatText
13017         * TextControl.cs: Rewrote the main drawing method, this version
13018         feels a little easier to understand and debug to me.  Hopefully it
13019         does to others also
13020         - Fix FormatText to OR in the new formating values.  Added
13021         FormatSpecified param, basically this works in the same way as
13022         BoundsSpecified in Control.
13023         - Set the caret properties when the caret is positioned.
13024         - When wrapping text make sure that we calculate the width of the
13025         last character
13026         - when calculating alignments we might have wrapped down to the
13027         next line, so don't search for an individual tag, search for the
13028         end of the line
13029         - We need to invalidate the selection area when we replace the
13030         selection.
13031         
13032 2006-12-19  Daniel Nauck  <dna@mono-project.de>
13033
13034         * Application.cs: add Restart () 2.0 support
13035
13036 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
13037
13038         * MenuItem.cs: Invalidate menu item rectangle after change Enable
13039         property. Fixes #80268.
13040         
13041 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
13042
13043         * MenuAPI.cs: Dont trigger select event when closes top menu
13044         item. Fixes #80270.
13045
13046 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
13047
13048         * MenuAPI.cs: When you click on menuitem only trigger onselect
13049         event for top menu itens. Fixes #80271.
13050         
13051 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13052
13053         * MdiWindowManager.cs: Make IconicBounds depend on
13054         the bottom of MdiClient, not the top (fixes #80267)
13055         
13056 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13057
13058         * MdiClient.cs: Added missing 2.0 attribute
13059
13060 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13061
13062         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
13063         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
13064
13065 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
13066
13067         * MenuAPI.cs: Fix click when menuitem is not popup,
13068         this regression was caused by last commit (#80272).
13069
13070 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
13071
13072         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
13073         fire click event or close menu. Fixes #80272.
13074
13075 2006-12-17  Daniel Nauck  <dna@mono-project.de>
13076
13077         * ListViewHitTestInfo.cs: add
13078
13079 2006-12-17  Daniel Nauck  <dna@mono-project.de>
13080
13081         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
13082         * FlatButtonAppearance.cs: add
13083         * DockingAttribute.cs: add
13084
13085 2006-12-17  Chris Toshok  <toshok@ximian.com>
13086
13087         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
13088         and rebind our columns when it does - this way, if you make
13089         changes to the DataTable (or set the Table attribute on a DataView
13090         after setting it as the DataGrid's DataSource, the changes are
13091         made visible.)  Fixes bug #80107.
13092
13093 2006-12-17  Daniel Nauck  <dna@mono-project.de>
13094
13095         * ListViewGroup.cs: add internal Location property for layouting.
13096         * Theme.cs: add abstract ListViewGroupHeight function.
13097         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
13098
13099 2006-12-16  Andreia Gaita  <avidigal@novell.com>
13100
13101         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
13102         Added reset of selected index to 0 when adding first tab page.
13103         Fixes #80264
13104         
13105         * NumericUpDown.cs: Fix NET_2_0 check
13106
13107 2006-12-16  Daniel Nauck  <dna@mono-project.de>
13108
13109         * ListViewGroup.cs: fixed DefaultValueAttribute value
13110
13111 2006-12-16  Daniel Nauck  <dna@mono-project.de>
13112
13113         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
13114
13115 2006-12-15  Miguel de Icaza  <miguel@novell.com>
13116
13117         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
13118         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
13119         ScrollableControl.cs: Add a handful of methods that are
13120         overwritten in 2.0 
13121
13122 2006-12-15  Chris Toshok  <toshok@ximian.com>
13123
13124         * XplatUIWin32.cs: initial implementation of the Reversible
13125         drawing functions.  there are some problems.  DrawReversibleFrame
13126         doesn't seem to work at all for Dashed FrameStyle, and in the
13127         Thick case there are drawing errors at the corners (we probably
13128         need to bind Rectangle instead of doing moveto/lineto's.)
13129
13130 2006-12-16  Andreia Gaita  <avidigal@novell.com>
13131         
13132         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
13133         to send blocks of key messages. Send accumulates keys to send with Flush, 
13134         while SendWait sends all keys immediately.
13135                 
13136         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
13137         XplatUIX11.cs,  XplatUIX11-new.cs:
13138         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
13139         to Win32 SendInput.
13140         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
13141         
13142         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
13143         testing for ms.net on this class is very tricky, as the tests run too fast 
13144         to allow the hook to release, essentially freezing the keyboard and the 
13145         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
13146         category :p
13147
13148 2006-12-16  Daniel Nauck  <dna@mono-project.de>
13149
13150         * Padding.cs: fixed serialization compability to MS ("_var" field names),
13151                         added missing attributes.
13152  
13153 2006-12-15  Daniel Nauck  <dna@mono-project.de>
13154
13155         * ListViewGroup.cs: Added missing attributes.
13156         * ListViewGroupCollection.cs: Added missing attributes.
13157
13158 2006-12-15  Daniel Nauck  <dna@mono-project.de>
13159
13160         * ListViewItem.cs: fixed ListViewSubItem text property.
13161
13162 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13163         
13164         * Control.cs: Added missing 2.0 attributes
13165         
13166 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13167         
13168         * MdiClient.cs: Added missing 2.0 attribute.
13169         * MonthCalendar.cs: Added some missing 2.0 attributes 
13170         and properties.
13171         
13172 2006-12-15  Daniel Nauck  <dna@mono-project.de>
13173
13174         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
13175
13176 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
13177
13178         * MainMenu.cs: Add the new 2.0 constructor to help out people
13179         using the MainMenu in VS2005.
13180
13181 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13182         
13183         * MdiChildContext.cs: Removed it, no longer used.
13184         * MdiClient.cs: Added missing 2.0 attributes.
13185         
13186 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13187         
13188         * InternalWindowManager.cs: Fix a NullRef with previous 
13189         changes for toolwindows.
13190         
13191 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13192
13193         * Control.cs: 
13194         - Added AfterTopMostControl to allow for certain controls 
13195         to always stay on top when normal controls are brought to 
13196         front.
13197         
13198         * XplatUIWin32.cs: 
13199         - (DrawInversibleRectangle): Get window rectangle from Win32 
13200         in stead of from control, since Win32 doesn't calculate
13201         screen coords correctly from control's Location if it 
13202         have docked siblings.
13203         
13204         * MdiWindowManager.cs:
13205         - Correct the control menu popup location when clicked on
13206         the maximized form icon. (fixes #80223.1)
13207         - Don't show moving rectangle if mouse hasn't moved from
13208         the original clicked point.
13209         - Removed FormGotFocus handler (not used).
13210         - Calculate the control buttons location from the main
13211         window's size and not client size (fixes #79770).
13212         - Form is now closed when the form icon is double-clicked
13213         (fixes #79775). 
13214         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
13215         
13216         * InternalWindowManager.cs:
13217         - Moved some MDI-only methods to MdiWindowManager.
13218         - Removed unused properties and methods.
13219         - Unified method naming for methods handling wm messages.
13220         - Moved all message handling to seperate methods for
13221         each message.
13222         
13223         * ThemeWin32Classic.cs:
13224         - DrawManagedWindowDecorations now draws the title bar 
13225         with a gradient brush.
13226         - Add a CPDrawButtonInternal that allows us to specify
13227         light, normal and dark colors for the buttons (control 
13228         buttons for MDI children were drawn with the same light
13229         color as the background, therefore loosing the 3D effect).
13230         
13231         * SizeGrip.cs:
13232         - Add a CapturedControl property that is used to 
13233         determine the control to resize (defaults to parent). 
13234         Needed for MdiClient, since its SizeGrip's parent is
13235         MdiClient, but the control to resize is the main form.
13236         
13237         * MdiClient.cs:
13238         - Set SizeGrip's CapturedControl to the main form in order
13239         to resize the main form and not the MdiClient.
13240         - Override AfterTopMostControl to leave the scrollbars 
13241         always on top.
13242
13243 2006-12-15  Daniel Nauck  <dna@mono-project.de>
13244
13245         * ListView.cs: fixed ListViewItemCollection AddRange and
13246                         implemented ListViewItemCollection AddRange 2.0 support.
13247
13248 2006-12-15  Daniel Nauck  <dna@mono-project.de>
13249
13250         * ListViewGroup.cs: Add.
13251         * ListViewGroupCollection.cs: Add
13252         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
13253         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
13254                                 stub for ImageKey 2.0 support.
13255
13256 2006-12-14  Mike Kestner  <mkestner@novell.com>
13257
13258         * ListView.cs: add text padding to the autocalculation for columns
13259         of width -2.  Fixes #80207.
13260  
13261 2006-12-14  Mike Kestner  <mkestner@novell.com>
13262
13263         * ListView.cs: add some index guarding for partial row navigation 
13264         logic.  Fixes #80250.
13265
13266 2006-12-14  Mike Kestner  <mkestner@novell.com>
13267
13268         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
13269         are added or inserted to the collection.  Fixes #81099.
13270
13271 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
13272
13273         * MenuAPI.cs: Closes menu when right click out side of popup
13274         it fix problem in ContextMenu and MainMenu. Fixes #80252.
13275
13276 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13277
13278         * ListViewItem.cs: Fix dumb error.
13279
13280         * ListView.cs: Add Find and ContainsKey methods in 
13281         ListViewItemCollection, and also return true for IsReadOnly
13282         and IsFixedSize (changes for 2.0). 
13283
13284 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
13285
13286         * Control.cs: Allow Region to be set to null.
13287
13288 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13289
13290         * MdiWindowManager.cs: Remove unused (commented out) code.
13291         * Form.cs: When the MdiChild is maximized, the form needs 
13292         WM_NCMOUSELEAVE, so request it.
13293         * InternalWindowManager.cs: 
13294         - Added tooltips to control buttons.
13295         - Removed duplicated control button handling code.
13296         - Removed unused (commented out) code.
13297         
13298 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
13299
13300         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
13301         was used because we must set cursor without trigger ChangeCursor event
13302         and without change Cursor control property. Fixes #79963.
13303
13304 2006-12-12  Andreia Gaita  <avidigal@novell.com>
13305         
13306         * Control.cs: Check if Region setter value is null, and ignore
13307
13308 2006-12-12  Jackson Harper  <jackson@ximian.com>
13309
13310         * TextControl.cs: We were almost always drawing one more line then
13311         needed, since the GetLineByPixel will return the last line found
13312         at that pixel. In most cases though, we were invalidating up to
13313         the junction between two lines.
13314         - Improve debug code.
13315
13316 2006-12-12  Chris Toshok  <toshok@ximian.com>
13317
13318         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
13319         and FillReversibleRectangle.
13320
13321         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
13322         and FillReversibleRectangle.
13323
13324         * XplatUIWin32.cs: add stubs which do nothing for
13325         DrawReversibleFrame, DrawReversibleLine, and
13326         FillReversibleRectangle.
13327
13328         * XplatUIOSX.cs: add stubs which raise NIE for
13329         DrawReversibleFrame, DrawReversibleLine, and
13330         FillReversibleRectangle.
13331
13332         * XplatUIX11.cs: add working implementation for
13333         DrawReversibleFrame, DrawReversibleLine, and
13334         FillReversibleRectangle.
13335         
13336         * ControlPaint.cs: implement DrawReversibleFrame,
13337         DrawReversibleLine, and FillReversibleRectangle, by calling into
13338         the appropriate XplatUI method.
13339
13340 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13341
13342         * Form.cs: Make MdiClient have the focus even if it's
13343         not selectable, since it should receive WM_KEY* and WM_MOUSE 
13344         messages. Fixes #79907.
13345         
13346 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13347
13348         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
13349         queried after the window is created.
13350         
13351         * XplatUIX11.cs: Added SendParentNotify to implement 
13352         WM_PARENTNOTIFY logic. Fixes #79965.
13353         
13354         * Control.cs: Added MakeParam.
13355         
13356 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13357
13358         * MdiClient.cs: Resume Layout before setting window
13359         states (fixes #80201).
13360
13361 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13362
13363         * MenuAPI.cs: Deselect a menu item after performing
13364         the click (fixes #80197).
13365
13366 2006-12-11  Jackson Harper  <jackson@ximian.com>
13367
13368         * TextBoxBase.cs: We need to cap this value, since Maximum -
13369         ViewPortHeight can be less than zero.
13370         - Only do selection with the left mouse button.
13371         * TextBox.cs: Don't tell the world that we have a context menu.
13372         * Control.cs: New method so that we can control whether or not the
13373         context menu is visible outside MWF.
13374
13375 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
13376
13377         * ToolBarButton.cs: Fix text positon. 
13378
13379 2006-12-11  Miguel de Icaza  <miguel@novell.com>
13380
13381         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
13382
13383         * Control.cs (DoubleBuffered): Add implementation.
13384
13385         * Application.cs (OpenForms): Add.
13386
13387 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
13388
13389         * Form.cs: Use opacity instead of Opactiy to determine if we need
13390         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
13391
13392 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
13393
13394         * Control.cs: Fix NRE if Control.Site was set to null.
13395
13396 2006-12-11  Chris Toshok  <toshok@ximian.com>
13397
13398         * Control.cs: ControlCollection.Remove should return if the arg is
13399         null, and ControlCollection.SetChildIndex should raise a ANE.
13400
13401 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
13402
13403         * Control.cs: Verify value set for Dock property. Code formatting
13404         updates.
13405
13406 2006-12-11  Jackson Harper  <jackson@ximian.com>
13407
13408         * TextControl.cs: Draw the caret and the selection when a flag is
13409         set on the owner.
13410         * TextBoxBase.cs: We want to draw the caret and the selection for
13411         TextBox but not for TextBoxBase.
13412         - If the window is resized and scrolling is no longer needed (the
13413         whole doc is visible) set the scroll position to zero.
13414         - The default SelectWord (the one TextBox uses) should move the
13415         caret to the end of the word.
13416         - SelectAll moves the caret to the end of the selection.
13417         * TextBox.cs: We don't selectall on focus, we just do it when the
13418         control is created.
13419         
13420 2006-12-11  Mike Kestner  <mkestner@novell.com>
13421
13422         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
13423
13424 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13425
13426         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
13427         2.0 support.
13428         * ListViewItem.cs: Add Name 2.0 property.
13429
13430 2006-12-11  Andreia Gaita  <avidigal@novell.com>
13431
13432         * TabControl.cs: Set visibility on selected or default tab 
13433         when tabcontrol handle is created, so that it's contents
13434         actually show up (duh). Fixes #80193
13435         Don't redraw the control if there is no handle created, as
13436         the selected index might be completely invalid. Added some tests
13437         to check for this.
13438
13439 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
13440
13441         * ToolBar.cs: Uses maximun width and height of all buttons as 
13442         button rectangle when ButtonSize specified, it looks strange but
13443         is what happens in Win32. Fixes #80189.
13444
13445 2006-12-11  Jackson Harper  <jackson@ximian.com>
13446
13447         * TextControl.cs: Need to track undo levels ourself, since
13448         compound actions will mess them up.
13449
13450 2006-12-10  Andreia Gaita  <avidigal@novell.com>
13451
13452         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
13453         SelectedIndex value is changed (even if it's not valid).
13454         Reset SelectedIndex to 0 when the handle is created and if
13455         the current index is invalid.
13456         Fixes SelectdeIndex unit tests and #80128
13457
13458 2006-12-08  Chris Toshok  <toshok@ximian.com>
13459
13460         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
13461         calls EndEdit, it needs to be called before we set current_cell to
13462         its new value.  Otherwise, we end up committing the value in the
13463         textbox to the new cell as well.  Fixes bug #80160.
13464
13465 2006-12-08  Chris Toshok  <toshok@ximian.com>
13466
13467         * Form.cs (set_CancelButton): if the button's DialogResult is
13468         None, set it to Cancel.  Fixes bug 80180.
13469
13470 2006-12-08  Jackson Harper  <jackson@ximian.com>
13471
13472         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
13473         to watch ourselves when setting the canvas size and setting the
13474         scrollbar values.
13475
13476 2006-12-08  Chris Toshok  <toshok@ximian.com>
13477
13478         * DataGrid.cs: comment out the two MakeTransparent calls for the
13479         time being so people using trunk (and not 1.2.2) on windows can
13480         actually use the datagrid.  This deals with bug #80151.
13481
13482 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
13483
13484         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
13485         Graphics.DrawImage (image, int, int, int, int) overload instead
13486         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
13487         the dpi difference and was blurring images it drew.
13488         [Fixes bug #79960]
13489
13490 2006-12-08  Chris Toshok  <toshok@ximian.com>
13491
13492         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
13493         rowcnt is 0 (such as with an empty datasource), and make sure we
13494         initialize not_usedarea.Y to cells.Y, so we don't draw over the
13495         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
13496
13497 2006-12-08  Chris Toshok  <toshok@ximian.com>
13498
13499         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
13500         grid.
13501
13502 2006-12-08  Chris Toshok  <toshok@ximian.com>
13503
13504         [ Fixes bug #80167 ]
13505         
13506         * ThemeWin32Classic.cs: don't draw the image if the button's flat
13507         style is FlatStyle.System.
13508
13509         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
13510         ButtonBase.flat_style private, and switch uses of it to the public
13511         property.
13512         
13513 2006-12-08  Chris Toshok  <toshok@ximian.com>
13514
13515         [ Fixes bug #80121 ]
13516         
13517         * ThemeWin32Classic.cs: center the caption text in the datagrid
13518         when we draw it.
13519
13520         * DataGrid.cs: lessen the amount we add to the caption height from
13521         6 to 2.  6 was making it huge.
13522
13523 2006-12-08  Andreia Gaita  <avidigal@novell.com>
13524
13525         * UpDownBase: Handle MouseWheel call directly instead of capturing
13526         the inner textbox's OnMouseWheel. Fixes #80166
13527
13528 2006-12-08  Jackson Harper  <jackson@ximian.com>
13529
13530         * TextControl.cs: We need to invalidate the textbox when we empty
13531         it (how had this not been discovered before?)
13532
13533 2006-12-08  Jackson Harper  <jackson@ximian.com>
13534
13535         * TextBoxBase.cs: Reworked the mouse down code so I could get it
13536         to behave like MS, we now ignore the eventargs.Click and just
13537         track state ourself, which we were already doing anyways.
13538         - Constrain the double click handler to the double click size.
13539         
13540 2006-12-08  Chris Toshok  <toshok@ximian.com>
13541
13542         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
13543         direction if that scrollbar isn't shown.  fixes bug #80158.
13544
13545 2006-12-08  Andreia Gaita  <avidigal@novell.com>
13546
13547         * NumericUpDown.cs: Update value on getter. Fixes #79950
13548
13549 2006-12-08  Chris Toshok  <toshok@ximian.com>
13550
13551         * MenuItem.cs: add back in the event cloning code.  I didn't know
13552         how to do it in the face of the EventHandlerList work i'd done
13553         last week.  Fixes bug #80183.
13554
13555 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
13556
13557         * Control.cs: Add an invalidate to the BackgroundImage setter.
13558         [Fixes 80184]
13559
13560 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
13561
13562         * ToolStrip*: Add some small properties reported by MoMA, fix event
13563         firing and default properties based off of unit tests, and add some
13564         attributes based off of the class status page.
13565
13566 2006-12-07  Jackson Harper  <jackson@ximian.com>
13567
13568         * TextBoxBase.cs: Take HideSelection into account when determining
13569         whether or not to show the selection.
13570         * RichTextBox.cs: After inserting the RTF into the document move
13571         the cursor to the beginning of the document.
13572
13573 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
13574
13575         * Control.cs: Remove static ArrayList "controls" which maintained
13576         a reference to every control created.
13577         * Application.cs: Create a static FormCollection to maintain a reference
13578         to every form created.  Use it in places that formerly enumerated through
13579         the controls one looking for forms.
13580         * Form.cs: Add and remove self from above FormCollection.
13581
13582 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
13583
13584         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
13585           not libgdk (though it makes me wonder why I didn't have any
13586           problems)
13587
13588 2006-12-07  Chris Toshok  <toshok@ximian.com>
13589
13590         [ you had to know this was coming after that last commit...]
13591         
13592         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
13593         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
13594         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
13595         XCopyArea).
13596
13597 2006-12-07  Chris Toshok  <toshok@ximian.com>
13598
13599         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
13600         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
13601         all the behavior we need for double buffering.
13602
13603         * XplatUIDriver.cs: implement the 3 double buffer methods using a
13604         client side Bitmap, just like the old Control-based double buffer
13605         code did.  The methods are virtual, so each XplatUI driver
13606         subclass can replace the implementation to use a faster, platform
13607         specific approach.
13608
13609         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
13610         double buffer code, and clean things up a bit in the process.
13611
13612 2006-12-06  Chris Toshok  <toshok@ximian.com>
13613
13614         * Control.cs: reindent WndProc.
13615
13616 2006-12-06  Chris Toshok  <toshok@ximian.com>
13617
13618         [ I wanna be like BenM when I grow up ]
13619         
13620         * Hwnd.cs: create a single static Graphics object on the static
13621         Bitmap we create.  use this for our text measurements.
13622
13623         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
13624         This was causing us to allocate a backbuffer for every control,
13625         even when it wasn't flagged as double buffered.  Instead use the
13626         single graphics instance.  This might have implications for
13627         multithreaded applications.  If we run into problems we can switch
13628         to creating 1 Graphics per control, on the static Hwnd bitmap.
13629
13630         this change nets us a 7M savings in private dirty mappings when
13631         running FormsTest.exe.
13632
13633 2006-12-06  Chris Toshok  <toshok@ximian.com>
13634
13635         * ListView.cs: the BackgroundImage override is just to set
13636         attributes.  chain up to base.BackgroundImage.
13637
13638         * RichTextBox.cs: same.
13639
13640         * ToolBar.cs: same, but we need to also redraw the toolbar when it
13641         changes, so instead a handler for BackgroundImageChanged.
13642         
13643         * Control.cs: make background_image private.
13644
13645 2006-12-06  Chris Toshok  <toshok@ximian.com>
13646
13647         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
13648         sure we even need this assignment, but roll with it for now.
13649
13650         * Control.cs: make the cursor field private.
13651
13652 2006-12-06  Chris Toshok  <toshok@ximian.com>
13653
13654         * Form.cs: we don't need to explicitly set ImeMode to
13655         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
13656         behavior in the face of ImeMode.Inherit.
13657
13658         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
13659         change the ctor's assignment to use ImeMode instead of ime_mode.
13660
13661         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
13662         ImeModeInherit.  Only check for the parent's imemode (and return
13663         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
13664         This fixes the button unit test, which sets both ImeMode and
13665         DefaultImeMode to ImeMode.Disable.
13666
13667         also make the ime_mode field private.
13668
13669 2006-12-06  Chris Toshok  <toshok@ximian.com>
13670
13671         * Control.cs: make control_style private.
13672
13673         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
13674         setting the styles to true, then setting them to false instead of
13675         reverting to their previous values.
13676
13677         also, call SetStyle on the scrollbars instead of using
13678         control_style directly.
13679
13680 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
13681
13682         * FormCollection.cs: Implement. [2.0]
13683
13684 2006-12-06  Chris Toshok  <toshok@ximian.com>
13685
13686         * Control.cs: make tab_stop private.
13687
13688         * Label.cs: set TabStop, not tab_stop.  reformat some event
13689         add/remove methods to make them more compact.
13690
13691 2006-12-06  Chris Toshok  <toshok@ximian.com>
13692
13693         * RadioButton.cs: fix TabStop handling.
13694
13695 2006-12-06  Chris Toshok  <toshok@ximian.com>
13696
13697         * TextBox.cs: remove the explicit assignments to has_focus.
13698         Control does that.
13699
13700         * ButtonBase.cs: remove the assignment to has_focus.  Control will
13701         manage that.
13702         
13703 2006-12-06  Chris Toshok  <toshok@ximian.com>
13704
13705         * ButtonBase.cs: remove all uses of is_enabled from this code.
13706         it's always true when any of the code containing the checks is
13707         executed.
13708
13709 2006-12-06  Chris Toshok  <toshok@ximian.com>
13710
13711         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
13712         with different semantics (some are present in both 1.1 and 2.0
13713         profiles) so that we match MS's behavior in our unit tests.
13714
13715 2006-12-06  Jackson Harper  <jackson@ximian.com>
13716
13717         * TextControl.cs: Make this operation undoable.
13718         * TextBoxBase.cs: Factor the border width into the preferred
13719         height.
13720         - implement Modified as per the spec.
13721
13722 2006-12-06  Chris Toshok  <toshok@ximian.com>
13723
13724         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
13725
13726 2006-12-06  Chris Toshok  <toshok@ximian.com>
13727
13728         * Control.cs: make right_to_left and context_menu fields private.
13729
13730 2006-12-06  Chris Toshok  <toshok@ximian.com>
13731
13732         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
13733         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
13734         Control.child_controls private.  switch all uses over to
13735         Control.Controls.
13736
13737 2006-12-06  Chris Toshok  <toshok@ximian.com>
13738
13739         * System.Windows.Forms/GroupBox.cs,
13740         System.Windows.Forms/AccessibleObject.cs,
13741         System.Windows.Forms/ErrorProvider.cs,
13742         System.Windows.Forms/Control.cs,
13743         System.Windows.Forms/UpDownBase.cs,
13744         System.Windows.Forms/ScrollBar.cs,
13745         System.Windows.Forms/DateTimePicker.cs,
13746         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
13747         System.Windows.Forms/ToolTip.cs,
13748         System.Windows.Forms/RadioButton.cs,
13749         System.Windows.Forms/LinkLabel.cs,
13750         System.Windows.Forms/Splitter.cs,
13751         System.Windows.Forms/TextBoxBase.cs,
13752         System.Windows.Forms/ToolStripTextBox.cs,
13753         System.Windows.Forms/ContainerControl.cs,
13754         System.Windows.Forms/ThemeWin32Classic.cs,
13755         System.Windows.Forms/SizeGrip.cs,
13756         System.Windows.Forms/ToolStripDropDown.cs,
13757         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
13758         private.  switch all uses over to Control.Parent.
13759
13760 2006-12-06  Chris Toshok  <toshok@ximian.com>
13761
13762         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
13763         Control does this before calling emitting these events.
13764
13765         * TabControl.cs: same.
13766
13767         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
13768         Control.client_rect.
13769
13770         * ButtonBase.cs: use the ClientSize property instead of the
13771         client_size field.
13772
13773         * ScrollableControl.cs: same.
13774
13775         * Control.cs: another pass at making properties private.  also,
13776         move the initialization of tab_stop to the ctor.
13777
13778 2006-12-05  Andreia Gaita <avidigal@novell.com>
13779
13780         * TabControl.cs: Let the selected index be set freely if the 
13781         control handle is not yet created.
13782
13783 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
13784
13785         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
13786         internal until I can rewrite DefaultLayout.
13787         * ToolStrip.cs: Fix build error and some general cleaning.
13788         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
13789         Fix build errors caused by making some of Control's fields private.
13790
13791 2006-12-05  Jackson Harper  <jackson@ximian.com>
13792
13793         * TextControl.cs: Redo Insert a little so that it use IndexOf
13794         instead of Split, this prevents it from messing up on things like
13795         \n\n\n. Also more effecient since the split array doesn't need to
13796         be created.
13797         * TextBoxBase.cs: AppendText doesnt handle multiline and non
13798         multiline text differently, this is the first of many fixes that
13799         will make multiline/non-multiline the same thing as far as the
13800         TextBoxBase is concerned.
13801         - Don't split the text and insert lines, this can lose some line
13802         endings (like is the last line a soft or hard break). Instead use
13803         the new Insert.
13804         - Fix an off by one when combining all the lines in the Text
13805         getter.
13806         - Remove separate multiline handling from the Text getter/setter.
13807
13808 2006-12-05  Chris Toshok  <toshok@ximian.com>
13809
13810         * ButtonBase.cs: a few changes:
13811
13812         - don't reinitialize internal Control fields in the ctor when they
13813         have the same values as Control sets them.
13814
13815         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
13816         this before calling those methods.
13817
13818         - we don't need to call Refresh for anything.  use Invalidate
13819         instead.
13820
13821         - OnEnabledChanged doesn't need to redraw at all - Control.cs
13822         calls Refresh in its OnEnabledChanged.
13823         
13824         - several of the events we were registered for in the ctor to
13825         redraw ourselves already include calls to Invalidate in the
13826         property setters that raise the events.  remove the extra
13827         invalidation.
13828
13829         - reformat a switch statement that was 83274658 columns wide.
13830         
13831 2006-12-05  Mike Kestner  <mkestner@novell.com>
13832
13833         * ComboBox.cs: fix a unit test regression from a TextBox
13834         SelectionLength return of -1 when there's no selection.  
13835
13836 2006-12-05  Chris Toshok  <toshok@ximian.com>
13837
13838         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
13839         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
13840         cleaning up some of the internal Control fields being used by
13841         subclasses.
13842
13843 2006-12-05  Mike Kestner  <mkestner@novell.com>
13844
13845         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
13846         listbox after AddImplicit calls since it defaults to hidden. Add a 
13847         hack to preserve requested heights across DropDownStyle changes.
13848
13849 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
13850
13851         * PropertyGrid.cs: Hide FindFirstItem method from public API.
13852
13853 2006-12-05  Chris Toshok  <toshok@ximian.com>
13854
13855         * DataGridView.cs: fix compiler warnings.
13856
13857         * PrintControllerWithStatusDialog.cs: same.
13858
13859         * ToolBar.cs: same.
13860
13861         * FolderBrowserDialog.cs: same.
13862
13863         * Splitter.cs: same.
13864
13865         * DataGridViewComboBoxCell.cs: same.
13866
13867         * XplatUIWin32.cs: same.
13868
13869         * PictureBox.cs: same.
13870
13871         * Win32DnD.cs: same.
13872
13873         * PageSetupDialog.cs: same.
13874
13875         * FileDialog.cs: same.
13876
13877         * PrintDialog.cs: same.
13878
13879         * DataGridTextBoxColumn.cs: same.
13880
13881         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
13882
13883 2006-12-05  Chris Toshok  <toshok@ximian.com>
13884
13885         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
13886         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
13887         System.ComponentModel.EventHandlerList work.
13888
13889 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
13890
13891         * DrawTreeNodeEventArgs.cs: Added.
13892
13893 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13894         
13895         * InternalWindowManager.cs: Remove an unused field.
13896         
13897 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13898
13899         * InternalWindowManager.cs:
13900         - Save the point where the title bar is clicked.
13901         
13902         * MdiWindowManager.cs:
13903         - Only allow moving of the window as long as the 
13904         clicked point on the title bar does not get out of
13905         MdiClient's rectangle. Fixes #79982.
13906         
13907         * MdiClient.cs:
13908         - Added Horizontal/VerticalScrollbarVisible.
13909         - Simplified the scrollbar sizing algorithm.
13910         - Cache the difference in scrolled value in
13911         H/VBarValueChanged and move the calculation out
13912         of the for loop.
13913
13914 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13915
13916         * Control.cs: Make the Console.WriteLine in WndProc 
13917         write more info.
13918
13919 2006-12-05  Chris Toshok  <toshok@ximian.com>
13920
13921         * ToolStripManager.cs, ToolStripButton.cs,
13922         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
13923         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
13924         ToolStripSplitButton.cs, ToolStripSeparator.cs,
13925         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
13926         ToolStripProgressBar.cs, ToolStripContainer.cs,
13927         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
13928         to using System.ComponentModel.EventHandlerList.
13929
13930 2006-12-04  Chris Toshok  <toshok@ximian.com>
13931
13932         * LinkLabel.cs: fix up compiler warnings.
13933
13934         * TableLayoutSettings.cs: same.
13935
13936         * TreeView.cs: same.
13937
13938         * ToolBar.cs: same.
13939
13940         * TabControl.cs: same.
13941
13942         * RichTextBox.cs: same.
13943
13944         * ListViewItem.cs: same.
13945
13946         * PropertyGrid.cs: same.
13947
13948         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
13949
13950         * ToolTip.cs same.
13951
13952         * TextRenderer.cs: fix up compiler warnings.
13953
13954         * Label.cs: same.
13955
13956         * Form.cs: corcompare fixes.
13957
13958         * PictureBox.cs: fix up compiler warnings.
13959
13960         * ImageListStreamer.cs: same.
13961
13962         * TrackBar.cs: corcompare fix.
13963
13964         * Control.cs: fix up compiler warnings.
13965
13966         * SplitterPanel.cs: same.
13967
13968         * NumericTextBox.cs: same.
13969
13970         * ImageList.cs: same.
13971
13972         * StatusStrip.cs: same.
13973
13974         * ProgressBar.cs: corcompare fix.
13975
13976         * ToolStripButton.cs: fix up compiler warnings.
13977
13978         * ToolStripStatusLabel.cs: same.
13979
13980         * ToolStripSplitButton.cs: same.
13981
13982         * ToolStripSeparator.cs: same.
13983
13984         * ToolStripProgressBar.cs: same.
13985
13986         * ToolStripDropDownMenu.cs: same
13987
13988         * ToolStripDropDown.cs: same.
13989
13990         * ToolStripDropDownButton.cs: same.
13991
13992         * ToolStrip.cs: same.
13993
13994         * ToolStripControlHost.cs: same.
13995
13996         * ToolStripContentPanel.cs: same.
13997
13998         * ToolStripDropDown.cs: same.
13999
14000         * ToolStripContainer.cs: same.
14001
14002         * ToolStripPanel.cs: same, and add "new" where we need it to work
14003         with the new ArrangedElementCollection.
14004
14005         * ToolStripItemCollection.cs: add "new" where we need it to work
14006         with the new ArrangedElementCollection.
14007
14008 2006-12-04  Andreia Gaita <avidigal@novell.com>
14009
14010         * TabControl.cs: Fix default tab selection to after TabControl
14011         gets focus and not before. Fixes #80128
14012
14013 2006-12-04  Chris Toshok  <toshok@ximian.com>
14014
14015         * DataGridTableStyle.cs: remove the gross calling of
14016         datagrid.Refresh from here.  It's a broken idea and it doesn't
14017         work anyway.
14018
14019         * DataGrid.cs: instead, just register/unregister from the
14020         DataGridTableStyle events in CurrentTableStyle.  we play it
14021         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
14022         even though some would most likely not require it.  Fixes bug
14023         #80115 (and one portion of #80117 as a side effect).
14024
14025 2006-12-04  Chris Toshok  <toshok@ximian.com>
14026
14027         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
14028         so the textbox (if any) goes away.  Fixes bug #80117.
14029
14030 2006-12-04  Chris Toshok  <toshok@ximian.com>
14031
14032         * DataGridColumnStyle.cs: set the column's readonly property
14033         initially based on the property descriptor's IsReadOnly.  Fixes
14034         bug #80044.
14035
14036 2006-12-04  Chris Toshok  <toshok@ximian.com>
14037
14038         * ComboBox.cs: wrap the dropdown style changing work in
14039         SuspendLayout/ResumeLayout.  Fixes bug #79968.
14040
14041 2006-12-04  Jackson Harper  <jackson@ximian.com>
14042
14043         * TextBoxBase.cs: Fix off by one, since these are one-based.
14044         * TextBox.cs: Select all the text when we get focus.  The TextBox
14045         does this but the RTB does not.
14046
14047 2006-12-04  Chris Toshok  <toshok@ximian.com>
14048
14049         * DataGridTextBoxColumn.cs: remove some spew.
14050
14051         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
14052         but some part of me is saying "it shouldn't be here.."  At any
14053         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
14054         setting the value.
14055
14056 2006-12-04  Chris Toshok  <toshok@ximian.com>
14057
14058         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
14059         to reassign the propertydescriptor.
14060
14061 2006-12-04  Jackson Harper  <jackson@ximian.com>
14062
14063         * TextBoxBase.cs:
14064         * TextControl.cs: Remove some unused variables.  Maybe this will
14065         patch things up between mike and I.
14066         - don't split lines less then one char wide, if the viewport is
14067         that small text won't be visible anyways.
14068         
14069 2006-12-04  Jackson Harper  <jackson@ximian.com>
14070
14071         * TextBoxBase.cs: Default selection length is -1, need to do some
14072         more testing on windows to see when this is used for the property.
14073         - Redid the Lines [] property to that we properly remove soft line
14074         breaks
14075         - added support for preserving carriage returns
14076         -  CanUndo is not a variable like 'is undo enabled' it just returns
14077         true if there is undo operations available.
14078         - AppendText doesn't need to grab the last tag itself anymore,
14079         this happens automatically when we move the cursor.
14080         * TextControl.cs: Add CompoundActions to the undo class. This
14081         allows combining the other operations into one big option.  ie a
14082         paste will combine { delete old, insert new, move cursor }
14083         - Add InsertString undo operation
14084         - New method for deleting multiline text
14085         - Add carriage returns to lines. So we can preserve carriage
14086         returns when text is 'roundtripped'
14087
14088 2006-12-04  Chris Toshok  <toshok@ximian.com>
14089
14090         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
14091         minimum 0.  Fixes the scrollbar exception in bug #80136.
14092
14093 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14094
14095         * MdiClient.cs: 
14096         * MdiWindowManager: Removed unused fields and methods.
14097         
14098 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14099         
14100         * StatusBar.cs: Update all panels when a AutoSize=Contents
14101         panel needs updating.
14102         
14103         * StatusBarPanel.cs: Remove twidth and only use initialize.
14104         Fixes #80031.
14105                 
14106 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14107
14108         * Form.cs: When a form's MdiParent is set add it directly
14109         on top of the z-order in stead of relying on MdiClient's
14110         ActivateChild to do it. Fixes #80135.
14111         
14112         * MdiClient.cs: 
14113         - Remove original_order, mdi_child_list is already doing
14114         the same thing.
14115         - Create mdi_child_list on construction in
14116         stead of first use (avoids a few null checks).
14117
14118         * MenuItem.cs: Use an already existing list of mdi children
14119         to get the correct order of children and remove the other
14120         redundant list.
14121
14122 2006-12-04  Chris Toshok  <toshok@ximian.com>
14123
14124         * PropertyGridView.cs: cached_splitter_location is only used in
14125         !DOUBLEBUFFER code.
14126
14127         * PropertyGrid.cs: implement the ComComponentNameChanged event
14128         using Events, hoping that would fix the warning.  Looks like a
14129         compiler bug instead (#80144).
14130
14131         * PropertyManager.cs: remove unused method.
14132
14133 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
14134
14135         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
14136         include parentesis to fix expression evaluation. Fixes #79634.
14137
14138 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
14139         
14140         * MenuAPI.cs:
14141         - Changes to fix behavior in Menu control, some reported in #80097
14142         and other detected during behavior refactory like a select event
14143         problems.
14144         - Remove unneded "if's" conditions.
14145         - Created an internal to flag when popup is active in control, we need 
14146         it because in .NET you can have menu active but without popup active
14147         when you active menu using popup without visible items.
14148         - Mimic win32 behavior for Select and Popup events.  
14149         - Dont open popup menu when you dont have visible subitems.
14150         - Do nothing when click on disabled menu item.
14151         - Some small changes to follow the coding style guidelines.
14152         - Unselect menu only when another control gives focus. Fixes #80097.
14153         - Remove unused code.
14154         
14155         * MenuItem.cs: internal VisibleItems method to check if menu
14156         theres visible subitems, it will be usefull to fix some 
14157         behavior in Menu control.
14158         
14159 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
14160         
14161         * Timer.cs: Tag property for 2.0 profile.
14162         
14163 2006-12-01  Chris Toshok  <toshok@ximian.com>
14164
14165         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
14166         
14167         * Win32DnD.cs: comment out some unused fields.
14168
14169         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
14170         some unused properties/methods.
14171
14172         * XplatUIX11.cs: fix MousePosition so we override the base class's
14173         property instead of conflicting with it.
14174
14175         * PictureBox.cs: comment out some unused fields
14176
14177         * OSXStructs.cs: make some struct fields public.
14178
14179         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
14180         MousePosition so we override the base class's property instead of
14181         conflicting with it.
14182
14183         * X11Dnd.cs: comment out some unused fields
14184
14185         * X11DesktopColors.cs: fix some struct field visibility to quiet
14186         the compiler.
14187
14188         * X11Dnd.cs: remove some debug code.
14189
14190         * ThemeClearlooks.cs: comment out unused field.
14191
14192         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
14193
14194         * ThemeGtk.cs: comment out some unused pinvokes.
14195
14196         * Timer.cs: remove some unused fields.
14197
14198         * ThemeClearlooks.cs: comment out unused field.
14199
14200         * UpDownBase.cs: comment out unused field.
14201
14202         * DataObject.cs: comment out unused field.
14203
14204         * DataGridBoolColumn.cs: reomve unused field.
14205
14206         * DataGrid.cs: remove unused field.
14207
14208         * Cursor.cs: remove old ToBitmap code.
14209
14210         * ControlPaint.cs: remove unused method.
14211
14212         * ScrollBar.cs: remove unused fields.
14213
14214         * ComboBox.cs: remove unused field, and chain up to
14215         AccessibleObject ctor.
14216
14217         * ListBox.cs: remove unused field.
14218
14219         * ButtonBase.cs: wrap a couple fields in NET_2_0.
14220
14221         * GridEntry.cs: remove unused fields.
14222
14223         * Binding.cs: remove unused fields.
14224
14225         * AxHost.cs: remove unused method.
14226
14227         * ContainerControl.cs: remove unused field.
14228
14229         * ScrollableControl.cs: remove unused fields.
14230
14231 2006-12-01  Chris Toshok  <toshok@ximian.com>
14232
14233         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
14234         the Where/WhereString stuff.  it's easy enough to CWL
14235         Environment.StackTrace.
14236
14237         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
14238         unused private fields.
14239
14240 2006-12-01  Jackson Harper  <jackson@ximian.com>
14241
14242         * TextControl.cs: Do not update the view while inserting multiline
14243         text. If we update the view we might wrap lines, before entering
14244         the new lines, which causes the new line insertion calculations to
14245         be totally fubared.
14246         - Remove an old TODO
14247         - Make debug output a little nicer
14248         
14249 2006-12-01  Chris Toshok  <toshok@ximian.com>
14250
14251         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
14252
14253 2006-12-01  Chris Toshok  <toshok@ximian.com>
14254
14255         [ fix the majority of the CS0108 warnings we've been suppressing ]
14256         
14257         * TreeView.cs: mark BackgroundImageChanged as 'new'.
14258
14259         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
14260         to "LayoutToolBar" to quiet mcs.
14261         
14262         * TabControl.cs: mark our ControlCollection class as 'new'.
14263
14264         * TextBoxBase.cs: mark some events as 'new'.
14265
14266         * Splitter.cs: TabStop is 'new'.
14267
14268         * ControlBindingsCollection.cs: mark a few methods as new since
14269         they change the visibility from protected to public.
14270
14271         * RadioButton.cs: DoubleClick -> base class, and remove unused
14272         HaveDoubleClick.
14273
14274         * MonthCalendar.cs: ImeMode property -> base class, and mark many
14275         events as new.
14276
14277         * NumericUpDown.cs: TextChanged -> base class.
14278
14279         * CheckedListBox.cs: mark our ObjectCollection class as new to
14280         quiet mcs.
14281
14282         * FolderBrowserDialog.cs: make HelpRequest event new and have it
14283         muck with the base class.
14284
14285         * StatusBar.cs: fix some mcs warnings about Update being the same
14286         name as a base class method.
14287
14288         * RichTextBox.cs: mark some events as new, and make them do things
14289         to the base class impl.
14290
14291         * UserControl.cs: mark TextChanged as new, and have it manipulate
14292         base.TextChanged.
14293
14294         * UpDownBase.cs: mark some things new.
14295
14296         * CheckBox.cs: mark DoubleClick "new", and add some text about
14297         what we need to look at.
14298
14299         * Panel.cs: make the events "new", and manipulate the base
14300         version.  these are just here for attributes.
14301
14302         * AccessibleObject.cs: make owner private.
14303
14304         * Control.cs: deal with AccessibleObject.owner being private.
14305         cache our own copy if we need it.
14306
14307         * Button.cs: add "new" to the DoubleClickEvent.
14308
14309         * ListBox.cs: no need to track our own has_focus here.  let
14310         Control.has_focus do it for us.  Also some other work to clear up
14311         warnings about not overriding base class methods of the same name.
14312         
14313         * ComboBox.cs: clear up some warnings about not override base
14314         class methods of the same name.
14315
14316 2006-12-01  Chris Toshok  <toshok@ximian.com>
14317
14318         * Form.cs: flag a few things as "new" to quiet some of the mcs
14319         warnings.
14320
14321         * AxHost.cs: same.
14322
14323         * PrintPreviewDialog.cs: same.
14324
14325         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
14326         now DGV isn't so horrible on the class status page.  also, move
14327         all events to using System.ComponentModel.EventHandlerList.  my
14328         wrists hurt.
14329
14330 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14331
14332         * MdiWindowManager.cs:
14333         - Set form to active mdi child if shown,
14334         and update the active mdi child to the next 
14335         remaining child in the z-order if the form is hidden.
14336
14337         * Form.cs: 
14338         - Track if the form has been visible and if its 
14339         visibility is beeing changed, so that the MdiClient
14340         can properly decide the ActiveMdiChild. The MdiClient 
14341         cannot track this since the form can change visibility 
14342         before MdiClient is created.
14343
14344         * MdiClient.cs:
14345         - Don't activate anything of the parent form is changing
14346         its visibility.
14347         - Rework ActiveMdiChild to only return visible mdi 
14348         children and take into account several other corner 
14349         cases.
14350
14351 2006-12-01  Chris Toshok  <toshok@ximian.com>
14352
14353         * IBindableComponent.cs: new 2.0 interface.
14354
14355 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
14356
14357         * DataGrid.cs: Font for caption area is bold by default.
14358
14359 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
14360
14361         * Menu.cs: Tag property for 2.0.
14362         
14363 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
14364
14365         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
14366         
14367 2006-12-01  Chris Toshok  <toshok@ximian.com>
14368
14369         * TreeView.cs: doh, the Begin* events should be
14370         TreeViewCancelEventHandler.
14371
14372 2006-12-01  Chris Toshok  <toshok@ximian.com>
14373
14374         * Form.cs: Form.ControlCollection already stores off the
14375         form_owner field.  don't access the base class's internal "owner"
14376         field.
14377
14378         * Control.cs: make all the fields in Control.ControlCollection
14379         private.  there's no need for any internal fields here.
14380
14381 2006-12-01  Chris Toshok  <toshok@ximian.com>
14382
14383         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
14384         OnHandleCreated.  Fixes bug #80109.
14385
14386 2006-12-01  Chris Toshok  <toshok@ximian.com>
14387
14388         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
14389         SplitContainer.cs, Control.cs, StatusStrip.cs,
14390         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
14391         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
14392         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
14393         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
14394         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
14395         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
14396         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
14397         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
14398         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
14399         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
14400
14401         do most of the work to convert our code over to use
14402         System.ComponentModel.Component.Events for
14403         adding/removing/dispatching events.
14404
14405
14406 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
14407
14408         * DataGridView.cs: Fix an ArgumentNullException reported 
14409         twice today in IRC.
14410
14411 2006-11-30  Mike Kestner  <mkestner@novell.com>
14412
14413         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
14414         grabbed listbox.  Fixes #80036 and #80101.
14415
14416 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
14417
14418         * Message.cs: Changed ToString() to match MS.
14419         
14420 2006-11-30  Jackson Harper  <jackson@ximian.com>
14421
14422         * TextBoxBase.cs: You can still change the selected text on a read
14423         only textbox.
14424         * TextControl.cs: Lower magic number for wrap calculations. This
14425         lets text get closer to the right (far) edge.
14426
14427 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
14428
14429         * Control.cs: Tweak 2.0 layout properties.
14430         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
14431         * TextRenderer.cs: Add a new overload.
14432         * ToolStrip*: Huge amount of changes and new features.
14433
14434 2006-11-30  Mike Kestner  <mkestner@novell.com>
14435
14436         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
14437         scroll range correct.  Fixes #79994.
14438
14439 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
14440
14441         * MdiWindowManager.cs: Update main form's text when
14442         a form is closed. (fixes #80038)
14443         
14444 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
14445
14446         * ToolBar.cs:
14447         - Fix an regression in ButtonSize.
14448         - Get ImeMode default value change to "Disable".
14449         - Get ShowTooltips default value change to true, default value is 
14450         "false" but after make a test in .NET we get "true" result as default.
14451         
14452 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
14453
14454         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
14455
14456 2006-11-29  Chris Toshok  <toshok@ximian.com>
14457
14458         * XplatUIWin32.cs (GetWindowTransparency): check return value of
14459         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
14460         SetWindowTransparency hasn't been called.
14461
14462 2006-11-29  Chris Toshok  <toshok@ximian.com>
14463
14464         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
14465         if it's supported.
14466         (set_AllowTransparency): reorder things a little so that the
14467         WS_EX_LAYERED style is removed properly.
14468
14469 2006-11-29  Chris Toshok  <toshok@ximian.com>
14470
14471         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
14472         
14473         * Form.cs: only call the XplatUI transparency method (get/set) if
14474         SupportsTransparency says it's supported. Otherwise fallback to
14475         doing nothing (in the set case) or returning the instance field we
14476         cache (in the get case).
14477
14478         * XplatUIStructs.cs: add TransparencySupport flag enum.
14479         
14480         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
14481         change to SupportsTransparency.
14482
14483         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
14484         TransparencySupport.None from SupportsTransparency.
14485
14486         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
14487         TransparencySupport.Set from SupportsTransparency.
14488
14489         * XplatUIWin32.cs: implement GetWindowTransparency calling
14490         GetLayeredWindowAttributes, and implement SupportsTransparency by
14491         checking whether or not both
14492         GetWindowTransparency/SetWindowTransparency are available
14493         entrypoints.  We need to do this since SetWindowTransparency is
14494         available as of win2k, but GetWindowTransparency requires winxp.
14495         yay win32 api.
14496
14497         * XplatUI.cs: Add GetWindowTransparency, and change
14498         SupportsTransparency to allow for either/both Get/Set.
14499
14500 2006-11-29  Chris Toshok  <toshok@ximian.com>
14501
14502         * DataGrid.cs: keep from going into an infinite loop redrawing a
14503         datagrid that has no datasource.  Fixes bug #80033.
14504
14505 2006-11-29  Chris Toshok  <toshok@ximian.com>
14506
14507         * MenuItem.cs: fix the NRE when we assign text (and therefore call
14508         Invalidate) before the mainmenu has been assigned to a control.
14509
14510 2006-11-29  Chris Toshok  <toshok@ximian.com>
14511
14512         * DataGrid.cs: detect when we should be double the double click
14513         row/column autosize stuff, although that codepath has yet to be
14514         written.  part of the work for bug #79891.
14515
14516 2006-11-29  Chris Toshok  <toshok@ximian.com>
14517
14518         * Binding.cs (SetControl): fix unit test.
14519
14520 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14521
14522         * PageSetupDialog.cs: Validate the margins and set them in
14523         PageSettings. 
14524         * NumericTextBox.cs: New class to mimic the behavior of the
14525         textboxes used in the printing dialogs.
14526
14527 2006-11-29  Andreia Gaita  <avidigal@novell.com>
14528         
14529         * Form.cs: Revert previous change (remove call UpdateBounds
14530         from form constructor), because it messes with the handle creation
14531         order, and that one needs lots and lots of love.
14532         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
14533         for valid printer and throw InvalidPrinterException if document
14534         is set but printer not valid), adding a MonoTODO. Once 
14535         handle creation is done properly, we can put this back in.
14536
14537 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
14538
14539         * MenuItem.cs: Create a invalidate method for menu item, to be
14540         calling from set text, it make text changes to imadiate update
14541         on screen. Fixes #80013. 
14542         
14543 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
14544
14545         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
14546         fixes bug #80070 and some other problem on toolbar buttons
14547         layout.
14548
14549 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
14550
14551         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
14552         with dotted brush.      Fixes #79564
14553         
14554 2006-11-28  Andreia Gaita  <avidigal@novell.com>
14555
14556         * Form.cs: Removed call to UpdateBounds on Form
14557         constructor, it was causing a call to CreateHandle
14558         before it was supposed to.
14559         * PrintControllerWithStatusDialog: Applied patch
14560         by Chris Toshok to hide controller when there are
14561         no printers available.
14562         PrintDialog.cs: initialize printer settings to 
14563         null - correct DefaultValues test #5
14564         * PrintPreviewControl.cs: Move PrintController
14565         initialization to GeneratePreview
14566         * PrintPreviewDialog.cs: 
14567         - Remove Preview generation     from Document_set(). It is 
14568         called on OnPaint
14569         - Throw InvalidPrinterException on CreateHandle if
14570         a Document is set but there are no printers or 
14571         printer is not valid.
14572         * ThemeWin32Classic: don't paint PrintPreviewControl
14573         if there is nothing to paint    
14574
14575 2006-11-28  Miguel de Icaza  <miguel@novell.com>
14576
14577         * Form.cs: Add another popular method.
14578
14579         * TabPage.cs: ditto.
14580
14581 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14582
14583         * MenuItem.cs: Fixed a warning.
14584         * InternalWindowManager: Fixed a warning.
14585
14586 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14587
14588         * MenuItem.cs:
14589         - When cloning a menu also clone MdiList and clone the 
14590           window menu items properly (as the forms and menuitems
14591           are kept in an internal hashtable, these need updating 
14592           as well)
14593         - Rewrote the window menu code, menu items are added in the
14594           order the forms were added to their parent, and they are
14595           updated every time the window menu is shown (before the
14596           list was only generated once, in the current order of the
14597           forms, and would never be updated). A checkmark is shown
14598           next to the item corresponding to the active mdi child.
14599
14600 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14601
14602         * XplatUIStructs.cs: 
14603         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
14604         
14605         * XplatUIWin32.cs: 
14606         - Added TME_NONCLIENT to TMEFlags.
14607         - Handles WM_NCMOUSEMOVE in GetMessage to 
14608           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
14609
14610         * MdiWindowManager:
14611         - Now merges mdi child menu to parent menu when maximized.
14612         - Recalculate NC areas of both mdi child and mdi parent. 
14613           Fixes #79757 (4).
14614           on window state and size changes.Fixes #79844 (3).
14615         - Handle WM_NCCALCSIZE to properly calculate borders.
14616
14617         * Form.cs:
14618         - Add/remove to the mdi containers list of mdi children 
14619           in the order they are added.
14620         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
14621           to the maximized mdi child.
14622         
14623         * InternalWindowManager.cs:
14624         - Only execute a click on the control buttons on the mouse up,
14625           not on the mouse down. Show the state of the button 
14626           (was only showing Normal state, never Pressed state). The
14627           pressed button now follows the mouse (if you click the Close 
14628           button and move the mouse over the Maximize button, the 
14629           Maximize button will be shown as pressed). Since Win32 does
14630           not generate WM_NCLBUTTONUP if you release the button outside
14631           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
14632           it as a mouse up.
14633         
14634         * ThemeWin32Classic.cs:
14635         - Draw a missing border around mdi child forms. Fixes #79844 (2).
14636
14637         * MdiClient.cs:
14638         - Added a list of forms which contains the order the forms are
14639           added to the mdi parent.
14640         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
14641         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
14642         - If the active form changes set the scrollbars to the top
14643           of the Z order, otherwise the form could hide them.
14644         - Scrollbars are now sized according to ClientSize, not 
14645           to Size, and they take into account the other scrollbar
14646           to determine maximum.
14647         
14648 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
14649         
14650         * XplatUI.cs:
14651         * XplatUIDriver.cs:
14652         * XplatUIX11.cs:
14653         * XplatUIWin32.cs:
14654         * XplatUIOSX.cs:
14655         - Added RequestAdditionalWM_NCMessages for windows to 
14656           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
14657           Currently only implemented in XplatUIWin32.
14658
14659 2006-11-27  Chris Toshok  <toshok@ximian.com>
14660
14661         * Hwnd.cs: only add the hwnd to the windows hash in
14662         set_WholeWindow and set_ClientWindow if whole_window/client_window
14663         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
14664
14665 2006-11-27  Mike Kestner  <mkestner@novell.com>
14666
14667         * ComboBox.cs: remove redundant OnDropDown call.  It is called
14668         from the ComboListBox.ShowWindow code. Fixes #79969.
14669
14670 2006-11-27  Chris Toshok  <toshok@ximian.com>
14671
14672         * Hwnd.cs: remove the setters for ExposePending and
14673         NCExposePending - noone uses them.
14674
14675 2006-11-27  Jackson Harper  <jackson@ximian.com>
14676
14677         * TextControl.cs: new param for ReplaceSelection which determines
14678         whether we select the new selection, or set the cursor to the end
14679         of the new selection.
14680         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
14681         pasting, select the new text.
14682         * RichTextBox.cs: Use new param for ReplaceSelection.
14683
14684 2006-11-27  Jackson Harper  <jackson@ximian.com>
14685
14686         * TextBoxBase.cs: Set the selection to the caret after the caret
14687         is moved, otherwise they get out of sync.
14688
14689 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
14690
14691         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
14692         it fixes #80015
14693
14694 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
14695
14696         * ThemeWin32Classic.cs: 
14697         - Fix toolbar drop down arrow position.
14698         - Fix drop down appearance when ToolBar.Appearance is normal,
14699         it fixes #80018.
14700         
14701 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
14702
14703         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
14704         * Control.cs: Same.
14705         * UpDownBase.cs: Same.
14706         * ButtonBase.cs: Same.
14707         * ScrollBar.cs: Same.
14708         * TrackBar.cs: Same.
14709         * PictureBox.cs: Same.
14710         * UserControl.cs: Same.
14711         * Label.cs: Same.
14712         * ListControl.cs: Same.
14713         * TextBoxBase.cs: Same.
14714         * ListView.cs: Same.
14715         * RichTextBox.cs: Same.
14716         * TreeView.cs: Same.
14717
14718 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
14719
14720         * PrintDialog.cs:
14721         - Text label for where 
14722         - Text label comment was not shown
14723
14724 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
14725
14726         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
14727
14728 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
14729
14730         * InternalWindowManager.cs: 
14731         - Handle WM_PARENTNOTIFY to activate the form
14732         if any child control is clicked.
14733         - The form is only sizable if not minimized.
14734
14735         * MdiWindowManager.cs:
14736         - Save the IconicBounds if the form is moved.
14737         - Rework SetWindowState, now the window bounds 
14738         are stored only if the old window state is Normal.
14739         
14740         * MdiClient.cs:
14741         - In SetWindowStates store the old window state if 
14742         the window is maximized and restore window state if
14743         the window looses focus.
14744         - Don't handle any scrollbar value changes if 
14745         initializing the scroll bars. Fixes #79771.
14746         - Reworked ArrangeIconicWindows. Current algorithm
14747         tests bounds agains all other minimized windows, if
14748         any intersections create new bounds (going left to 
14749         right, bottom to top) and then test again. When 
14750         successful the bounds are saved and never computed
14751         again. Fixes #79774.
14752
14753 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
14754
14755         * InternalWindowManager.cs: Added HandleTitleBarUp.
14756
14757 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
14758
14759         * NumericUpDown.cs: In .NET 1.1, user entered text is still
14760         hexadecimal in ParseUserEdit.
14761
14762         
14763 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
14764
14765         * MdiWindowManager.cs: 
14766         - Handle a click on the form's icon to show the 
14767         system menu (when maximized). Fixes #79775.
14768         - Change the existing click handler for the form's
14769         icon when not maximized to show on MouseUp.
14770         Fixes #79776.
14771
14772         * Form.cs: In OnResize only layout the mdi child's
14773         parent if it actually has a parent. Might not if
14774         the window is closing.
14775
14776
14777 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
14778
14779         * MdiClient.cs: Ignore active MDI client for text of parent, if
14780         child has no text set.
14781
14782 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
14783
14784         * ToolBar.cs: Fixed ToString to match MS.
14785
14786 2006-11-22  Andreia Gaita  <avidigal@novell.com>
14787
14788         * NumericUpDown: 
14789         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
14790         update inner values on set. Fixes #79966.
14791         - Override OnLostFocus to update value on NET 2. Fixes #79950.
14792         - Fix hexadecimal parsing.
14793         
14794         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
14795         parent. Fixes #79957
14796
14797 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14798
14799         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
14800         the actual size has to be queried, since if height /
14801         width is negative Win32 changes it to 0. 
14802         Fixes #79999 on Windows.
14803         
14804         * XplatUIX11.cs: Set height / width to 0 if negative
14805         in SetWindowPos. Fixes #79999 on Linux.
14806         
14807 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
14808
14809         * ThemeWin32Classic.cs: Fix text redenring when button is
14810         pressed.
14811
14812 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
14813
14814         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
14815         and later navigate by mouse. Fixes #79528.
14816
14817 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
14818
14819         * ToolBar.cs: Set default value for TabStop to false in
14820         constructor, it fixes remaining behavior of bug #79863.
14821
14822 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14823
14824         * MdiWindowManager.cs:
14825         * InternalWindowManager.cs:
14826         - Moved a few methods specific to Mdi from 
14827         InternalWindowManager to MdiWindowManager.
14828         Fixes #79996.
14829         
14830 2006-11-21  Chris Toshok  <toshok@ximian.com>
14831
14832         * XplatUIOSX.cs: stub out InvalidateNC.
14833
14834         * XplatUIWin32.cs: implement InvalidateNC using the call I found
14835         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
14836
14837         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
14838
14839         * XplatUIDriver.cs: add InvalidateNC abstract method.
14840
14841         * XplatUI.cs: add InvalidateNC.
14842
14843 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
14844
14845         * ToolBar.cs: Invalidate complete button area when pressed status 
14846         was changed.
14847         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
14848         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
14849         by 1 when button is pressed.
14850
14851 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
14852
14853         * ToolButton.cs: Invalidate middle of DropDown button when
14854         ToolBar theres DropDownArrows.
14855         * ThemeWin32Classic.cs: Change position of DropDown arrow and
14856         fix DropDown drawing operations.
14857
14858 2006-11-20  Chris Toshok  <toshok@ximian.com>
14859
14860         * NativeWindow.cs: fix the formatting of functions ('{' on the
14861         following line), and enable the thread exception dialog.
14862
14863         * Application.cs: remove the duplicate exception catching from
14864         here.
14865
14866 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
14867
14868         * Toolbar.cs: Triggers button click event when click on icon
14869         of dropdown ToolBarButton. Fixes #79912.
14870         
14871 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14872
14873         * Theme.cs:
14874         * ThemeWin32Classic.cs:
14875         - Added a property WindowBorderFont to enable themeing
14876           of mdi child windows' Text.
14877           
14878 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14879
14880         * InternalWindowManager.cs:
14881         * Form.cs:
14882         * MdiClient.cs:
14883         * MdiWindowManager.cs: 
14884         - If mdi child is maximized, set mdi parent's
14885           text to "Parent - [Child]". Fixes #79770.
14886         - If there is any maximized mdi child windows, only the active 
14887           window (and any new windows) is maximized, the rest are normal.
14888         - On a WindowState change only save mdi child's window bounds 
14889           if the old window state was normal. Fixes #79774.
14890         - The scroll bars are now calculated on hopefully all
14891           necessary events. Fixed #79771 / #79844->6 / #79906.
14892         - MdiClient.SizeScrollBars() now takes into account docked 
14893           controls in the parent when calculating available space.
14894         - InternalWindowManager now always repaints the entire title
14895           area. Fixes #79844->1/4/5.
14896         - Added RequestNCRecalc on mdi child windowstate changes.
14897           Fixes #79772.
14898
14899 2006-11-20  Mike Kestner  <mkestner@novell.com>
14900
14901         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
14902         in the MouseUp handler of the listbox and move the return handling
14903         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
14904
14905 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
14906
14907         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
14908
14909 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
14910
14911         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
14912           working in 1.2.x anymore. So, updated.
14913
14914 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
14915
14916         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
14917         NumberGroupSeparator of current culture instead of assuming en-US.
14918         Fixed bug #79967.
14919
14920 2006-11-17  Mike Kestner  <mkestner@novell.com>
14921
14922         * Control.cs: Add the concept of implicit bounds setting so that
14923         dock/undock round trips preserve explicitly set size/locations.
14924         Fixes #79313.
14925
14926 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
14927
14928         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
14929           can't handle those filters. (Fixes bug #79961)
14930
14931 2006-11-17  Chris Toshok  <toshok@ximian.com>
14932
14933         [ fixes the exit/crashes associated with #79835.  it's clearly
14934         suboptimal though, we need to figure out a better way to solve
14935         this. ]
14936         
14937         * PrintPreviewControl.cs: deal with the new invalid printer
14938         exceptions.
14939
14940         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
14941         and return false (so CommonDialog.ShowDialog doesn't actually show
14942         the form.)
14943
14944         * PrintDialog.cs: enable/disable the Ok button depending on
14945         whether or not the printer is valid.
14946
14947         * CommonDialog.cs (ShowDialog): only actually show the form if
14948         RunDialog returns true.
14949
14950 2006-11-17  Jackson Harper  <jackson@ximian.com>
14951
14952         * TextControl.cs: When soft splitting a line, mark it as a soft
14953         split line. Also carry over the current line break to the next
14954         line.
14955
14956 2006-11-17  Chris Toshok  <toshok@ximian.com>
14957
14958         * XplatUIX11.cs: when scrolling a window with an invalid area, we
14959         only want to shift the part of the invalid area that overlaps the
14960         area we're scrolling.  we also don't want to clear the invalid
14961         area unless the invalid area was entirely contained within the
14962         scrolling area.
14963
14964 2006-11-16  Chris Toshok  <toshok@ximian.com>
14965
14966         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
14967         also make sure to free the memory returned by XGetWindowProperty
14968         in GetText().
14969
14970         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
14971
14972 2006-11-16  Chris Toshok  <toshok@ximian.com>
14973
14974         * XplatUI.cs: add a new super secret way to get at the totally
14975         unsupported X11 backend.
14976
14977 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
14978
14979         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
14980
14981 2006-11-16  Jackson Harper  <jackson@ximian.com>
14982
14983         * TreeView.cs: Allow more explicit setting of top node position
14984         for scrollbars. Slower algo, but more accurate.
14985         - CollapseAll should maintain the current top node.
14986         * TextBoxBase.cs: When positioning the caret, use the line, pos
14987         method, since the x, y method does not grab the correct tag, and
14988         the caret height never gets set correctly. (Maybe I should just do
14989         away with the caret having its own height, and always use the
14990         carets current tag for height).
14991
14992 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
14993
14994         [Fixes 79778, 79923]
14995
14996         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
14997         Parent to the FosterParent instead.
14998
14999 2006-11-16  Jackson Harper  <jackson@ximian.com>
15000
15001         * TreeView.cs: Need to recalc the topnode when we expand or
15002         collapse. The scrolling methods can't handle this on their own,
15003         since they use differences between the last scroll position, and
15004         those difference get completely messed up since we are expanding
15005         nodes.  This problem should probably be fixed in the scrolling
15006         methods, so they can figure out exactly where they are, but this
15007         will slow things down a little.
15008         * ThemeWin32Classic.cs: Special case for groupboxes with empty
15009         strings, makes nunit-gui look a lot nicer.
15010
15011 2006-11-16  Chris Toshok  <toshok@ximian.com>
15012
15013         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
15014         the broken multithreaded event handling we have in here.  File
15015         this entry under "Why we should move to the new X11 backend".
15016
15017         Any thread can make it into UpdateMessageQueue, which gets events
15018         from the X socket - some of which could belong to hwnds being
15019         managed by a different thread.  We can also have multiple threads
15020         in UpdateMessageQueue at the same time, with each one reading from
15021         the X socket.  This leads to many problems, with the following
15022         solutions:
15023
15024         We can't use hwnd.Queue.Enqueue anywhere in here and must use
15025         EnqueueLocked.
15026
15027         The MotionNotify compression we do can't work across threads
15028         (without locking the entire queue, perhaps) since we call
15029         hwnd.Queue.Peek, so we just punt and don't compress motion events
15030         unless the owning thread is the one which got the X event.
15031
15032         ConfigureNotify is another fun one, since it modifies the hwnd's
15033         bounds and then enqueues the event.  We add a lock to Hwnd which
15034         is held when setting configure_pending to true (and enqueuing the
15035         event).
15036
15037         There is a race wrt the wake socket.  we need to make sure that
15038         only 1 thread is waiting on that socket, or else a thread could
15039         sleep waiting for data that never comes.  It's difficult (but not
15040         impossible) to make happen, because it seems to require something
15041         like the following:
15042
15043             1. Thread 1 polls on wake_receive
15044         
15045             2. poll returns saying there's data to be read on
15046                wake_receive.
15047         
15048             3. Thread 2 polls on wake_receive and immediately returns
15049                saying there's data to be read.
15050
15051             4. Thread 2 reads the wakeup byte from wake_receive
15052
15053             5. Thread 1 attempts to read the wakeup byte from
15054                wake_receive.
15055
15056             6. Thread 2 exits (due to a form closing, perhaps).
15057
15058             7. Thread 1 blocks forever.
15059         
15060         Fun, eh?
15061
15062         Fixing the Expose handling isn't done yet, and the races inherent
15063         in that piece of code are responsible for the drawing mistakes you
15064         see when generating expose events in a MT app (like NPlot).  This
15065         one is the likely to be the hardest to bandaid, and it doesn't
15066         appear to cause anything but drawing problems.  The other issues
15067         caused apps to exit or hang.
15068
15069         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
15070         called from a different thread than the one that should be calling
15071         these functions.
15072
15073         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
15074
15075 2006-11-15  Chris Toshok  <toshok@ximian.com>
15076
15077         * Application.cs: null out the context's MainForm when we exit
15078         RunLoop.  Fixes a newly checked in unit test as well as the last
15079         ODE from bug #79933.
15080
15081 2006-11-15  Chris Toshok  <toshok@ximian.com>
15082
15083         * Form.cs (set_Owner): allow a null value so we can clear the
15084         form's owner.
15085         (Dispose): set all our owned_form's Owner properties to null, and
15086         clear the owned_forms collection.
15087         (WM_CLOSE): clean up this a little bit.. still not right though.
15088
15089         * ApplicationContext.cs: OnMainFormClosed should only call
15090         ExitThreadCore if the main form isn't recreating.  Fixes unit
15091         test.
15092
15093 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
15094
15095         [Fixes 78346]
15096
15097         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
15098
15099 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
15100
15101         [Fixes 79433]
15102
15103         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
15104         keep popup window types from stealing focus from the main form
15105         on Windows.
15106
15107         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
15108
15109         * MenuAPI.cs: Set above flag to true.
15110
15111 2006-11-15  Chris Toshok  <toshok@ximian.com>
15112
15113         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
15114         the button being released is not in wParam.
15115
15116 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
15117
15118         * Form.cs: Add the released button to MouseEventArgs.Button
15119         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
15120         on Win32.
15121
15122 2006-11-15  Chris Toshok  <toshok@ximian.com>
15123
15124         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
15125         GetText().  untested because it's unused in our implementation.
15126         Control.Text always caches the text, even if
15127         ControlStyles.CacheText is not set.
15128
15129         fixes bug #79939.
15130
15131 2006-11-15  Chris Toshok  <toshok@ximian.com>
15132
15133         [ fixes #79933 ]
15134         
15135         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
15136         message.  no hiding, no disposing.
15137
15138         in the WM_CLOSE handler, hide the form if it's modal.
15139
15140 2006-11-15  Chris Toshok  <toshok@ximian.com>
15141
15142         * XplatUIX11.cs: use AddExpose instead of sending a message.
15143         fixes textbox border drawing.
15144
15145 2006-11-15  Chris Toshok  <toshok@ximian.com>
15146
15147         * PropertyGridView.cs: keep from crashing on mouse move/down when
15148         the property grid is empty.
15149
15150 2006-11-14  Jackson Harper  <jackson@ximian.com>
15151
15152         * TextControl.cs: Make PageUp and PageDown more like the MS
15153         versions.
15154         * TextBoxBase.cs: When we set the text property position the
15155         cursor at the beginning of the document.
15156
15157 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15158
15159         * Form.cs: if a mdi child's WindowState has changed
15160         before it's creation, it would display wrong control
15161         buttons.
15162         
15163 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
15164
15165         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
15166           (Fixes bug #79927)
15167
15168 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15169
15170         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
15171         the window gets to paint its borders even if the window is
15172         getting smaller.
15173         
15174         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
15175         otherwise the old control buttons would still be painted 
15176         if the window gets bigger.
15177         
15178         * PaintEventArgs.cs: add an internal method so that the clip 
15179         rectangle can be changed.
15180         
15181 2006-11-13  Chris Toshok  <toshok@ximian.com>
15182
15183         [ fixes bug #79745 ]
15184         
15185         * NotifyIcon.cs: lots of cleanup.
15186
15187         * X11Structs.cs: add an enum for XEMBED messages.
15188
15189         * XplatUIX11.cs: reindent one of the giant switch statements, it
15190         was taking up an additional tab stop, and this file is already way
15191         too wide for my laptop's screen.
15192
15193         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
15194         we get it, resize the hwnd to the WMNormalHints max_width/height.
15195
15196 2006-11-13  Jackson Harper  <jackson@ximian.com>
15197
15198         * TextBoxBase.cs: Compute the value changes for the mouse wheel
15199         teh simple way.
15200
15201 2006-11-13  Chris Toshok  <toshok@ximian.com>
15202
15203         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
15204         #79898.  force a reference to the Region to stick around so the
15205         unmanaged object isn't collected (rendering our handle in the MSG
15206         stale).
15207
15208 2006-11-13  Chris Toshok  <toshok@ximian.com>
15209
15210         * XplatUIX11.cs: fix #79917 for window managers which support
15211
15212         using XStoreName on the raw utf8, and we need to convert to
15213         COMPOUND_TEXT if it's non-latin1.
15214
15215 2006-11-13  Chris Toshok  <toshok@ximian.com>
15216
15217         * Form.cs (set_DialogResult): we need to set closing to false if
15218         we're setting our result to None.  fixes bug #79908.
15219
15220 2006-11-13  Jackson Harper  <jackson@ximian.com>
15221
15222         * TextControl.cs: When formatting text, compute the adjusted tag
15223         lengths correctly, using FindTag for the end tag instead of trying
15224         to figure it out outselves.
15225         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
15226         the item, ItemHeight doesn't work, because trees with large
15227         imagelists use those for their height
15228         * TreeView.cs: ActualItemHeight factors in the image height
15229         - compute left edge of checkboxes correctly
15230         - when expanding/collapsing move the bottom down one pixel, so we
15231         aren't moving part of the node
15232
15233 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15234
15235         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
15236         stack in PaintEventStart so that it won't get disposed by the gc
15237         before reaching PaintEventEnd.
15238
15239 2006-11-13  Jackson Harper  <jackson@ximian.com>
15240
15241         * TextBoxBase.cs: Don't select the word if we are on a line with
15242         no text.
15243         - We don't need to position the caret on mouse up, since the mouse
15244         move handler should be doing this
15245         - When double clicking a blank line, the caret is advanced to the
15246         next line.
15247
15248 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
15249
15250         * TreeNodeCollection.cs: Avoid duplicating indexer code.
15251
15252 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
15253
15254         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
15255         Fixes part of bug #79910.
15256
15257 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
15258
15259         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
15260           (bug #79903). Some minor string updates to match ms.
15261
15262 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
15263
15264         * FileDialog.cs: Don't add an extension if the filename
15265           already ends with that extension.
15266
15267 2006-11-10  Jackson Harper  <jackson@ximian.com>
15268
15269         * TreeView.cs: Use the currently highlighted node for the
15270         BeforeSelect event.
15271         * TextBoxBase.cs: There is no need to expand selection on
15272         MouseMove.
15273         - CanUndo means 'is there any undo operations', not 'is undo
15274         allowed on this textcontrol. Fixed ClearUndo unit test.
15275
15276 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
15277
15278         * Button.cs: only perform click when button is Selectable (so as 
15279         not to activate default buttons when they're disabled)
15280         
15281         * Control.cs: Rewrite of the SelectNextControl and related 
15282         methods. HandleClick now selects next control if the current one
15283         is being disabled.
15284         
15285         * Form.cs: OnActivated selects next active control only if Load 
15286         has already occurred. If Load hasn't run, there's no point in 
15287         selecting here, Load might change the state of controls.
15288         
15289         * FocusTest.cs: Tests marked as working again for these fixes
15290
15291 2006-11-10  Chris Toshok  <toshok@ximian.com>
15292
15293         * XplatUIX11.cs: a couple of fixes.
15294
15295         - use XInternAtoms with almost all the atoms we need to register,
15296         instead of many, many calls to XInternAtom.  should help a bit on
15297         startup time, at the expense of making the code look a little
15298         worse.
15299
15300         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
15301         isn't reparented (which seems to be a clue that we're running fon
15302         compiz) and they have an Owner form.  This fixes the tool windows
15303         in paint.net when running under compiz.
15304
15305         - when setting the opacity of a window, support both the case
15306         where the window has been reparented and also when it hasn't been.
15307         Since compiz/beryl doesn't seem to reparent windows, and these are
15308         the only window managers which support translucency, I'm not sure
15309         why we need the hwnd.reparented case at all.. but leave it in.
15310         now we get translucent windows in paint.net under compiz/beryl.
15311
15312 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
15313
15314         * FileDialog.cs: Always return the value for FilterIndex that
15315           was set. Internally convert it to values that make sense.
15316
15317 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
15318         
15319         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
15320
15321 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
15322
15323         * Toolbar.cs: Change default value of DropDownArrows to true, the 
15324         signature still using false to make it compatible with MS but the 
15325         initial value is true. Fixes #79855.
15326
15327 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
15328
15329         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
15330           only available on Linux.
15331
15332 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
15333
15334         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
15335         reduce number of calls to redraw method during toolbar creation.
15336
15337 2006-11-09  Mike Kestner  <mkestner@novell.com>
15338
15339         * ListView.cs : raise SelectedIndexChanged when an item is selected
15340         programmatically via the Item.Selected property.  Gert's nice 
15341         ListViewSelectedIndexChanged test fixture now runs clean.
15342
15343 2006-11-09  Mike Kestner  <mkestner@novell.com>
15344
15345         * ListView.cs : raise SelectedIndexChanged when a selected item is
15346         removed from the item collection using Remove or RemoveAt.
15347
15348 2006-11-09  Mike Kestner  <mkestner@novell.com>
15349
15350         * ListView.cs : raise SelectedIndexChanged once per selected item
15351         for compat with MS.  Fixes #79849+.
15352
15353 2006-11-09  Chris Toshok  <toshok@ximian.com>
15354
15355         * TabControl.cs: initialize row_count to 0, and set it to 1 when
15356         we need to (if we have any tab pages).  Fixes unit test.
15357
15358 2006-11-09  Chris Toshok  <toshok@ximian.com>
15359
15360         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
15361         width is 0, not 3.  Fixes a unit test.
15362
15363 2006-11-09  Mike Kestner  <mkestner@novell.com>
15364
15365         * ListView.cs : use Implicit scrollbars so that focus isn't 
15366         stolen from the listview when they are clicked. Fixes #79850.
15367
15368 2006-11-09  Chris Toshok  <toshok@ximian.com>
15369
15370         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
15371         have a root item.  Fixes #79879.
15372
15373 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
15374
15375         * FileDialog.cs:
15376           - Fix ToString ()
15377           - An ArgumentException is now thrown if a wrong filter
15378             is applied (matches ms). The previous filter doesn't change
15379             anymore if an exception is thrown.
15380           - Changing the FileName property also affects FileNames
15381         * ColorDialog.cs: The length of the CustomColors array is always
15382           16. It doesn't matter if we use a smaller array or null to update
15383           or change the custom colors property.
15384         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
15385           for RootFolder if we get a undefined value.
15386
15387 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15388
15389         * StatusBarPanel.cs: 
15390         - Width is set to MinWidth if Width is smaller than
15391         MinWidth. Fixes #79842.
15392         - MinWidth now always overrides Width (MSDN says MinWidth
15393         is set to Width when AutoSize = None, but they do not 
15394         behave like that).
15395         - Style has now the the correct default value.
15396         
15397 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15398  
15399         * TrackBar.cs: 
15400         - The control is completely invalidated on 
15401         Got/LostFocus to draw the focus rectangle correctly.
15402         - When AutoSize then height is always 45 (width for 
15403         vertical controls).
15404         
15405         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
15406         on the mouse when moved and it doesn't move when grabbed
15407         until the mouse moves as well. Also fixed some wrong 
15408         calculations when clicking on the thumb (control thought
15409         click was outside of thumb and didn't grab it).
15410         Fixes some of the issues in #79718.
15411
15412 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
15413
15414         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
15415
15416 2006-11-08  Chris Toshok  <toshok@ximian.com>
15417
15418         * PropertyGridView.cs: only call ToggleValue if the item is not
15419         readonly.
15420
15421 2006-11-08  Jackson Harper  <jackson@ximian.com>
15422
15423         * TextBoxBase.cs: The RichTextBox and textbox have very different
15424         word selection methods.  Implement the textbox's simple word
15425         selection here, and let the RichTextBox override and provide it's
15426         own.
15427         - Don't do extra selection on mouseup
15428         * RichTextBox.cs: Use the documents word selection algorithm, I
15429         think ideally, this function will be pulled into the
15430         RichTextBox.cs code someday.
15431
15432 2006-11-08  Chris Toshok  <toshok@ximian.com>
15433
15434         * RootGridEntry.cs: new class to represent GridItemType.Root.
15435
15436         * CategoryGridEntry.cs: reformat, and add boilerplate.
15437         
15438         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
15439         returns the UI parent anyway, and we need special handling to
15440         implement the GetTarget method in the face of it.  Also, implement
15441         Select().
15442
15443         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
15444         a root grid item, and use that instead of PropertyGrid.grid_items.
15445         Also, make use of TypeConverters (and add limitted support for
15446         ICustomTypeDescriptors) when initially populating the grid.
15447         Arrays now show up more or less properly.
15448
15449 2006-11-08  Chris Toshok  <toshok@ximian.com>
15450
15451         * Application.cs: set the modal dialog to non modal after we close
15452         it.  Fixes bug #79866.
15453
15454 2006-11-08  Jackson Harper  <jackson@ximian.com>
15455
15456         * TextControl.cs: When combining lines carry over the line end
15457         style from the end line.
15458         - Invalidate the selected area when setting it, if it is visible.
15459         * TextBoxBase.cs: Only rich text box can do full line selects.
15460         - Make sure to set the cursor position when there is a click,
15461         otherwise two clicks in separate areas could cause a large chunk
15462         to be selected.
15463
15464 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
15465
15466         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
15467         Fixes #79863.
15468
15469 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
15470
15471         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
15472         time. Remove tooltips when ToolButton click events.  Fixes #79856.
15473
15474 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
15475
15476         * MenuAPI.cs: Ignore right click for menu actions and fixes
15477         menu border when clicked.  Fixes #79846.
15478
15479 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
15480
15481         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
15482         MouseState after create wParam for message, this fixes mouse button 
15483         equal none in mouse up events.
15484         
15485 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
15486
15487         * Control.cs : Focus() now calls Select to set the Container's
15488         Active Control and to give it focus. To avoid infinite recursion
15489         (because ActiveControl also calls Focus at one point), a check 
15490         is made in Focus with the help of a new internal variable
15491         is_focusing.
15492
15493 2006-11-07  Mike Kestner  <mkestner@novell.com>
15494
15495         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
15496         if there's a selection.  Fixes #79849.
15497
15498 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
15499
15500         * PropertyGrid.cs: Avoid fixed height of help description label.
15501         Fixes part of bug #79829.
15502
15503 2006-11-07  Chris Toshok  <toshok@ximian.com>
15504
15505         * XplatUIX11.cs: fix #79790 again, by using the
15506         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
15507
15508 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
15509
15510         * ToolBar.cs: Fix left click checking.
15511
15512 2006-11-07  Chris Toshok  <toshok@ximian.com>
15513
15514         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
15515
15516 2006-11-07  Chris Toshok  <toshok@ximian.com>
15517
15518         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
15519         PropertyManager unit tests.
15520
15521         * PropertyManager.cs: make property_name internal.
15522
15523 2006-11-07  Chris Toshok  <toshok@ximian.com>
15524
15525         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
15526         pass a unit test.  Also, don't set image_index to anything in
15527         response to setting the ImageList property.
15528
15529 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
15530
15531         * ToolBar.cs: Ignore click events when mouse button is not a
15532         left button, only accepts other button for dropdown menus.  
15533         Fixes #79854.
15534
15535 2006-11-07  Chris Toshok  <toshok@ximian.com>
15536
15537         * DataGrid.cs: make the back and parent row buttons a little less
15538         ugly.
15539
15540 2006-11-07  Jackson Harper  <jackson@ximian.com>
15541
15542         * TextBoxBase.cs: When converting to Text don't put line breaks in
15543         for soft line breaks.
15544         * TextControl.cs: There is an initial "fake" line in the document,
15545         this is now a soft break line, so that an extra line feed doesn't
15546         get added to the end of documents.
15547
15548 2006-11-07  Chris Toshok  <toshok@ximian.com>
15549
15550         [ fix bug #79778 ]
15551         
15552         * CurrencyManager.cs: if the list is readonly, don't bother
15553         checking if IBindingList.AllowNew is true.
15554
15555         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
15556         for non-DataRowView datasources..  or rather, make it not crash.
15557         (DataGridPaintRelationRow): make sure we limit the row painting to
15558         the area not covered by the row header, and make our cell width at
15559         least large enough to cover the relation area.  This allows grids
15560         that have relations but no rows to render correctly.
15561         (DataGridPaintRowContents): same type of changes here.
15562         (SetDataSource): move back to always calling
15563         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
15564         navigating back through relations.
15565         (HitTest): handle the case where we have no cells but have
15566         relations.  Right now we generate a hit in cell 0 of whatever the
15567         row is, not sure if this is strictly correct, but it works for our
15568         purposes.
15569         
15570         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
15571         bother doing anything.
15572
15573 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
15574
15575         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
15576         early version of StatusStrip.  Not responsible for eaten
15577         application or firstborn children.
15578
15579 2006-11-06  Chris Toshok  <toshok@ximian.com>
15580
15581         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
15582         call GetTabRect with a -1 index.  Fixes #79847.
15583
15584 2006-11-06  Jackson Harper  <jackson@ximian.com>
15585
15586         * TreeNodeCollection.cs: Update scrollbars after clearing.
15587
15588 2006-11-06  Chris Toshok  <toshok@ximian.com>
15589
15590         * NumericUpDown.cs: fix the ToString method for some unit test
15591         love.
15592
15593 2006-11-06  Chris Toshok  <toshok@ximian.com>
15594
15595         * PropertyGrid.cs:
15596         - set the initial SelectedGridItem if we can.
15597
15598         - Exclude non-mergable properties only if we're merging > 1
15599         object.  Merging 1 object isn't really merging, obviously.
15600
15601         - Handle PropertySort.NoSort just like Alphabetical, which is
15602         wrong of course, but at least gets things on the screen.
15603         
15604         * PropertyGridView.cs:
15605         - Add method "FindFirstItem" which finds the first property grid
15606         item, so we can select it by default.
15607
15608         - make use of GridEntry.CanResetValue.
15609
15610         - Don't call RedrawBelowItemOnExpansion here anymore, the
15611         individual GridEntry's will do that.
15612
15613         - Remove the ITypeDescriptorContextImpl internal class.
15614         
15615         * GridEntry.cs:
15616         - this class needs to implement ITypeDescriptorContext, as it's
15617         what MS's PropertyDescriptorGridEntry does, which means we can
15618         remove the ITypeDescriptorContextImpl internal class from
15619         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
15620
15621         - keep a reference to our PropertyGridView, and move the call to
15622         RedrawBelowItemOnExpansion here from PGV.  This means
15623         programmaticly setting Expanded actually does something visible.
15624
15625         - add a CanResetValue() function which takes into account our
15626         possibly multiple "selected_objects" in the merged case.  Shifting
15627         PropertyGridView to use this method fixes another unreported
15628         crasher found running the test for #79829.
15629
15630         - when Top or Bounds is updated, make sure the PropertyGridTextBox
15631         is updated to reflect this.
15632
15633         * CategoryGridEntry.cs: the ctor takes the PGV now.
15634         
15635 2006-11-06  Jackson Harper  <jackson@ximian.com>
15636
15637         * TextControl.cs: These are 1 based.
15638         * TextBoxBase.cs: When setting the selected text, don't change the
15639         selected text tags, this is done by ReplaceText, just position the
15640         cursor at the end of the new text.
15641
15642 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
15643
15644         * ListView.cs: Allow label edit only when, when LabelEdit is
15645           set to true.
15646
15647 2006-11-06  Jackson Harper  <jackson@ximian.com>
15648
15649         * TextControl.cs: If a suitable wrapping position isn't found,
15650         just wrap right in the middle of a word.
15651
15652 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
15653
15654         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
15655           bug #79820.
15656
15657 2006-11-06  Jackson Harper  <jackson@ximian.com>
15658
15659         * TreeView.cs: Can't use the VisibleCount property when setting
15660         scrollbar heights, because this doesn't take into account whether
15661         or not the horz scrollbar just came visible.
15662
15663 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
15664
15665         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
15666         activated.  Fixes #79369, #79832.
15667
15668 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
15669
15670         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
15671           had to remove support for links that point to a directory. FileInfo
15672           returns no usefull information (means, the directory they point to)
15673           for such links. Replaced some empty string ("") with String.Empty.
15674
15675 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
15676
15677         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
15678         NullReferenceException when attempting to remove node that is not in
15679         collection. Throw NullReferenceException when null is passed to 
15680         Remove. Allow first element of the collection to be removed. Fixes
15681         bug #79831.  In GetEnumerator ().Current return null if positioned 
15682         before the first element of the collection. In GetEnumerator ().Reset,
15683         position before first element of the collection.
15684
15685 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
15686
15687         * PropertyGrid.cs: To match MS, remove default title and description
15688         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
15689         buttons.
15690
15691 2006-11-04  Chris Toshok  <toshok@ximian.com>
15692
15693         * Theme.cs: add a Clamp method, just for kicks.
15694
15695         * ThemeWin32Classic.cs: clamp all color components to [0..255].
15696
15697 2006-11-04  Chris Toshok  <toshok@ximian.com>
15698
15699         * Form.cs: if the form isn't visible, Close() does nothing.
15700
15701 2006-11-03  Chris Toshok  <toshok@ximian.com>
15702
15703         * Form.cs (Close): if the form is modal, don't Dispose of it, only
15704         Hide it.
15705         (WndProc): don't Dispose after handling the WM_CLOSE message.
15706
15707         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
15708         them as such, instead of using casts from Control to Form.  Also,
15709         don't Dispose of the modal dialog when we fall out of the loop -
15710         Close() it instead.
15711
15712         fixes bug #79813.
15713
15714 2006-11-03  Chris Toshok  <toshok@ximian.com>
15715
15716         * Control.cs (Dispose): only go through the dispose thing if we're
15717         @disposing, and we haven't already been disposed.  Fixes bug
15718         #79814.
15719
15720         * Form.cs: no reason to call "base.Dispose()" here instead of
15721         "Dispose()".
15722
15723 2006-11-03  Mike Kestner  <mkestner@novell.com>
15724
15725         * ComboBox.cs : use ToString instead of casts in AddItem for
15726         sorting functionality.  Fixes #79812.
15727
15728 2006-11-03  Chris Toshok  <toshok@ximian.com>
15729
15730         * Application.cs: pave the way for actually using the thread
15731         exception dialog.  it's ifdefed out at the moment.
15732
15733 2006-11-03  Chris Toshok  <toshok@ximian.com>
15734
15735         * ThreadExceptionDialog.cs: until we get a better layout, actually
15736         hide the details textbox and label when we shouldn't see them.
15737
15738 2006-11-03  Jackson Harper  <jackson@ximian.com>
15739
15740         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
15741         multiline textboxes anymore.  This method also determines the
15742         width/height of a textboxes canvas area.
15743         - Sorta a revert of the last patch.  For multiline just position
15744         the controls, then bail.  This way the scrollbar width won't be
15745         altered.
15746
15747 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
15748
15749         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
15750         it dont need.  Fixes #79537.
15751
15752 2006-11-02  Jackson Harper  <jackson@ximian.com>
15753
15754         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
15755         send the status after firing the DndOver event.
15756
15757 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15758
15759         * TrackBar.cs: Now orientation only switches height / width if
15760         the control's handle is created (Win32 does it like this). Also 
15761         fixed a typo in ToString() for a test to pass, changed the 
15762         exception thrown in set_LargeChange and set_SmallChange to 
15763         match Win32 behaviour, and added TrackBar tests to the unit 
15764         tests.
15765
15766 2006-11-02  Chris Toshok  <toshok@ximian.com>
15767
15768         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
15769         not _NET_WM_STATE_NO_TASKBAR.
15770
15771 2006-11-02  Jackson Harper  <jackson@ximian.com>
15772
15773         * TextControl.cs: Increment count by one, since in the update view
15774         count - 1 is used.
15775
15776 2006-11-02  Jackson Harper  <jackson@ximian.com>
15777
15778         * TextBoxBase.cs: Use client rectangle not bounds for checking if
15779         the mouse is in the client rectangle (duh).
15780
15781 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15782         
15783         * TrackBar.cs: Fixed trackbar jumping around when clicking
15784         on it - the trackbar was not detecting correctly at which
15785         side of the thumb the click was done. (fixes #79718)
15786
15787 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
15788
15789         * ListBox.cs: scroll visible area when change SelectedIndex to
15790         a non visible area.  Fixes #79481.
15791
15792 2006-11-01  Jackson Harper  <jackson@ximian.com>
15793
15794         * TextControl.cs: When replacing the selection move the selection
15795         start/end/anchor to the end of the new text.
15796
15797 2006-11-01  Jackson Harper  <jackson@ximian.com>
15798
15799         * XplatUIWin32.cs: When setting the parent change the controls
15800         visibility to it's visibility flag, not to it's old parents
15801         visibility (.Visible walks the parent chain).
15802
15803 2006-11-01  Chris Toshok  <toshok@ximian.com>
15804
15805         * XplatUIX11.cs: revert the #79790 fix, as the simple.
15806         XSetTransientForHint fix breaks paint .net's tool windows.  more
15807         work needed for that one.
15808
15809 2006-11-01  Chris Toshok  <toshok@ximian.com>
15810
15811         * ScrollBar.cs: throw ArgumentException instead of Exception in
15812         LargeChange/SmallChange setters.  fixes unit tests.
15813
15814 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
15815
15816         * ContainerControl.cs: reverted rev.67183 (which was itself
15817         a reversion of rev.66853... eh).
15818         
15819         * Control.cs: Fixes Reflector hang by changing Focus() call
15820         to what it was before rev.66643 (calling Select() here sets 
15821         ActiveControl, which in some situations calls back Focus and 
15822         eventually does a stack overflow). Temp fix.    
15823         Changes to GetNextControl() to not look for children to select when
15824         parent cannot be selectable (so it looks for siblings instead)  
15825         
15826 2006-10-31  Mike Kestner  <mkestner@novell.com>
15827
15828         * CheckedListBox.cs : off by one error in returned index from
15829         ObjectCollection.Add.  Fixes #79758.
15830
15831 2006-10-31  Chris Toshok  <toshok@ximian.com>
15832
15833         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
15834         calls for the textbox/spinner, to keep from recursing to the point
15835         where we crash.  Fixes #79760.
15836
15837 2006-10-31  Chris Toshok  <toshok@ximian.com>
15838
15839         * ListControl.cs (set_SelectedValue): don't throw exceptions on
15840         null/"" value, just return.  matches ms's behavior and fixes some
15841         failing tests.
15842
15843 2006-10-31  Chris Toshok  <toshok@ximian.com>
15844
15845         * Control.cs (set_Capture): make a logic a little easier to
15846         follow.
15847
15848         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
15849         if it's being destroyed.  A necessary fix surely, but a bandaid
15850         also, to fix the stuck capture problem in bug #78413.
15851
15852 2006-10-31  Chris Toshok  <toshok@ximian.com>
15853
15854         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
15855         convention of clearing hwnd.ClientRect when we set the
15856         width/height (so it'll be recalculated by Hwnd).
15857
15858 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
15859
15860         * ContainerControl.cs: reversed Contains check from
15861         ActiveControl due to hanging problems. This fix
15862         partly regresses #79667 (button does not have
15863         initial focus), so this might be a symptom for 
15864         a larger parenting problem (set_ActiveControl
15865         is being called but the child control does
15866         not have the parent set yet?)   
15867         
15868 2006-10-31  Mike Kestner  <mkestner@novell.com>
15869
15870         * MenuAPI.cs : fix keynav when menu is click activated.
15871
15872 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
15873
15874         * ToolStrip*: Version 0.2.
15875
15876         * MenuStrip.cs: Version 0.1.
15877
15878         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
15879
15880 2006-10-30  Chris Toshok  <toshok@ximian.com>
15881
15882         [ fixes the oversized notify icon issue in bug #79745 ]
15883         
15884         * NotifyIcon.cs: scale the icon down to the size we're given by
15885         the XplatUI layer (this would be faster if we did it once instead
15886         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
15887         since it's never invoked.
15888
15889         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
15890         pixels high by default, so let's hardcode our systray icon to that
15891         size.  The SYSTEM_TRAY protocol should really have a way for
15892         client apps to query for the correct icon size.. but oh well.  A
15893         couple of patches to deal with the screwy client_window ==
15894         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
15895         instance, and also make sure we don't XSelectInput twice).
15896
15897 2006-10-30  Chris Toshok  <toshok@ximian.com>
15898
15899         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
15900         recreating forms.  Control recreation is the bane of my existence.
15901         Fix it in a way that keeps everyone happy.
15902
15903 2006-10-30  Chris Toshok  <toshok@ximian.com>
15904
15905         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
15906         just non-CHILD ones.  otherwise sometimes scrollbars end up with
15907         client_windows not being resized to the proper size (ReportBuilder
15908         shows this extremely well).
15909
15910 2006-10-30  Chris Toshok  <toshok@ximian.com>
15911
15912         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
15913         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
15914         showing up in the gnome taskbar.  Fixes bug #79790.
15915
15916 2006-10-30  Chris Toshok  <toshok@ximian.com>
15917
15918         * ApplicationContext.cs: guard against a NRE.
15919
15920         * Application.cs: null out the old MainForm for the context, so we
15921         don't try to use it again once it's disposed.  Fixes bug #79783.
15922
15923 2006-10-30  Chris Toshok  <toshok@ximian.com>
15924
15925         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
15926         BindingContext, set the data source directly, otherwise do the
15927         lazy approach - the actual ListManager will be created when we get
15928         a BindingContext. Fixes bug #79700.
15929
15930 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
15931
15932         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
15933           XplatUIX11.cs: Remove old 2 parameter SetVisible.
15934
15935         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
15936
15937 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
15938
15939         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
15940         of SetVisible that allows a window to be shown, but not activated.
15941         This is needed on Windows for MenuStrip, and can probably be used
15942         with MainMenu and ComboBox to fix the focus stealing issues on
15943         Windows.
15944
15945         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
15946
15947 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
15948
15949         * PictureBox.cs: Fix the output of the ToString method.
15950
15951 2006-10-29  Chris Toshok  <toshok@ximian.com>
15952
15953         * Control.cs (get_TopLevelControl): fix bug #79781.
15954
15955 2006-10-29  Chris Toshok  <toshok@ximian.com>
15956
15957         * ListControl.cs (set_DataSource): throw Exception here, not
15958         ArgumentException, to match MS behavior.
15959
15960 2006-10-29  Chris Toshok  <toshok@ximian.com>
15961
15962         * Form.cs: remove the try-catch's around calls to GetWindowState.
15963         We can just check the return value.
15964
15965         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
15966         Instead return -1.
15967
15968         * XplatUI.cs: Add note about additional return value for
15969         GetWindowState.
15970
15971 2006-10-29  Chris Toshok  <toshok@ximian.com>
15972
15973         * Control.cs (CreateHandle): when we create our handle, we also
15974         create the handles of our child controls.  Fixes one of the
15975         Control unit tests (CH11).
15976
15977 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
15978
15979         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
15980
15981 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
15982
15983         * ThemeClearlooks.cs: A little speedup.
15984
15985 2006-10-27  Chris Toshok  <toshok@ximian.com>
15986
15987         * Control.cs: implement Control.FromChildHandle in a way that
15988         matches the docs (and fixes the failed test.)
15989
15990 2006-10-27  Chris Toshok  <toshok@ximian.com>
15991
15992         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
15993         comments).
15994
15995         * DataGrid.cs: implement ResetForeColor such that the tests
15996         succeed.
15997         
15998 2006-10-27  Chris Toshok  <toshok@ximian.com>
15999
16000         * ToolBarButton.cs: setting text/tooltiptext to null results in it
16001         being set to "".  Fixes bug #79759.
16002
16003 2006-10-27  Jackson Harper  <jackson@ximian.com>
16004
16005         * TextControl.cs: We need to clear the entire selection area when
16006         setting the start, otherwise multiline selections are still
16007         visible.
16008
16009 2006-10-26  Chris Toshok  <toshok@ximian.com>
16010
16011         * PropertyGridView.cs: 
16012
16013         - ifdef all the code specific to the double
16014         buffer case, and provide some alternatives in the non-doublebuffer
16015         code, which makes heavy use of XplatUI.ScrollWindow to move things
16016         around without having to invalidate (and cause flicker).  There
16017         are still some drawing problems in the non-doublebuffered case, so
16018         DOUBLEBUFFER is defined by default.
16019
16020         - Fix the way dropdowns are handled.  now we explicitly watch for
16021         the events which might cause the dropdown to close, and break out
16022         of the nested event loop there.  This gets rid of all Capture
16023         code, at the expense of the Msg special casing.  Seems to work,
16024         though, and fixes bug #79743.
16025
16026 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
16027         * Control.cs: SetIsRecreating now recreates implicitly added
16028         child controls as well. Finally fixes #79629. The flag passed to 
16029         SetIsRecreating has also been removed since it wasn't used.
16030         
16031 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16032
16033         * PageSetupDialog.cs: Clean some code, fix some bits, 
16034         add some checks, and add a printer sub-dialog.
16035
16036 2006-10-26  Chris Toshok  <toshok@ximian.com>
16037
16038         * PropertyGrid.cs: make set_SelectedObject call
16039         set_SelectedObjects, and move the duplicate logic to the
16040         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
16041
16042         * PropertyGridView.cs: hide the textbox when we get a
16043         SelectedObjectsChanged event.
16044
16045         Fixes bug #79748.
16046
16047 2006-10-26  Chris Toshok  <toshok@ximian.com>
16048
16049         * PropertyGridView.cs: deal with the type converter not supporting
16050         GetStandardValues() or GetStandardValues() returning null, which
16051         is does in the default case.  Fixes #79742.
16052
16053 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
16054
16055         * CheckedListBox.cs: nunit no longer crashes when selecting 
16056         Project/Edit menu option
16057         
16058 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
16059
16060         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
16061         is no menu selected. fixes #79739
16062
16063 2006-10-25  Chris Toshok  <toshok@ximian.com>
16064
16065         * PropertyGridView.cs: factor out the splitter invalidation code
16066         into the SplitterPercent setter, and for kicks implement the
16067         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
16068         amount in either direction.
16069
16070 2006-10-25  Chris Toshok  <toshok@ximian.com>
16071
16072         * PropertyGridView.cs: do some cleanup of the brush used to draw
16073         text - read only fields should be grayed out.  not sure how to do
16074         this with the textbox, though.  but the textbox's should also be
16075         readonly now at least.  Also, hide/show the textbox when resizing
16076         the control.
16077         
16078         * CursorConverter.cs: use System.Reflection when getting the
16079         properties of Cursors, as TypeDescriptor.GetProperties isn't
16080         returning static properties.
16081
16082 2006-10-25  Chris Toshok  <toshok@ximian.com>
16083
16084         * PropertyGridView.cs: factor out the up/down handling, and reuse
16085         it for page up/down.  also add End/Home support.
16086
16087 2006-10-25  Chris Toshok  <toshok@ximian.com>
16088
16089         * PropertyGridView.cs:
16090
16091         - ensure the selected grid item is visible in the scrolled area,
16092         fixes bug #79572.
16093
16094         - fix Keys.Down handling when you're on the last item in the
16095         propertygrid.
16096
16097 2006-10-25  Mike Kestner  <mkestner@novell.com>
16098
16099         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
16100         clicks too.  Fixes #79725.
16101
16102 2006-10-24  Chris Toshok  <toshok@ximian.com>
16103
16104         * PropertyGrid.cs: use property.Converter instead of
16105         TypeDescriptor.GetConverter(property.PropertyType), so we catch
16106         TypeConverters declared on the property as well as on the
16107         PropertyType.  Fixes bug #79678.
16108
16109 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
16110
16111         * MimeIcon.cs, Mime.cs:
16112           Fallback to the default platform handler if no shared mime info
16113           stuff exists (fixes #79693).
16114
16115 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
16116         * ContainerControl.cs: Incorrect contains check in ActiveControl 
16117         from previous fix (duh).
16118
16119 2006-10-20  Chris Toshok  <toshok@ximian.com>
16120
16121         * PropertyGridView.cs: the dropdown should be MIN(number of items
16122         in list, 15).  Fixes #79551.
16123
16124 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
16125         Fixes #79384, #79394, #79652, #79667
16126         * Application.cs: 
16127         
16128         - Modal windows are now destroyed in the proper order for windows
16129         
16130         * ContainerControl.cs:
16131         
16132         - ActiveControl setter has more conditions on when to return:
16133                 - if we're reselecting the active control, but it actually
16134                 didn't have focus (window hidden or some such), it runs
16135                 - if the active control being selected doesn't actually 
16136                 exist in the container, it returns
16137         
16138         * Form.cs
16139         
16140         - The ShowDialog now gets the current form as the owner when
16141         invoking without parameters, and correctly activates the owner 
16142         when returning
16143         
16144         * MessageBox.cs
16145         
16146         - MessageBox now catches the Escape key to exit
16147
16148 2006-10-20  Chris Toshok  <toshok@ximian.com>
16149
16150         * PropertyGridView.cs: fix a number of issues (bug #78565, and
16151         most of bug #79676):
16152
16153         - you can navigate around the property grid with the arrow keys.
16154
16155         - the dropdown is sized properly when the pg has a vertical
16156         scrollbar.
16157
16158         - fix the indentation for subentries, and properly select the
16159         entire label rect.
16160
16161         - fix the gray bar's drawing (only draw it to the last element,
16162         not for the height of the control.  Also make sure we draw that
16163         last horizontal grid line.
16164
16165         - use the same mechanism the datagrid uses wrt the editing textbox
16166         when scrolling/resizing/etc.  Namely, we hide it first, do the
16167         operation, then show it again (if it's still visible).
16168         
16169         - aggressively remove a lot of unnecessary refreshes (and also
16170         calls to Invalidate(). call more limited variants, and only redraw
16171         what we need.)
16172         
16173         * PropertyGrid.cs:
16174
16175         - when we're populating the merged collection, fill in the UI
16176         parent with either the passed in item, or the category item we
16177         create.
16178
16179         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
16180
16181         * GridItem.cs: drop some fully qualified names.
16182         
16183         * GridEntry.cs: add a "UIParent", which is basically the parent
16184         treenode.
16185
16186         * GridItemCollection.cs: add an IndexOf method.
16187
16188 2006-10-20  Mike Kestner  <mkestner@novell.com>
16189
16190         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
16191         a working win32 NC invalidation mechanism, we can't invalidate
16192         menus.  [Fixes #79705]
16193
16194 2006-10-20  Mike Kestner  <mkestner@novell.com>
16195
16196         * ListBox.cs : don't update the VScrollbar if the list is empty,
16197         just hide it.  [Fixes #79692]
16198
16199 2006-10-20  Jackson Harper  <jackson@ximian.com>
16200
16201         * RichTextBox.cs: Handle some special chars better, and don't skip
16202         the entire group when we encounter a special char that we don't
16203         handle correctly.
16204
16205 2006-10-18  Chris Toshok  <toshok@ximian.com>
16206
16207         * PropertyGridView.cs: address a number of issues from bug #79676,
16208         mostly of the cosmetic variety.
16209
16210         - The highlight rectangle for indented items not extends all the
16211         way to the left.
16212
16213         - Indented items aren't indented so much.
16214
16215         - the dropdown is properly sized width-wise if the pg has a
16216         vertical scrollbar.
16217
16218 2006-10-18  Chris Toshok  <toshok@ximian.com>
16219
16220         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
16221         systray stuff is rather convoluted to begin with.
16222
16223         systray icons are a single window for some reason (that I haven't
16224         figured out yet), and for them, client_window == whole_window.
16225         Given the way the tests are structured elsewhere to determine
16226         which paints are pending (client vs. nc), that situation will
16227         always yield PAINT, not NCPAINT.  So, if we have a pending
16228         nc_expose and no pending expose, remove the hwnd from the paint
16229         queue, and also set nc_expose_pending to false, to keep us from
16230         blocking further expose's adding the hwnd to the paint queue.
16231
16232         phew.  like i said, a rather convoluted change.  Fixes the
16233         notifyicon repaint issues in bug #79645.
16234
16235 2006-10-18  Chris Toshok  <toshok@ximian.com>
16236
16237         * Form.cs: when getting the backcolor of the form, don't get
16238         base.BackColor, as this allows parents to influence the background
16239         color.  This breaks mdi forms.  Instead, if the background_color
16240         is empty, return the default.
16241
16242 2006-10-18  Chris Toshok  <toshok@ximian.com>
16243
16244         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
16245         to being private instead of internal static.
16246
16247         * Control.cs: remove all the stupid ParentWaitingOnRecreation
16248         crap, it wasn't working for more deeply nested controls anyway,
16249         and we already have the is_recreating flag - use that instead.
16250         Before calling DestroyHandle in RecreateHandle, recurse through
16251         the control tree setting it to true.  this returns the recreate
16252         code to much of its original simplicity, while now guaranteeing we
16253         actually recreate everything we're supposed to.  This change gets
16254         fyireporting actually showing mdi children.
16255
16256 2006-10-17  Chris Toshok  <toshok@ximian.com>
16257
16258         * Form.cs: remove some debug spew, and collapse some duplicate
16259         code at the end of SetClientSizeCore.
16260
16261         * XplatUIX11.cs: 
16262         - add some more debug spew here too wrt Destroy handling.
16263         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
16264         in Control's handling of WM_DESTROY.
16265         - Remove the handling of zombie window DestroyNotifies from the
16266         event loop - we don't need it.  Now the only DestroyNotifies we
16267         actually handle are ones generated by X.
16268         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
16269         match gtk's (functioning) handling of this. This keep metacity
16270         from leaving droppings in the form of wm borders with no window
16271         contents all over the place.
16272
16273         * Control.cs:
16274         - add a bunch of debug spew wrt control recreation.
16275         - fix a bug where we weren't tracking Visible properly on
16276         recreated hwnds.
16277         - fixed the WM_PAINT double buffer handling to support re-entrant
16278         calls (yes, i know it's gross, but it's happening to us).
16279
16280 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
16281         * ThemeWin32Classic.cs: changed drawing of selected days
16282         to make them look better.
16283
16284 2006-10-16  Chris Toshok  <toshok@ximian.com>
16285
16286         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
16287         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
16288
16289         * XplatUIX11.cs: move away from using hwnd.client_dc and
16290         hwnd.non_client_dc and on to a stack of dc's (and in window's
16291         case, PAINTSTRUCT's), so we can deal with nested Paint calls
16292         without puking or not disposing of Graphics objects.
16293
16294         * XplatUIOSX.cs: same.
16295
16296         * XplatUIWin32.cs: same.
16297
16298 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
16299
16300         * FileDialog.cs: Don't call on_directory_changed inside
16301           OnSelectedIndexChanged (it changes the SelectedIndex too).
16302           Instead move it to OnSelectionChangeCommitted.
16303
16304 2006-10-13  Chris Toshok  <toshok@ximian.com>
16305
16306         * XplatUIX11.cs: more Destroy work.  the current code does the
16307         following things, in order:
16308
16309         1. Enumerates all handles of all controls at or below the one
16310         being destroyed, in pre-order.  As it is doing this, it marks the
16311         handles as zombie and clears all references to them.
16312         
16313         2. calls XDestroyWindow on the window passed in.
16314
16315         3. SendMessage's WM_DESTROY to all he handles in the accumulated
16316         list.
16317
16318 2006-10-13  Chris Toshok  <toshok@ximian.com>
16319
16320         * XplatUIX11.cs: set hwnd.zombie to true before calling
16321         SendMessage (WM_DESTROY).  this keeps us from marking the new
16322         window a zombie, and also keeps us from calling sendmessage at
16323         all.
16324
16325 2006-10-13  Jackson Harper  <jackson@ximian.com>
16326
16327         * TextControl.cs: Do not show the caret and selection at the same
16328         time.  Reduces ugliness by 35%.
16329
16330 2006-10-13  Chris Toshok  <toshok@ximian.com>
16331
16332         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
16333         zombie after we do the recursive call, so we actually do call
16334         SendMessage on the children controls.
16335         (GetMessage): if we find a pending paint event for a zombie hwnd,
16336         remove the hwnd from the paint queue, or else it will always be
16337         there (and we'll effectively loop infinitely)
16338
16339 2006-10-13  Mike Kestner  <mkestner@novell.com>
16340
16341         * MenuItem.cs : add Selected format under keynav too.
16342         Fixes #79528.
16343
16344 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
16345
16346         * PropertyGrid.cs: Fixed some NRE's and small difference between our
16347         implementation and that of MS.
16348
16349 2006-10-13  Chris Toshok  <toshok@ximian.com>
16350
16351         * Control.cs (OnInvalidated) only futz with the invalid_region if
16352         the control is double buffered.  this fixes the apparent hang in
16353         the ListView unit tests.  Someone needs to make the
16354         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
16355
16356 2006-10-13  Chris Toshok  <toshok@ximian.com>
16357
16358         * PropertyGridView.cs:
16359
16360         - do a little refactoring so that only one place calls
16361         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
16362         else call that.  Also make it Refresh, since there are redraw bugs
16363         otherwise (we should take a look at that...)
16364
16365         - do a little more refactoring work to share the body of code
16366         involved with the drop down.  it was duplicated in the code
16367         dealing with the listbox handling and in the code dealing with the
16368         UITypeEditors.
16369
16370         - add a Capture to the dropdown form's control once it's
16371         displayed, and add a MouseDown handler that checks to make sure
16372         the position is inside the control.  If it's not, close the
16373         dropdown.  This fixes #78190.
16374
16375         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
16376         if the value is different than the initial value.
16377         
16378 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
16379
16380         * Control.cs: see #78650
16381         - Fixed GetNextControl for several cases:
16382                 - Changed FindFlatForward to return 
16383                 correct sibling control when more than one
16384                 control has same TabIndex as the currently 
16385                 focused one.
16386                 - Changed FindFlatBackward to loop children
16387                 from last to first and apply same logic as in
16388                 FindFlatForward
16389                 - Changed FindControlForward to search for
16390                 children when control is not a container
16391                 but has children, or search for siblings if
16392                 control is a container...
16393                 - Changed FindControlBackward   to continue
16394                 searching for child controls when hitting 
16395                 Panel-like parents
16396                 
16397         - Fixed Focus method to update ActiveControl
16398         (FocusTest.FocusSetsActive failure)
16399         
16400         * TabControl.cs:
16401         - Focus rectangle now refreshes when gaining
16402         or losing focus
16403         - Removed grab for Tab key on IsInputKey that 
16404         was keeping tab navigation from working (#78650)
16405
16406 2006-10-13  Chris Toshok  <toshok@ximian.com>
16407
16408         * PropertyGridView.cs:
16409         - Rewrite SetPropertyValue to loop over SelectedGridItem's
16410         SelectedObjects.
16411
16412         - Deal with GridItem.Value == null a few places.
16413
16414         * PropertyGrid.cs: 
16415         - replace the PopulateGridItemCollection with a pair of methods
16416         which compute the intersection of all the properties in the
16417         SelectedObjects array.  Fixes #79615.
16418
16419         - Throw ArgumentException from set_SelectedObjects if there's a
16420         null in the array.
16421
16422         - Add GetTarget method which can be used to traverse up the
16423         GridItem.Parent chain.  It depends on the assumption that
16424         selected_objects for different GridEntries are always in the same
16425         order (a safe assumption).  Use this method and loop over all the
16426         selected objects in the entry when calling RemoveValueChanged and
16427         AddValueChanged.
16428         
16429         * GridEntry.cs: Make this handle multiple selected objects.
16430         .Value returns null if not all the selected objects share the same
16431         value.
16432
16433 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
16434         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
16435           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
16436           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
16437           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
16438           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
16439         add additional functionality.
16440
16441 2006-10-12  Mike Kestner  <mkestner@novell.com>
16442
16443         * ErrorProvider.cs : new ToolTipWindow ctor sig.
16444         * HelpProvider.cs : new ToolTipWindow ctor sig.
16445         * ToolTip.cs : remove ToolTip param from Window sig since it is
16446         not used.
16447         * ToolBar.cs : add tooltip support.  Fixes #79565.
16448
16449 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
16450
16451         * ComboBox.cs: move the events in set_SelectedIndex to 
16452         after the call to HighlightIndex in order to avoid 
16453         possible recursion and subsequent problems with the call
16454         to HighlightIndex and include a range check in 
16455         set_HighlightIndex. Fixes #79588
16456         
16457 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
16458
16459         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
16460         to ui thread's settings instead of sunday. 
16461         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
16462
16463 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
16464
16465         * DateTimePicker.cs
16466         * MonthCalendar.cs
16467         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
16468         and implement missing functionality (selecting different parts 
16469         of the date and edit them individually with the keyboard).
16470         
16471 2006-10-11  Chris Toshok  <toshok@ximian.com>
16472
16473         * Control.cs (OnInvalidated): fix NRE relating to last change.
16474
16475 2006-10-11  Chris Toshok  <toshok@ximian.com>
16476
16477         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
16478         atoms in _NET_WM_STATE here if the window is maximized.  We need
16479         to do this because we're *replacing* the existing _NET_WM_STATE
16480         property, so those atoms will be lost otherwise, and any further
16481         call to GetWindowState will return Normal for a window which is
16482         actually maximized.  Fixes #79338.
16483
16484 2006-10-11  Jackson Harper  <jackson@ximian.com>
16485
16486         * TextControl.cs: Special case for setting selection end to
16487         selection start, we basically kill the anchor.
16488         - some todo comments.
16489
16490 2006-10-11  Chris Toshok  <toshok@ximian.com>
16491
16492         * Control.cs: switch to using an "invalid_region" to track which
16493         parts of the image buffer need updating.  This is more code than
16494         the simple fix from r66532.  That version just attempted to always
16495         fill the entire buffer on redraw, which turns out to be
16496         inefficient when invalidating small rectangles.  This version
16497         simply adds the invalid rectangle to the invalid region.  When we
16498         get any WM_PAINT message we see if it can be filled using the
16499         image buffer, and if it can't (if the paint event's clip rectangle
16500         is visible in the invalid region) we first fill the image buffer.
16501         So, the image buffer is still a cache, we just fill it lazily.
16502
16503         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
16504         need it any longer.
16505
16506 2006-10-11  Chris Toshok  <toshok@ximian.com>
16507
16508         * XplatUIX11.cs (SetWindowPos): we need to update both position as
16509         well as size after calling XMoveResizeWindow.  This keeps us from
16510         ignoring future SetWindowPos calls.  Fixes the disappearing
16511         DateTimePicker in the ToolBarDockExample from bug #72499.
16512
16513 2006-10-11  Chris Toshok  <toshok@ximian.com>
16514
16515         * TextBoxBase.cs: reorder things a bit when it comes to
16516         resizing-causing-recalculation.  we were recalculating the
16517         document when our position was changed, which shouldn't happen.
16518         We only care about size changes.  Clear up some more redundant
16519         recalculation calls while I'm at it.  This makes the toolbar dock
16520         example snappy when you're just dragging toolbars around (since it
16521         causes a relayout whenever you move one.)
16522
16523 2006-10-11  Chris Toshok  <toshok@ximian.com>
16524
16525         * ToolBarButton.cs (get_Rectangle): this only returns
16526         Rectangle.Empty if Visible == false, or Parent == null.
16527         Parent.Visible doesn't matter.
16528
16529 2006-10-10  Chris Toshok  <toshok@ximian.com>
16530
16531         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
16532         by .net 1.1, so switch to an internal method instead.
16533
16534 2006-10-10  Chris Toshok  <toshok@ximian.com>
16535
16536         * Control.cs (WM_PAINT): when a control is double buffered we draw
16537         initially to the ImageBuffer and then copy from there.  But when a
16538         parent control which has child controls is double buffered, the
16539         initial drawing doesn't encompass the entire ClientRectangle of
16540         the parent control, so we end up with uninitialized bits (this is
16541         easily seen by dragging the top toolbar in
16542         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
16543         manually set the ClipRectangle of the paint_event (only the one we
16544         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
16545         of the nastiness in bug #72499.
16546
16547         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
16548         which we use in Control.cs's WM_PAINT handling.
16549
16550 2006-10-10  Jackson Harper  <jackson@ximian.com>
16551
16552         * TextBoxBase.cs: Finish off the autoscrolling stuff.
16553
16554 2006-10-10  Chris Toshok  <toshok@ximian.com>
16555
16556         * Cursor.cs: Apply a slightly different patch to the one suggested
16557         in #79609.
16558
16559 2006-10-10  Jackson Harper  <jackson@ximian.com>
16560
16561         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
16562         not the parent form.
16563         * TextControl.cs: use difference in old line count vs new count to
16564         calculate how many lines were added, this takes into account soft
16565         line breaks properly.
16566
16567 2006-10-10  Chris Toshok  <toshok@ximian.com>
16568
16569         * LinkLabel.cs: don't call MeasureCharacterRanges against a
16570         rectangle located at 0,0 and the size of the text.  Use
16571         ClientRectangle instead.  This fixes rendering of non-left aligned
16572         link labels.
16573
16574 2006-10-10  Jackson Harper  <jackson@ximian.com>
16575
16576         * TextBoxBase.cs: When we set the selection start position the
16577         caret.
16578         * TextControl.cs: Need to update the caret when we decrement it to
16579         zero.
16580         - Make sure that the selection_visible flag gets reset to false if
16581         the selection isn't visible.  Before this you could get it set to
16582         visible by changing the selection start, then changing the end to
16583         equal the start.
16584
16585 2006-10-09  Jackson Harper  <jackson@ximian.com>
16586
16587         * TreeView.cs: Don't update scrollbars when we aren't visible.
16588         * TreeNodeCollection.cs: Only need to update scrollbars if being
16589         added to an expanded visible node or the root node.
16590
16591 2006-10-09  Chris Toshok  <toshok@ximian.com>
16592
16593         * XplatUIX11.cs (SendMessage): fix NRE.
16594
16595 2006-10-09  Jackson Harper  <jackson@ximian.com>
16596
16597         * TextBoxBase.cs: Implement horizontal autoscrolling.
16598         * TextControl.cs: Add a movement types that allows moving forward
16599         and backwards without wrapping.
16600
16601 2006-10-09  Mike Kestner  <mkestner@novell.com>
16602
16603         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
16604         with focus "expansion" of labels.  Fixes #79532 and then some.
16605         * ThemeWin32Classic.cs : add LineLimit to ListView label format
16606         when wrapping.
16607
16608 2006-10-09  Jackson Harper  <jackson@ximian.com>
16609
16610         * TextBoxBase.cs: Set the default max values to MaxValue since
16611         we use the scrollbar for autoscrolling and the default value is
16612         100.  If we don't do this the caret won't keep up with typing
16613         after about 18 characters.
16614         * TextControl.cs: Make sure the selection is offset by the
16615         viewport x.  This fixes selection when using auto scrolling.
16616
16617 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
16618         
16619         * Form.cs: The active control should be selected after the 
16620         OnLoad so that any child control initialization that affects
16621         the selection is done. Fixes #79406
16622
16623 2006-10-06  Chris Toshok  <toshok@ximian.com>
16624
16625         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
16626         to have no evil effects.
16627
16628         - Stop selecting StructureNotifyMask on non-toplevel windows.
16629
16630           The only way children should be resized is by using the SWF api,
16631           and we already send WM_WINDOWPOSCHANGED messages in those cases.
16632           Toplevel windows can be interacted with via the window manager,
16633           and so we keep the input mask there.
16634
16635           The other event StructureNotifyMask gives us (that we care
16636           about) is DestroyNotify.  The code is already structured such
16637           that it assumes we won't be getting a DestroyNotify event for
16638           the window we pass to XDestroyWindow (which is what
16639           StructureNotifyMask is supposed to guarantee.)  So, that code
16640           shouldn't be affected by this either.
16641
16642         - Stop selecting VisibilityChangeMask altogether.
16643
16644           We weren't doing anything with the resulting events anyway.
16645         
16646         This vastly reduces the number of X requests and events we see
16647         when resizing/laying out a large ui.
16648
16649 2006-10-06  Chris Toshok  <toshok@ximian.com>
16650
16651         * ScrollableControl.cs (DisplayRectangle): we need to take into
16652         account the DockPadding regardless of whether or not auto_scroll
16653         == true.  rework this slightly to this effect, and fix bug #79606,
16654         and part of #72499 (you can now see the drag handles and drag
16655         toolbars around).
16656
16657 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
16658
16659         * ListViewItem.cs: Collections of selected and checked items are now
16660         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
16661         we mark the collection "dirty".
16662         * ListView.cs: Marked collections readonly. Modified UpdateSelection
16663         to only clear SelectedItems when a new item is selected and MultiSelect
16664         is enabled. CheckedItems and SelectedItems now subscribe to Changed
16665         event of ListViewItemCollection, and mark its list dirty whenever
16666         that event is fire. This allows us to return selected/checked items 
16667         in the same order as they are in the Items collection. This matches
16668         the MS behavior.
16669
16670 2006-10-06  Chris Toshok  <toshok@ximian.com>
16671
16672         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
16673         right mouse clicks.  Fixes bug #79593.
16674
16675 2006-10-06  Chris Toshok  <toshok@ximian.com>
16676
16677         * Splitter.cs: doh, fix splitters that don't want to cancel the
16678         movement when you drag them.  Also, impose the limits on the
16679         values we send to the SplitterMovingEvent.  Fixes #79598.
16680
16681 2006-10-06  Jackson Harper  <jackson@ximian.com>
16682
16683         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
16684         since we use this for auto scrolling also.
16685
16686 2006-10-05  Chris Toshok  <toshok@ximian.com>
16687
16688         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
16689         beginning to think that most datagrid column types don't need this
16690         method.  Fixes bug #79392.
16691
16692 2006-10-05  Chris Toshok  <toshok@ximian.com>
16693
16694         * DataGrid.cs: move back to a more lazy scheme for creating the
16695         CurrencyManager, so we aren't updating it every time you set
16696         either DataSource or DataMember.  Also, don't call
16697         RecreateDataGridRows if the currency manager hasn't changed.
16698
16699 2006-10-05  Chris Toshok  <toshok@ximian.com>
16700
16701         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
16702         emitted, SelectedIndex should already be updated.  Fixes bug
16703         #78929.
16704
16705 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
16706
16707         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
16708           ToolStripTextBox.cs: Initial commit.
16709         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
16710
16711 2006-10-05  Jackson Harper  <jackson@ximian.com>
16712
16713         * TabControl.cs: We need to invalidate the tab control area when
16714         new ones are added (duh).
16715
16716 2006-10-03  Chris Toshok  <toshok@ximian.com>
16717
16718         * Form.cs (ProcessDialogKey): if the focused control is in this
16719         form and is a button, call its PerformClick method here.  Fixes
16720         #79534.
16721
16722 2006-10-04  Jackson Harper  <jackson@ximian.com>
16723
16724         * TabPage.cs: Ignore setting of Visible, and add an internal
16725         method for setting the controls visibility.  TabPage's Visible
16726         property is a little strange on MS, this seems to make us
16727         compatible, and fixes cases where people set all the tab pages to
16728         visible.
16729         * TabControl.cs: Use the new internal setting on tab pages
16730         visibility.
16731
16732 2006-10-03  Mike Kestner  <mkestner@novell.com>
16733
16734         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
16735
16736 2006-10-03  Mike Kestner  <mkestner@novell.com>
16737
16738         * ListView.cs : use is_visible instead of Visible to check if 
16739         scrollbars should be placed/sized.  Also some max_wrap_width
16740         love for LargeIcon view.  [Fixes #79533]
16741
16742 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
16743
16744         * TextControl.cs :
16745           Make set_TextAlign() do actually update the align. Fixed #78403.
16746
16747 2006-10-03  Chris Toshok  <toshok@ximian.com>
16748
16749         * DataGrid.cs: fix a crash when switching datasources if the
16750         vertical scrollbar is at someplace other than Value = 0.  Also,
16751         reduce the number of recalculation passes we do in SetDataSource
16752         from 2 to 1.
16753
16754 2006-10-03  Jackson Harper  <jackson@ximian.com>
16755
16756         * TextBoxBase.cs: Move the if value the same bail check up, we
16757         don't want to empty the document if it is already empty, this
16758         seems to severly mess up the caret.  TODO: I should probably fix
16759         the empty statement to update teh caret somehow.
16760
16761 2006-10-03  Chris Toshok  <toshok@ximian.com>
16762
16763         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
16764         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
16765         reflection, an internal row type, properties on said type, etc.)
16766         will work with our datagrid.  Fixes #79531.
16767
16768 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
16769
16770         * FileDialog.cs: Don't crash if a path is not accessible
16771           (System.UnauthorizedAccessException). Fixes #79569.
16772         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
16773           a ':' too. Return unknown icon for those paths/files.
16774
16775 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
16776
16777         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
16778         GetContainerControl returns null.
16779
16780 2006-10-02  Chris Toshok  <toshok@ximian.com>
16781
16782         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
16783         call to XGetWindowAttributes instead of "handle".  fixes an X
16784         error using notifyicon after the NotifyIconWindow to Form base
16785         class switch.
16786
16787 2006-10-02  Chris Toshok  <toshok@ximian.com>
16788
16789         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
16790         server grab and looping we need to do to get down to the most
16791         deeply nested child window.
16792         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
16793         QueryPointer again after the WarpPointer so we can generate a
16794         proper (fake) MotionNotify event to be enqueued in the destination
16795         window's queue.
16796         (GetCursorPos): call QueryPointer.
16797
16798         Fixes #79556.
16799
16800 2006-10-02  Jackson Harper  <jackson@ximian.com>
16801
16802         * NotifyIcon.cs: Derive the notify icon from a form, so things
16803         like FindForm work on it.
16804         - Swallow the WM_CONTEXTMENU message, since that is generated on
16805         mouse down, and context menu is a mouse up kinda guy.  I believe
16806         the correct fix here is probably to make the notify icon entirely
16807         NC area, but this seems to work fine for anyone not manipulating
16808         WndProc.
16809
16810 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
16811
16812         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
16813           ToolStripItemCollection.cs, ToolStripLabel.cs,
16814           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
16815           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
16816           Initial implementation.
16817         * TextRenderer.cs: Provide padding to MeasureText.
16818
16819 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
16820
16821         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
16822         of ButtonBaseAccessibleObject. Fix bug #79552.
16823
16824 2006-10-02  Jackson Harper  <jackson@ximian.com>
16825
16826         * MdiWindowManager.cs: When maximizing use the containers client
16827         rect, not it's bounds, so nc area is accounted correctly.
16828         - Use the parent form's size for the menu position, since the
16829         client isn't always the full form size.
16830
16831 2006-10-01  Chris Toshok  <toshok@ximian.com>
16832
16833         * ScrollableControl.cs: make sure neither right_edge or
16834         bottom_edge are < 0, since they're used as LargeChange for the
16835         horiz/vert scrollbars respectively.  Fixes #79539.
16836
16837 2006-10-01  Chris Toshok  <toshok@ximian.com>
16838
16839         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
16840         the xplatuix11 code can cause us to destroy/recreate our handle.
16841
16842         * XplatUIX11.cs
16843         (SystrayAdd):
16844         - this code can be invoked many times for the same Hwnd.  Make
16845           sure we only destroy the client window once (the first time this
16846           method is called).  This fixes bug #79544.
16847         - Remove the call to the improperly bound XSync.  why we had two
16848           bindings to this, I will never know, but this call resulted in
16849           events being discarded from the queue(!).
16850         - correct a misunderstanding of _XEMBED_INFO - the second atom is
16851           not our current state but the state we wish to be in.  So, 0 if
16852           we don't want to be mapped.  Change it to 1.
16853         (SystrayRemove): The XEMBED spec makes mention of the fact that
16854         gtk doesn't support the reparent of client windows away from the
16855         embedder.  Looking at gtksocket-x11.c seems to agree with this.
16856         The only avenue we have for removing systray icons is to destroy
16857         them.  We don't want the handle to go away for good, though, so
16858         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
16859         #79545.
16860         
16861 2006-10-01  Chris Toshok  <toshok@ximian.com>
16862
16863         * Form.cs (WndProc): inline the native_enabled variable usage into
16864         the cases in which it's used.  Fixes #79536.
16865
16866 2006-09-29  Mike Kestner  <mkestner@novell.com>
16867
16868         * ListView.cs : toggle the selection state for ctrl clicks in 
16869         multiselect mode. [Fixes #79417]
16870
16871 2006-09-29  Mike Kestner  <mkestner@novell.com>
16872
16873         * ListView.cs : kill CanMultiSelect and refactor the selection
16874         code to support multiselection in the absence of mod keys. Steal
16875         arrow/home/end keys by overriding InternalPreProcessMessage to
16876         restore regressed keynav behavior.
16877         [Fixes #79416]
16878
16879 2006-09-29  Jackson Harper  <jackson@ximian.com>
16880
16881         * MdiClient.cs: Repaint the titlebars when the active window is
16882         changed.
16883
16884 2006-09-29  Chris Toshok  <toshok@ximian.com>
16885
16886         * Application.cs: when entering a runloop with a modal, make sure
16887         the hwnd is enabled.  Fixes #79480.
16888
16889 2006-09-29  Chris Toshok  <toshok@ximian.com>
16890
16891         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
16892         when ListManager.CanAddRows == false, bump us back one.
16893
16894         * DataGridColumnStyle.cs (ParentReadOnly): remove the
16895         listmanager.CanAddRows check.  This makes ArrayLists uneditable
16896         using a datagrid, which is not right.
16897         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
16898         is an IEditable, but call property_descriptor.SetValue regardless.
16899         fixes #79435.
16900
16901 2006-09-29  Chris Toshok  <toshok@ximian.com>
16902
16903         * DataGridBoolColumn.cs: we need to test equality in the face of
16904         possible null values (as is the case with the default NullValue).
16905         This patch keeps us from crashing in that case.
16906
16907 2006-09-29  Jackson Harper  <jackson@ximian.com>
16908
16909         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
16910         here, since it will get called for every node collection in the
16911         tree. This is now done in the treeview once the sorting is
16912         finished.
16913         * TreeView.cs: Recalculate the visible order, and update the
16914         scrollbars after sorting, set the top nope to the root so that the
16915         recalc actually works.
16916
16917 2006-09-29  Chris Toshok  <toshok@ximian.com>
16918
16919         * LinkLabel.cs: more handling of the default link collection in
16920         the face of LinkArea manipulation.  The default link collection
16921         contains 1 element (start=0,length=-1).  If the user sets LinkArea
16922         to anything and the links collection is the default, clear it.
16923         Then only add the link if its nonempty.  Fixes #79518.
16924
16925 2006-09-29  Chris Toshok  <toshok@ximian.com>
16926
16927         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
16928         piece correctly when we hit a '\n'.  Fixes #79517.
16929
16930 2006-09-29  Chris Toshok  <toshok@ximian.com>
16931
16932         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
16933         change the binding of gdk_init_check to take two IntPtr's, and
16934         pass IntPtr.Zero for both of them.  Fixes #79520.
16935
16936 2006-09-29  Mike Kestner  <mkestner@novell.com>
16937
16938         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
16939         [Fixes #78779]
16940
16941 2006-09-28  Jackson Harper  <jackson@ximian.com>
16942
16943         * XplatUIX11.cs: When translating NC messages make sure we go from
16944         whole window to screen, not client window to screen.
16945         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
16946         method doesn't exist
16947         - Skip over controls that aren't forms when arranging.
16948
16949 2006-09-28  Jackson Harper  <jackson@ximian.com>
16950
16951         * XplatUIWin32.cs: Clip the rect to the parent window.
16952         * XplatUIStructs.cs: Add clipping modes struct.
16953         * InternalWindowManager.cs: New private method that factors title
16954         bar heights in when calculating the pos of an NC mouse message.
16955         - Use SendMessage to force a paint when the form's size is changed
16956         instead of painting the decorations immediately.
16957         - Don't let the NC button click messages get to DefWndProc,
16958         because they will attempt to handle windowing themself, and this
16959         messes up z-order (it will put them in front of the scrollbars).
16960         * XplatUIX11.cs: Make sure that we don't reset window managers if
16961         we already have one (ie the window is an MDI window).
16962
16963 2006-09-28  Chris Toshok  <toshok@ximian.com>
16964
16965         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
16966         menu code really needs going over.
16967
16968 2006-09-27  Chris Toshok  <toshok@ximian.com>
16969
16970         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
16971         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
16972         window is maximizable.  So, we need to make sure that even if we
16973         clear the border/wm frame of those functions, they're still
16974         available (basically, we remove the decoration without removing
16975         the function).  Half the fix for #79338.
16976
16977 2006-09-27  Chris Toshok  <toshok@ximian.com>
16978
16979         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
16980         Fixes bug #79515.
16981
16982 2006-09-27  Chris Toshok  <toshok@ximian.com>
16983
16984         * Splitter.cs: reorder things a bit so that we don't actually
16985         draw/move the splitter until after calling OnSplitterMoving.  This
16986         lets users cancel/disallow the movement by explicitly setting
16987         event.SplitX/SplitY.  Fixes #79372.
16988
16989 2006-09-27  Jackson Harper  <jackson@ximian.com>
16990
16991         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
16992         because it is most likely on a window being destroyed, and that
16993         will give us an X11 error.
16994
16995 2006-09-27  Chris Toshok  <toshok@ximian.com>
16996
16997         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
16998         the dropdown button now toggles between showing and hiding the
16999         dropdown.  Also, get rid of dropdown_form_showing and just use
17000         dropdown_form.Visible.  We still don't do a grab, but I'll leave
17001         that part to someone who has handled Capture-fu before.
17002
17003 2006-09-27  Chris Toshok  <toshok@ximian.com>
17004
17005         * DataGrid.cs: return false if alt isn't pressed when '0' is
17006         pressed.  this keeps the '0' key from being swallowed, and fixes
17007         bug #79350.
17008
17009 2006-09-27  Chris Toshok  <toshok@ximian.com>
17010
17011         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
17012         Calling Refresh (in response to a scrollbar event) screws up the
17013         scrollbar painting.  Fixes bug #78923.
17014
17015 2006-09-27  Chris Toshok  <toshok@ximian.com>
17016
17017         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
17018         then insert into hashtable" blocks threadsafe.
17019
17020 2006-09-27  Chris Toshok  <toshok@ximian.com>
17021
17022         * MessageBox.cs (CreateParams): the styles should be |'ed with our
17023         baseclass's, since otherwise the
17024         ControlBox/MinimizeBox/MaximizeBox assignments above have no
17025         effect.  This gets the close button back in messageboxes.
17026
17027 2006-09-27  Chris Toshok  <toshok@ximian.com>
17028
17029         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
17030         flag, not just != 0.  this makes flags that are actually multiple
17031         bits (like WS_CAPTION) work.  fixes bug #79508.
17032
17033 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
17034
17035         * PageSetupDialog.cs: add support for getting and settings the 
17036         paper size, source and orientation.
17037
17038 2006-09-26  Chris Toshok  <toshok@ximian.com>
17039
17040         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
17041         and caption == "", we need to remove the resize handles as well as
17042         the title bar.
17043
17044         * Control.cs (set_Text): turns out that setting Text on a form
17045         should change the WM styles on the window, since if ControlBox ==
17046         false, the only way to get a window border is to have a non-""
17047         Text property.  check winforms/forms/text.cs for an example.  so,
17048         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
17049         update both window styles and title.  This fixes a lot of dialogs
17050         (including the preferences dialog in MonoCalendar.)
17051
17052 2006-09-26  Chris Toshok  <toshok@ximian.com>
17053
17054         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
17055         control isn't a Form), call Win32ShowWindow to hide the window,
17056         but don't update the control Visible property.  When we reparent
17057         back to a parent control, call SetVisible in order for the
17058         window's visibility to be reinstated.
17059
17060         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
17061         the FosterParent.
17062
17063         * Control.cs (ControlCollection.Remove): remove that value.Hide()
17064         call for good, since it breaks MonoCalendar (and other things I'm
17065         sure.) Also, set all_controls to null *after* the owner calls,
17066         which end up regenerating it.
17067         (ChangeParent): allow new_parent to be == null, passing
17068         IntPtr.Zero down to XplatUI.
17069
17070         this fixes #79294 the right way.
17071
17072 2006-09-26  Mike Kestner  <mkestner@novell.com>
17073
17074         * GridEntry.cs : internal SetParent method.
17075         * PropertyGrid.cs : attach to property changed on the proper
17076         target if we have a hierarchical grid with subobjects. Setup
17077         GridItem.Parent for hierarchical items.
17078         * PropertyGridView.cs : Set value on the correct target for
17079         hierarchical grids. [Fixes #78903]
17080
17081 2006-09-26  Chris Toshok  <toshok@ximian.com>
17082
17083         * Control.cs (ChildNeedsRecreating): this should return true if
17084         either we're being recreated and the child is in our list, or our
17085         parent is waiting for our recreation.
17086
17087 2006-09-26  Chris Toshok  <toshok@ximian.com>
17088
17089         * Control.cs (ControlCollection.Remove): reinstate the
17090         value.Hide() call as suggested in bug #79294.
17091
17092 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
17093
17094         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
17095         coordinates (versus a relative move).
17096
17097 2006-09-26  Chris Toshok  <toshok@ximian.com>
17098
17099         * Control.cs: rework child recreation a little bit.  It turns out
17100         that we race between the DestroyNotify the WM_DESTROY message.  If
17101         the parent gets its DestroyNotify before the child gets the
17102         WM_DESTROY message, the child ends up not recreating (since the
17103         parent finishes its recreation on DestroyNotify, and the child
17104         checks ParentIsRecreating.)
17105
17106         So, instead we store off a list of all the child controls which
17107         need to be recreated when the parent control starts to recreate
17108         itself.  Then, when child controls get their WM_DESTROY message we
17109         check to see if they're in the parent's pending recreation list,
17110         and if so, we recreate.  This removes all dependency on ordering
17111         from the code and fixes the initial MonoCalendar upgrade dialog.
17112         
17113 2006-09-26  Jackson Harper  <jackson@ximian.com>
17114
17115         * TextControl.cs: Use the Line to get the length of the line,
17116         since soft line breaks can change the end line.
17117
17118 2006-09-26  Chris Toshok  <toshok@ximian.com>
17119
17120         * Control.cs (ControlCollection.AddImplicit): don't add the
17121         control again if it's already in one of our lists.  This keeps us
17122         from adding controls over and over again for comboboxes when their
17123         handle gets recreated (as the combobox adds implicit controls in
17124         OnHandleCreated).  Fixes the X11 errors in bug #79480.
17125
17126 2006-09-26  Jackson Harper  <jackson@ximian.com>
17127
17128         * TextControl.cs: When deleting characters make sure that any
17129         orphaned zero lengthed tags get deleted.
17130         - Fix ToString for zero lengthed tags.
17131
17132 2006-09-25  Jackson Harper  <jackson@ximian.com>
17133
17134         * TextControl.cs: When getting a tag at the location there can be
17135         multiple tags at the same spot, these are 0-lengthed tags that
17136         appear when extra formatting has been stuck in a location.  We
17137         need to pull out the last of these 0 lengthed tags.
17138
17139 2006-09-25  Jackson Harper  <jackson@ximian.com>
17140
17141         * TextControl.cs: Fix print out in debug method.
17142         * TextBoxBase.cs: When text is set bail if we are setting to the
17143         previous value.
17144         
17145 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
17146
17147         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
17148           It is now possible to change the selected index in a FontXXXListBox
17149           with the up and down arrow keys from the FontXXXTextBoxes.
17150           Also, send the FontXXXTextBox mouse wheel event to the corresponding
17151           FontXXXListBoxes to match ms.
17152
17153 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
17154
17155         * SystemInformation.cs: Return a clone of the theme's MenuFont because
17156         anyone can dispose it, anytime. All other properties returns enums, 
17157         structs or basic types so they don't need such tricks.
17158
17159 2006-09-22  Jackson Harper  <jackson@ximian.com>
17160
17161         * XplatUI.cs:
17162         * XplatUIWin32.cs:
17163         * Clipboard.cs:
17164         * DataFormats.cs:
17165         * XplatUIOSX.cs:
17166         * XplatUIDriver.cs: Update interface to add a primary selection
17167         flag, so the driver can use the primary selection buffer if
17168         needed.
17169         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
17170
17171         * RichTextBox.cs: We need to supply the data object to paste now
17172         (so we can choose to supply CLIPBOARD or PRIMARY).
17173         * TextBoxBase.cs: Supply data object to paste (see above).
17174         - Middle click uses the primary selection data object.
17175         
17176 2006-09-21  Chris Toshok  <toshok@ximian.com>
17177
17178         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
17179         of SetWMStyles.  It's still a rat's nest and is largely
17180         order-dependent which I dislike immensely.  This also fixes the X
17181         button disappearing from toplevel forms.
17182
17183 2006-09-21  Mike Kestner <mkestner@novell.com>
17184
17185         * ListBox.cs: move Jordi's click/dblclick raising code to the
17186         mouse up handler.
17187
17188 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
17189
17190         * ListBox.cs: Fixes 79450
17191
17192 2006-09-21  Mike Kestner <mkestner@novell.com>
17193
17194         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
17195         to deal with people updating the TreeNodeCollection after the tree
17196         is disposed.  "Fixes" 79330.
17197
17198 2006-09-20  Jackson Harper <jackson@ximian.com>
17199
17200         * TextControl.cs: Push the cursor record onto the undo stack
17201         before the delete action. This fixes 78651.
17202
17203 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
17204
17205         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
17206         CreateParams. Fixes 79329.
17207
17208 2006-09-19  Chris Toshok  <toshok@ximian.com>
17209
17210         * XplatUIX11.cs: a couple of blanket code massage passes to clean
17211         things up a bit.  First, get rid of the NetAtoms array (and the NA
17212         enum), and just embed the atoms as static fields.  Also, add a
17213         couple of functions (StyleSet and ExStyleSet) to clean up all the
17214         bitmask testing of styles.
17215
17216         * X11Structs.cs: remove the NA enum, not needed anymore.
17217         
17218 2006-09-19  Chris Toshok  <toshok@ximian.com>
17219
17220         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
17221         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
17222         added cleanup to get MessageBox titles appearing again, which were
17223         broken by my earlier fix for caption-less/ControlBox-less windows.
17224
17225 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
17226
17227         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
17228           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
17229           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
17230           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
17231           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
17232           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
17233           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
17234           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
17235           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
17236           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
17237           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
17238             Inital import.
17239         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
17240           ToolStripButton.cs: Stubs needed for above.
17241         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
17242
17243 2006-09-15  Chris Toshok  <toshok@ximian.com>
17244
17245         * XplatUIX11.cs:
17246         - make the MessageQueues hashtable Synchronized.
17247         
17248         - SendMessage: if the Hwnd is owned by a different thread, use the
17249         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
17250         thread.  Fixes bug #79201.
17251
17252 2006-09-15  Chris Toshok  <toshok@ximian.com>
17253
17254         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
17255         ControlBox == false, we disallow maximize/minimize/close.  If the
17256         form Caption is "" we also disallow move (and get rid of the Title
17257         decoration).  Unfortunately, regardless of how things are set,
17258         we're stuck with the Title and WM menu.
17259
17260 2006-09-15  Chris Toshok  <toshok@ximian.com>
17261
17262         * Application.cs: add locking around the static message_filters
17263         ArrayList, part of #79196.
17264
17265 2006-09-15  Chris Toshok  <toshok@ximian.com>
17266
17267         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
17268         Form.ControlBox == false, the window has no titlebar nor resize
17269         handles.  fixes bug #79368.
17270
17271 2006-09-15  Chris Toshok  <toshok@ximian.com>
17272
17273         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
17274         >= 0.  Fixes bug #79370.
17275
17276 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
17277         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
17278         * Control.cs:
17279             Add properties: LayoutEngine, Margin, DefaultMargin.
17280             Add method: GetPreferredSize.
17281             Move layout logic from PerformLayout to layout engines. 
17282
17283 2006-09-13  Chris Toshok  <toshok@ximian.com>
17284
17285         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
17286         fix for #79326 broke #78718, so this change addresses that.
17287
17288         - in SendWMDestroyMessages remove the call to
17289         CleanupCachedWindows, since we might be recreating the control and
17290         need to maintain the references to right Hwnd handles.  Also, set
17291         the zombie flag to true for each of the children in the hierarchy
17292         instead of calling hwnd.Dispose.  This will cause GetMessage to
17293         ignore all events for the window except for DestroyNotify.
17294
17295         - In GetMessage, ignore messages except for DestroyNotify for
17296         zombie hwnds.
17297         
17298         * Control.cs: revert the is_recreating fix from the last
17299         ChangeLog.  It's definitely "right", but it breaks switching from
17300         an MDI form to a non-MDI form.  Will need to revisit that.
17301
17302         * Hwnd.cs: add a zombie flag, which means "the
17303         client_window/whole_window handles are invalid, but we're waiting
17304         for the DestroyNotify event to come in for them".  Set the flag to
17305         false explicitly if setting WholeWindow/ClientWindow, and also
17306         when Disposing.
17307         
17308 2006-09-13  Chris Toshok  <toshok@ximian.com>
17309
17310         * XplatUIX11.cs: rework window destruction slightly.
17311
17312         - when destroying the windows associated with a control, we don't
17313         need 2 separate XDestroyWindow calls.  Just the one for the
17314         whole_window (or for client_window if whole_window is somehow
17315         IntPtr.Zero -- can this happen?) is enough.
17316
17317         - reworked SendWMDestroyMessages slightly, so we always dispose
17318         the child control hwnd's after sending the messages.
17319         
17320         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
17321         the two places it was used (one was even using hwnd.Handle and the
17322         other hwnd.client_window.  ugh), adding another call in
17323         SendWMDestroyMessages.  We need this new call because now the
17324         DestroyNotify events in the queue will be ignored for the child
17325         controls (as their hwnd's were disposed, and the window id's
17326         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
17327
17328         - this fixes bug #79326.
17329
17330 2006-09-13  Chris Toshok  <toshok@ximian.com>
17331
17332         * Control.cs: don't always set is_recreating to false at the end
17333         of RecreateHandle, since sometimes we're not done (and won't be
17334         until WndProc handles the WM_DESTROY message).  Also, set
17335         is_recreating to false in the WM_DESTROY handling code.  Part of
17336         the fix for bug #79326.
17337
17338 2006-09-13  Miguel de Icaza  <miguel@novell.com>
17339
17340         * X11DesktopColors.cs: Start the droppage of debugging messages.
17341
17342         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
17343
17344 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
17345
17346         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
17347
17348 2006-09-12  Chris Toshok  <toshok@ximian.com>
17349
17350         * DataGrid.cs (get_ListManager): if the list_manager is null, try
17351         to create it using SetDataSource.  Fixes bug #79151.
17352
17353 2006-09-11  Chris Toshok  <toshok@ximian.com>
17354
17355         * XEventQueue.cs: add a DispatchIdle property.
17356
17357         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
17358         either the queue is null, or the queue has DispatchIdle set to
17359         true.
17360         (DoEvents): set queue.DispatchIdle to false around the
17361         peek/translate/dispatch message loop in this method.  This keeps
17362         Application.Doevents from emitting idle events.  Part of the fix
17363         for #78823.
17364
17365 2006-09-11  Chris Toshok  <toshok@ximian.com>
17366
17367         * DataGrid.cs (set_DataSource): make this work for both the
17368         winforms/datagrid test and ReportBuilder.  It seems as though when
17369         we've created a ListManager (or maybe it's if we have a
17370         BindingContext?), when we set the DataSource it clears the
17371         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
17372         #79333.
17373
17374 2006-09-11  Chris Toshok  <toshok@ximian.com>
17375
17376         * XplatUIX11.cs: deal with queue being null, which happens in all
17377         the Clipboard functions.  Fixes one of the two problems mentioned
17378         in #78612.
17379
17380 2006-09-11  Chris Toshok  <toshok@ximian.com>
17381
17382         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
17383         button on various spots (including outside the menu) works closer
17384         to MS, and doesn't crash.  Fixes #79343.
17385
17386 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
17387
17388         * ListView.cs: Do not initialize item_sorter in init. To match MS,
17389         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
17390         and the internal comparer is set. When a new ListViewItemSorter is set,
17391         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
17392         was specified. No further processing is necessary if SortOrder is set
17393         to it's current value. If Sorting is modified to None, and View is
17394         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
17395         (either custom or our internal ItemComparer) to null, on 1.0 profile
17396         only set item_sorter to null if its our internal IComparer. If Sorting
17397         is modified to Ascending or Descending, then use our internal IComparer
17398         if none is set, and if the current IComparer is our internal one then:
17399         on 2.0 profile always replace it with one for new Sorting, and on 1.0
17400         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
17401         Enum.IsDefined to verify whether a valid View value is specified in
17402         its setter. Automatically sort listview items when listview is
17403         created. In Sort, do nothing if ListView is not yet created, or if
17404         no item_sorter is set (no Sorting was set, Sorting was explicitly set
17405         to None or ListViewItemSorter was set to null). Added Sort overload
17406         taking a bool to indicate whether the ListView should be redrawn when
17407         items are sorted (we use this in ListViewItemCollection to avoid double
17408         redraws). Modified our internal IComparer to take the sort order into
17409         account. In Add and AddRange methods of ListViewItemCollection, also
17410         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
17411         view), but use overload with noredraw option to avoid double redraw.
17412         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
17413         true when View is Tile, and do the same when attempting to set View to
17414         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
17415         for selected/checked indices, as it involves overhead when sorting is
17416         done while these collections are not used all that often. Instead
17417         we'll build the indices on demand. Modified IList implementation of
17418         CheckedIndexCollection to use public methods if object is int.
17419         Modified CheckedListViewItemCollection to hide checked items if
17420         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
17421         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
17422         IList implementation in SelectedIndexCollection to use public methods
17423         if object is int. Modified SelectedListViewItemCollection to hide
17424         selected items if listview is not yet created.
17425         * ListViewItem.cs: CheckedIndices list no longer needs to be
17426         maintained separately (see ListView changes). Also clone font, fixes
17427         test failure.
17428
17429 2006-09-11  Mike Kestner  <mkestner@novell.com>
17430
17431         * ComboBox.cs: if we are updating the contents of the currently
17432         selected index, refresh the control or the textbox selection.
17433         [Fixes #79066]
17434
17435 2006-09-11  Mike Kestner  <mkestner@novell.com>
17436
17437         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
17438         the 'specified' logic has been moved there.  This seems like a bug 
17439         in Control.cs, since our current SetBoundsCore completely ignores 
17440         the specified parameter.  Peter's commit seems to indicate that is 
17441         the way the MS control implementation works.  [Fixes #79325]
17442
17443 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
17444
17445         * XplatUI.cs: Set default_class_name to be composed
17446         of current domain id. This allows MWF to be loaded in multiple
17447         domains on Win32.
17448
17449 2006-09-09  Miguel de Icaza  <miguel@novell.com>
17450
17451         * X11Keyboard.cs: If we are unable to obtain the input method, do
17452         not call CreateXic to create the input context.   Should fix
17453         #78944/79276.
17454
17455 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
17456
17457         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
17458           Simplified gnome support by adding more pinvokes to get the
17459           icon for a file or mime type.
17460
17461 2006-09-08  Jackson Harper  <jackson@ximian.com>
17462
17463         * MenuAPI.cs: Deslect popup context menu items before closing the
17464         window, so that you don't see the previously selected item
17465         selected when you reopen the menu.
17466         * TextControl.cs: Update the cursor position even if we don't have
17467         focus.  This fixes typing in things like the ComboBox.  I'm not
17468         totally sure we should always set the visibility if we don't have
17469         focus, but couldn't find any corner cases where the cursor showed
17470         up when it shouldn't.
17471
17472 2006-09-08  Chris Toshok  <toshok@ximian.com>
17473
17474         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
17475         our arrays are length 256.  & 0xff before indexing.  Fixes the
17476         crash in bug #78077.
17477         
17478 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17479
17480         * ThemeWin32Classic.cs: 
17481         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
17482         is true. Handle that check box too.
17483
17484 2006-09-07  Chris Toshok  <toshok@ximian.com>
17485
17486         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
17487         79244.
17488
17489 2006-09-07  Chris Toshok  <toshok@ximian.com>
17490
17491         * Control.cs: in set_BackColor only do the work if
17492         background_color != value.
17493
17494         * XplatUIX11.cs: move the clearing of invalid areas (both client
17495         and nc) to the same block of code where we set (nc_)expose_pending
17496         to false.  That is, move it from PaintEventEnd to PaintEventStart,
17497         so things that cause invalidates from within OnPaint will trigger
17498         another call to OnPaint.  Fixes bug #79262.
17499
17500 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
17501
17502         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
17503         * FileDialog.cs: Fix typo
17504
17505 2006-09-07  Jackson Harper  <jackson@ximian.com>
17506
17507         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
17508         for tab pages if they have any.
17509
17510 2006-09-06  Mike Kestner  <mkestner@novell.com>
17511
17512         * Splitter.cs: use the "current" rect when finishing drag handle
17513         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
17514
17515 2006-09-06  Mike Kestner  <mkestner@novell.com>
17516
17517         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
17518         support offset splitters. [Fixes #79298]
17519
17520 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
17521
17522         * Mime.cs: Fixed a bug that could override the global mime type
17523           result.
17524
17525 2006-09-05  Jackson Harper  <jackson@ximian.com>
17526
17527         * TabControl.cs: Better calculation method for setting the slider
17528         pos. Prevents crashes on really wide tabs.
17529         - Draw Image on tab pages if an image list is used.
17530
17531 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17532
17533         * MonthCalendar.cs: When Font changes, the Size should be
17534         updated to fit the new font's space requirements.
17535
17536 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
17537
17538         * ListBox.cs: If the items are cleared with Items.Clear set
17539           top_index to 0.
17540
17541 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17542
17543         * MonthCalendar.cs: Handle arrow keys as input keys. Also
17544         fire DateChanged event instead of DateSelected event when
17545         the date was changed by keyboard interaction.
17546
17547 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17548
17549         * DateTimePicker.cs: Handle DateChanged for the associated
17550         month_calendar control, and set month_calendar.Font from 
17551         OnFontChanged method, as well as resize the height of the
17552         control when needed. Make PreferredHeight proportional.
17553
17554 2006-09-01  Chris Toshok  <toshok@ximian.com>
17555
17556         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
17557         properties.
17558
17559         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
17560
17561 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
17562
17563         * FileDialog.cs: Set ClientSize instead of window size, to allow space
17564           for decorations (Fixes #79219)
17565
17566 2006-09-01  Mike Kestner  <mkestner@novell.com>
17567
17568         * ComboBox.cs: first stab at sorting plus some selection handling
17569         fixes to bring us more in line with MS behavior.  Also switches back
17570         to index based selection.  Alternative patches for index-based 
17571         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
17572         and latency@gmx.de on bug 78848.  I assume they were similar to this
17573         code I've had simmering in my tree forever.
17574         [Fixes #78848]
17575
17576 2006-09-01  Chris Toshok  <toshok@ximian.com>
17577
17578         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
17579         when setting list position guard against ending up with a -1 index
17580         (the other part of the fix for #78812).  Should probably make sure
17581         we don't need the analogous fix in the ItemDeleted case.
17582
17583         * DataGrid.cs:
17584         - in SetDataSource, work around the fact that the way
17585         OnBindingContextChanged is invoked will cause us to re-enter this
17586         method.  I'll remove the hack once I investigate
17587         OnBindingContextChanged.
17588
17589         - fix the logic in set_DataSource and set_DataMember (basically
17590         what to do if the other of the two is null.)
17591         
17592         - in OnListManagerItemChanged, we need to take into account the
17593         edit row when deciding whether or not to call RecreateDataGridRows
17594         (part of the fix for #78812).
17595
17596 2006-09-01  Jackson Harper  <jackson@ximian.com>
17597
17598         * Splitter.cs: Don't do anything if there is no control to affect
17599         (prevents us from crashing in weird tet cases).
17600         * TreeView.cs: Bounding box for the mouse movement reverting
17601         focus/selection back to previously selected node.  This matches
17602         MS, and makes the tree a lot more useable.
17603         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
17604         use clipping so they are not drawn.  This fixes when the control
17605         is set to have a transparent background, or if it was over an
17606         image.
17607
17608 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
17609
17610         * MimeIcon.cs: Improved handling for reading default icons when
17611           using gnome (2.16 made it necessary). Check and read svg icons
17612           first, then 48x48 and then 32x32 icons.
17613
17614 2006-08-31  Chris Toshok  <toshok@ximian.com>
17615
17616         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
17617         visible.
17618
17619         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
17620         ProcessKeyPreview.  Fixes part of #77806.
17621
17622         * DataGrid.cs: big patch.
17623
17624         - revert the queueing up of DataSource/DataMember if inside
17625         BeginInit/EndInit calls.  That's not the way the datagrid achieves
17626         its delayed databinding.  Instead, call SetDataSource in
17627         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
17628         #78811.
17629
17630         - Also, it wasn't mentioned in #78811, but the test case exhibits
17631         behavior that was lacking in our datagrid implementation - Columns
17632         that have mapping names that don't exist in the datasource's
17633         properties aren't shown.  Yuck.  To fix this I added the bound
17634         field to the column style, and basically any calculation to figure
17635         out anything about columns uses a loop to find the bound columns.
17636         still need to investigate if I can cache an array of the bound
17637         columns or if the indices must be the same.
17638
17639         - When setting CurrentCell, we no longer abort if the cell being
17640         edited was in the add row.  This fixes the other part of #77806.
17641
17642         - The new code also fixes #78807.
17643         
17644         * ThemeWin32Classic.cs: perpetrate the same disgusting
17645         column.bound field hack, and only render bound fields.
17646
17647 2006-08-31  Chris Toshok  <toshok@ximian.com>
17648
17649         * DataGridColumnStyle.cs: add bound field.  this field is true if
17650         the datasource has a property corresponding to the mapping name.
17651
17652         * DataGridTableStyle.cs: set the bound field on the column styles
17653         depending on whether or not we have a column for that property.
17654
17655 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
17656
17657         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
17658           splitter control (fixes #79228)
17659
17660 2006-08-31  Chris Toshok  <toshok@ximian.com>
17661
17662         * DataGridColumnStyle.cs: we need to delay the assignment of
17663         property descriptor until the last possible moment due to the lazy
17664         databinding stuff in the datagrid.  Also, fix the exceptions
17665         thrown by CheckValidDataSource to match MS.
17666
17667 2006-08-31  Jackson Harper  <jackson@ximian.com>
17668
17669         * Form.cs: When activated select the active control, if there is
17670         no active control, we select the first control.
17671         * XplatUIX11.cs: If there is no focus control when we get a
17672         FocusIn event, find the toplevel form and activate it.  This
17673         occurs when you popup a window, it becomes the focus window, then
17674         you close that window, giving focus back to the main window.
17675
17676 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17677
17678         * MonthCalendar.cs: 
17679         * ThemeWin32Classic.cs: Cache Font in bold style, as well
17680         as StringFormat with Center alignments in MonthCalendar,
17681         instead of creating new ones when drawing the control. 
17682         Also, draw the month name in bold style.
17683
17684 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
17685
17686         * Control.cs:
17687           - PerformLayout(): It would seem MS performs the fill even if the 
17688             control is not visible (part of #79218 fix)
17689           - ResetBackColor(): Use the setter to reset the color, to allow
17690             overriders to catch the change.
17691         * Form.cs:
17692           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
17693           - CreateHandle(): dito (part of $79218 fix)
17694           - Don't set an icon if we have a dialog
17695         * ScrollableControl.cs:
17696           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
17697           - ScrollIntoView(): No need to scroll if control is already visible
17698             (resolves fixme and fixes #79218)
17699
17700 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17701
17702         * MonthCalendar.cs: Change proportions in SingleMonthSize
17703         to match the aspect of the original control.
17704
17705 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
17706
17707         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
17708           get updated when they get maximized.
17709
17710 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
17711
17712         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
17713
17714 2006-08-29  Chris Toshok  <toshok@ximian.com>
17715
17716         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
17717
17718 2006-08-29  Jackson Harper  <jackson@ximian.com>
17719
17720         * TreeView.cs: Need to track selected node and highlighted node,
17721         they aren't always the same thing, when the mouse is down on a
17722         node it is hilighted, but not selected yet.
17723         - Do the HideSelection stuff right
17724         - Need to focus on rbutton mouse down. And redraw selection when
17725         right click is mouse upped.
17726
17727 2006-08-29  Mike Kestner  <mkestner@novell.com>
17728
17729         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
17730         when SubItems.Count < Columns.Count.  [Fixes #79167]
17731
17732 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
17733
17734         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
17735
17736 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
17737
17738         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
17739           from X. Only send based on ConfigureNotify if we don't have the
17740           correct location in hwnd (if the window manager moved us)
17741
17742 2006-08-28  Mike Kestner  <mkestner@novell.com>
17743
17744         * ListView.cs: remove a TODO. 
17745         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
17746         [Fixes ListView part of #79166]
17747
17748 2006-08-28  Mike Kestner  <mkestner@novell.com>
17749
17750         * ListView.cs: move wheel handler to parent since it is focused
17751         instead of the item_control now.  [Fixes #79177]
17752
17753 2006-08-28  Mike Kestner  <mkestner@novell.com>
17754
17755         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
17756         when the control is focused. [Fixes #79171]
17757
17758 2006-08-28  Mike Kestner  <mkestner@novell.com>
17759
17760         * ListView.cs: size the item and header controls for empty and
17761         unscrollable views.
17762         * ThemeWin32Classic.cs: draw disabled backgrounds.
17763         [Fixes #79187]
17764
17765 2006-08-28  Chris Toshok  <toshok@ximian.com>
17766
17767         * Form.cs: remove unused "active_form" static field.
17768
17769         * Hwnd.cs: lock around accesses to static windows collection.
17770
17771         * Application.cs: lock threads in Exit ().
17772
17773 2006-08-28  Chris Toshok  <toshok@ximian.com>
17774
17775         * NativeWindow.cs: lock around accesses to window_collection.
17776         
17777 2006-08-28  Chris Toshok  <toshok@ximian.com>
17778
17779         * Control.cs: err, fix this the right way, by locking on controls
17780         when using it.  not by making it synchronized.
17781
17782 2006-08-28  Chris Toshok  <toshok@ximian.com>
17783
17784         * Control.cs: make the static "controls" field synchronized, as it
17785         gets updated from multiple threads.
17786
17787 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
17788
17789         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
17790           Prevent other threads from exiting when calling thread sets quit state.
17791         * XEventQueue.cs: Added PostQuitState property
17792
17793 2006-08-27  Chris Toshok  <toshok@ximian.com>
17794
17795         * AsyncMethodData.cs: add a slot for the window handle.
17796
17797         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
17798         window (the destination control's window, not the foster window).
17799
17800         * Control.cs (BeginInvokeInternal): store the window's handle in
17801         the AsyncMethodData.
17802         
17803
17804 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
17805
17806         * XplatUIX11.cs:
17807           - PostQuitMessage: Removed resetting S.D display handle, we might have
17808             another loop started after calling PostQuitMessage (Fixes #79119)
17809           - Created destructor to reset S.D handle
17810
17811 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
17812
17813         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
17814
17815 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
17816
17817         * TextControl.cs (Insert): Update the caret position even if we don't
17818           have a handle yet, just don't call the driver in that case.
17819         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
17820           to the end of the new selection text (Fixes #79184)
17821
17822 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
17823
17824         * Form.cs (Activate): Only activate if the handle is created)
17825         * Control.c:
17826           - Mark window as invisible when it's disposed
17827           - Check if window handle is created when setting window visible, 
17828             instead of relying just on the is_created variable
17829           - Check if object is disposed when creating the control (Fixes #79155)
17830
17831 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
17832
17833         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
17834           when allowing layout again. Otherwise we re-generate the anchoring 
17835           distance to the border again and actually alter what the user wanted
17836           This is ugly, it'd be better if we used DisplayRectangle instead of
17837           ClientRectangle for Control.UpdateDistances, but that causes us to
17838           have other problems (initial anchoring positons would be wrong)
17839           (Fixes #78835)
17840
17841 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
17842
17843         * Control.cs:
17844           - The size and location setters shouldn't go directly to 
17845             SetBoundsCore, but to SetBounds, which triggers layout on the
17846             parent, then calls SetBoundsCore. (Related to fix for #78835)
17847           - SetBounds: Moved actual location update code into this function
17848             from SetBoundsCore, to match MS. Added call to PerformLayout if
17849             we have a parent (to trigger resizing of anchored parents if the 
17850             child size has changed (see testcase for #78835) 
17851         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
17852           new control code
17853         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
17854
17855 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
17856
17857         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
17858           System.Drawing when a toplevel window gets closed; there might
17859           be other toplevel windows belonging to the same app (Fixes #78052)
17860
17861 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
17862
17863         * FileDialog.cs: After reading FileDialog settings from mwf_config
17864           use Desktop prefix only if a real folder doesn't exist anymore.
17865         * FontDialog.cs: Added char sets.
17866           It is now possible to select the font, size or style with the
17867           textboxes.
17868
17869 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
17870
17871         * PrintPreviewDialog.cs: Use assembly name constants.
17872
17873 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
17874
17875         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
17876           scrollbar from whacking it's buttons)
17877
17878 2006-08-24  Chris Toshok  <toshok@ximian.com>
17879
17880         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
17881         in this patch (aggregating setting Left/Top/Width/Height to
17882         setting Bounds on the scrollbars), but the crux of the fix is in
17883         Recalculate, where we scroll by the remaining scroll_position if
17884         we're hiding a scrollbar.  The 2*$5 reward in the comment is
17885         serious.
17886
17887 2006-08-24  Jackson Harper  <jackson@ximian.com>
17888
17889         * MdiClient.cs:
17890         * MdiWindowManager.cs: If the form is made a non-mdi window we
17891         need to remove the form closed event so that closing forms works
17892         correctly.
17893
17894 2006-08-24  Jackson Harper  <jackson@ximian.com>
17895
17896         * Control.cs: Make IsRecreating internal so that the driver can
17897         check it
17898         - Temporarily remove the Hide when controls are removed, its
17899         making a whole bunch of things not work because visibility isn't
17900         getting reset elsewhere correctly
17901         * Form.cs: Need to do a full handle recreation when the mdi parent
17902         is set.
17903         * XplatUIX11.cs: If we are recreating handles don't dispose the
17904         HWNDs.  What was happening is the handles were being recreated in
17905         SendWMDestroyMessages, but then flow continued on in that method
17906         and destroyed the new handles.
17907
17908 2006-08-23  Jackson Harper  <jackson@ximian.com>
17909
17910         * Form.cs: MdiClient is always at the back of the bus
17911         * Control.cs: When the order of items in the collection is changed
17912         we need to reset the all_controls array
17913         - do the same sorta setup thats done when adding a control when a
17914         control is set on the collection.
17915
17916 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
17917
17918         * TextBoxBase.cs (get_Text): Return an empty array if our document
17919           is empty (fixes #79052)
17920
17921 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
17922
17923         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
17924           on WM_SYSCHAR messages (fixes #79053)
17925
17926 2006-08-23  Chris Toshok  <toshok@ximian.com>
17927
17928         * DataGrid.cs: fix flickering when scrolling vertically.
17929
17930 2006-08-23  Chris Toshok  <toshok@ximian.com>
17931
17932         * DataGrid.cs (EndEdit): only invalidate the row header when we
17933         need to.
17934
17935 2006-08-23  Chris Toshok  <toshok@ximian.com>
17936
17937         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
17938         methods.  fixes the flicker when scrolling around.
17939
17940 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
17941
17942         * FileDialog.cs: Making sure the control is created before we get a 
17943           chance to use it with BeginInvoke (Fixes #79096)
17944
17945 2006-08-23  Chris Toshok  <toshok@ximian.com>
17946
17947         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
17948         width to use when painting the rows.
17949
17950 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
17951
17952         * TextBoxBase.cs:
17953           - Throw ArgumentException if a negative value is passed to SelectionLength
17954           - Update the selection end if start is moved. end needs to be always
17955             after start. (Fixes #79095)
17956           - Track selection length; MS keeps the selection length even if start
17957             is changed; reset on all other operations affection selection
17958
17959 2006-08-22  Jackson Harper  <jackson@ximian.com>
17960
17961         * TreeView.cs: Make sure both scrollbars get displayed and sized
17962         correctly when the other bar is visible.
17963         - Use the original clip rectangle for checking if the area between
17964         the two scrollbars is visible, not the viewport adjusted clipping
17965         rectangle.
17966
17967 2006-08-22  Jackson Harper  <jackson@ximian.com>
17968
17969         * Binding.cs: We don't use IsBinding because it requires the
17970         control to be created, which really shouldn't be necessary just to
17971         set a property on the control.
17972
17973 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17974
17975         * ComboBox.cs: Some CB.ObjectCollection methods must throw
17976         ArgumentNullReferenceException when the argument is null.
17977
17978 2006-08-21  Jackson Harper  <jackson@ximian.com>
17979
17980         * Timer.cs: Track the thread that the timer is started in (NOT
17981         CREATED), this way messages for it will only be triggered on its
17982         queue.
17983         * XEventQueue.cs: Track the timers here, this makes timers per
17984         thread, like MS.
17985         * XplatUIX11.cs: The timers are moved to the XEventQueue.
17986
17987 2006-08-19  Chris Toshok  <toshok@ximian.com>
17988
17989         * XplatUIX11.cs: after further communication with pdb, we get the
17990         best of both worlds.  SetZOrder working for un-Mapped windows, and
17991         no X errors for un-mapped windows.
17992
17993 2006-08-19  Chris Toshok  <toshok@ximian.com>
17994
17995         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
17996         as it was causing pdn toolbars to not have the correct stacking.
17997
17998 2006-08-18  Mike Kestner  <mkestner@novell.com> 
17999
18000         * ListView.cs : guard against negative ClientArea.Width in scrollbar
18001         calculation.  Not sure why control should ever be setting a negative
18002         width though.  Fixes #78931.
18003
18004 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18005
18006         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
18007         null items in ObjectCollection class.
18008         * ListBox.cs.: Likewise.
18009
18010 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
18011
18012         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
18013           as the base method in ThemeWin32Classic should work fine.
18014           Fixed bug #78607.
18015
18016 2006-08-18  Jackson Harper  <jackson@ximian.com>
18017
18018         * Binding.cs: When validating if the value entered doesn't convert
18019         properly reset to the old value.
18020         * RadioButton.cs: Don't fire click when we get focus.
18021
18022 2006-08-18  Jackson Harper  <jackson@ximian.com>
18023
18024         * FileDialog.cs: Paint the selection on the directory combobox the
18025         same way as on MS. 
18026
18027 2006-08-17  Jackson Harper  <jackson@ximian.com>
18028
18029         * ErrorProvider.cs: Don't allow the error control to be selected.
18030         * Control.cs: Don't send the SetFocus messages, the control
18031         activation will do this, and if we do it blindly here validation
18032         does not work.
18033
18034 2006-08-17  Jackson Harper  <jackson@ximian.com>
18035
18036         * Control.cs:
18037         * ContainerControl.cs: Make validation events fire in the correct
18038         order.  TODO: For some reason the first validation event is not
18039         getting fired.
18040
18041 2006-08-17  Mike Kestner  <mkestner@novell.com> 
18042
18043         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
18044
18045 2006-08-17  Mike Kestner  <mkestner@novell.com> 
18046
18047         * ComboBox.cs : implement scroll wheel support for popped-down
18048         state. Fixes #78945. 
18049
18050 2006-08-17  Jackson Harper  <jackson@ximian.com>
18051
18052         * TreeView.cs: Specify treeview actions (old patch that didn't get
18053         committed for some reason).
18054         - Don't let the mouse wheel scroll us too far.  Just want to make
18055         the bottom node visible, not scroll it all the ways to the top.
18056
18057 2006-08-17  Jackson Harper  <jackson@ximian.com>
18058
18059         * XplatUIX11.cs: Mouse wheel events go to the focused window.
18060
18061 2006-08-17  Mike Kestner  <mkestner@novell.com> 
18062
18063         * ComboBox.cs : don't do mouseover selection in simple mode.
18064
18065 2006-08-16  Jackson Harper  <jackson@ximian.com>
18066
18067         * Form.cs: Fire the closing events for all the mdi child windows
18068         when a window is closed.  If the cancel args are set to true, the
18069         main window still gets the event fired, but it doesn't not close.
18070         * MdiWindowManager.cs: Do this closing cleanup in a Closed
18071         handler, instead of when the button is clicked, so cancelling the
18072         close works correctly.
18073         * ComboBox.cs: Send the mouse down to the scrollbar.
18074
18075 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18076
18077         * ListBox.cs: When passing 'null' to SelectedItem,
18078         set SelectedIndex to -1, to unselect items. This is the
18079         observed behaviour in .Net.
18080
18081 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
18082
18083         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
18084           MS flags saying there won't be any. (fixes #78800)
18085         * Control.cs (HandleClick): Made virtual
18086
18087 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
18088
18089         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
18090           cultures. Fixed bug #78399.
18091
18092 2006-08-16  Jackson Harper  <jackson@ximian.com>
18093
18094         * Form.cs: Use the MdiClients MdiChildren property to access
18095         MdiChildren instead of creating the array from the child controls.
18096         * MdiClient.cs: Maintain a separate array of the mdi children, so
18097         that insertion order is maintained when the Z-order is changed.
18098
18099 2006-08-16  Mike Kestner  <mkestner@novell.com> 
18100
18101         * ListView.cs : add an ItemComparer and default to it for sorting.
18102         Fixes #79076, but sorting needs a complete overhaul to be compat with
18103         MS.
18104
18105 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
18106
18107         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
18108
18109 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
18110
18111         * Hwnd.cs (Mapped): Properly traverse the tree
18112
18113 2006-08-15  Chris Toshok  <toshok@ximian.com>
18114
18115         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
18116         pass manager.Current.GetType() to ParseData.  It has to be the
18117         property type.  So, hold off doing the ParseData until we're in
18118         SetPropertyValue where we know the type.  This fixes the crash in
18119         #78821 but the textbox is still empty.
18120
18121 2006-08-15  Chris Toshok  <toshok@ximian.com>
18122
18123         * DataGrid.cs:
18124         - when we're scrolling, only call Edit() again if the
18125         current cell is still unobscured. Fixes bug #78927.
18126         - when handling mousedown on a cell, ensure the cell is visible
18127         before calling Edit.
18128         - remove the properties from DataGridRow, and remove the
18129         DataGridParentRow class altogether.
18130         
18131
18132 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
18133
18134         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
18135           fire OnTextChanged by ourselves. There's no point calling base,
18136           we don't set the base value anywhere else. Fixes #78773.
18137
18138 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18139
18140         * ListBox.cs: Call CollectionChanged when modifying
18141         an item from Items indexer, to update the actual items
18142         in the list box.
18143
18144 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18145
18146         * PrintDialog.cs: Small fixes for focus and a pair of checks,
18147         to match .Net behaviour.
18148
18149 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
18150
18151         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
18152
18153 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
18154
18155         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
18156
18157 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
18158
18159         * MessageBox.cs: Prevent potential NRE exception.
18160         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
18161
18162 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
18163
18164         * MessageBox.cs: Calculate the owner of a messagebox, also make
18165           it topmost. Fixes #78753
18166
18167 2006-08-14  Chris Toshok  <toshok@ximian.com>
18168
18169         * XplatUIX11.cs: A couple of fixes so that metacity will let us
18170         programmatically move windows.  first, set the PPosition hint as
18171         well as the USPosition hint.  Second include some code from pdb
18172         that sets the window type to NORMAL when we set the transient for
18173         hint.  This is because, in the absence of a window type, metacity
18174         thinks any window with TransientFor set is a dialog, and refuses
18175         to let us move it programmatically.  fascists.
18176
18177 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
18178
18179         * XplatUIX11.cs: When setting normal hints, take into consideration
18180           an different hints previously set so we don't delete them (fixes #78866)
18181
18182 2006-08-12  Chris Toshok  <toshok@ximian.com>
18183
18184         * ToolBarButton.cs: make Layout return a boolean, if something to
18185         do with the button's layout changed.
18186
18187         * ToolBar.cs:
18188         - add another parameter to Redraw, @force, which all existing
18189           calls set to true.
18190         - make the Layout function return a boolean which is true if the
18191           layout has actually changed.  Redraw now uses this (and @force)
18192           to determine when to invalidate.  At present the only place
18193           where @force can be false is the call from OnResize, when
18194           background_image == null.  So, resizing a toolbar when the
18195           layout doesn't change results in no drawing.
18196
18197 2006-08-12  Chris Toshok  <toshok@ximian.com>
18198
18199         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
18200         the VScrollBar and HScrollbar reversed.  oops.
18201
18202         * DataGrid.cs: fix the logic that assigns sizes to the implicit
18203         scrollbars.  we were assigning them twice (once in
18204         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
18205         therefore causing two scrollbar resizes (and redraws?) to happen
18206         per grid resize.
18207
18208 2006-08-12  Chris Toshok  <toshok@ximian.com>
18209
18210         * ToolBarButton.cs: redraw the entire button if the theme tells us
18211         to.
18212
18213         * Theme.cs: add ToolBarInvalidateEntireButton.
18214
18215         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
18216         buttons, just the border.
18217
18218         * ThemeNice.cs: redraw the entire toolbar button since we need to
18219         draw the highlight image.
18220
18221         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
18222         we need to redraw the entire button (not just the border).
18223
18224 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
18225
18226         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
18227           for vertical bars. Fixes the mismatches shown by #78513
18228
18229 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
18230
18231         * FileDialog.cs: If a saved/remembered path doesn't exist
18232           anymore, fall back to "Desktop".
18233
18234 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
18235
18236         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
18237           parent. It's apparently legal to not have one
18238         * XplatUIX11.cs:
18239           - SetZOrder: Don't try to set Z-Order on an unmapped window
18240           - CreateWindow: 0,0 are legal coordinates for a window. don't move
18241             it unless the coordinates are negative
18242
18243 2006-08-10  Mike Kestner  <mkestner@novell.com>
18244
18245         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
18246         when setting to null per msdn docs.  Fixes #78854.
18247
18248 2006-08-10  Chris Toshok  <toshok@ximian.com>
18249
18250         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
18251         flickering by setting a clip rectangle on the Graphics when we
18252         need to redraw just a particular menuitem.  Also, rename "OnClick"
18253         to "OnMouseDown" to reflect what it actually is.
18254         
18255         * Form.cs: track the OnMouseDown change.
18256
18257 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
18258
18259         * CommonDialog.cs: Properly inherit the CreateParams from the form
18260           and only change what we need. Fixes #78865
18261
18262 2006-08-10  Chris Toshok  <toshok@ximian.com>
18263
18264         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
18265         flickering in flat mode (and most of the flickering in general) by
18266         only invalidating the button border (and not the entire rectangle)
18267         when the state changes.  A couple of cases still flicker:
18268         ToggleButtons, and the dropdown arrow case when the user mouse
18269         ups.
18270
18271 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
18272
18273         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
18274           for german keyboards. Numlock state shouldn't affect the behaviour
18275           of the Del key. Fixes bug #78291.
18276
18277 2006-08-10  Chris Toshok  <toshok@ximian.com>
18278
18279         * ListControl.cs: remove the items.Clear line from BindDataItems,
18280         as this is the first thing done by both subclasses in their
18281         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
18282         passed -1, refresh the list.  This gets databinding working when
18283         the datasource is set on the list before the datasource is
18284         populated (as in wf-apps/ReportBuilder.)
18285
18286         * ComboBox.cs: remove the argument to BindDataItems.  This call
18287         should really go away, and be initiated by the ListControl code.
18288
18289         * ListBox.cs: same.
18290
18291 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
18292
18293         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
18294           if no data is in the document when the control is displayed
18295
18296 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
18297
18298         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
18299           yes (fixes #78806)
18300         * TextControl.cs: 
18301           - PositionCaret: Allow positioning of caret but don't call methods 
18302             requiring a handle if the window isn't created yet
18303           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
18304           - owner_HandleCreated: Don't position the caret, just update it's 
18305             location. User might have already set a different position
18306
18307 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
18308
18309         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
18310           windows. Screws up the returned coordinates for child windows. 
18311           Fixes #78825. I'm hoping this doesn't break something, since the
18312           code was explicitly put in 8 months ago, but no bug was attached.
18313           Menus still seem to work properly.
18314
18315 2006-08-08  Chris Toshok  <toshok@ximian.com>
18316
18317         * DataGrid.cs: make BeginInit/EndInit actually do what they're
18318         supposed to do - delay data binding until the EndInit call.  Also,
18319         make the table style collection's CollectionChangeAction.Refresh
18320         work properly.
18321
18322         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
18323         (with action = Refresh) when a consituent table's MappingName is
18324         changed.
18325
18326 2006-08-08  Chris Toshok  <toshok@ximian.com>
18327
18328         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
18329         Invalidate, since changing the text can change the size of the all
18330         toolbar buttons.
18331
18332 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
18333
18334         * Form.cs (AddOwnedForm): Still need to add the form to our listif
18335           we don't have it yet
18336
18337 2006-08-08  Chris Toshok  <toshok@ximian.com>
18338
18339         * PrintControllerWithStatusDialog.cs: don't .Close() the status
18340         dialog, as this causes X errors later on, since we actually
18341         destroy the window.  Instead, .Hide() it.
18342
18343 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
18344
18345         * ComboBox.cs: Added focus reflection for popup window
18346         * XplatUIX11.cs: 
18347           - Removed transient setting for non-app windows for now, not sure it
18348             was needed
18349           - Fixed logic checking if we have captions when deciding 
18350             override_redirect, WS_CAPTION is two bits and a 0 check was not
18351             sufficient
18352           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
18353             complicated
18354         * Form.cs: 
18355           - AddOwnedForm: Don't just add the form to the list, call the property
18356             to ensure the driver is informed about the ownership as well
18357           - CreateHandle: Set the TopMost status in the driver if we have an owner
18358         * XplatUI.cs: Fixed debug statement
18359
18360 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
18361         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
18362           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
18363           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
18364           TrackBarRenderer.cs: Make constructor private.
18365         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
18366         * ProfessionalColorTable.cs: Make properties virtual.
18367
18368 2006-08-06  Duncan Mak  <duncan@novell.com>
18369
18370         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
18371         is not changing.
18372
18373 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
18374         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
18375           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
18376           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
18377           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
18378           Initial import of new 2.0 classes.
18379
18380 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
18381         * Application.cs: Add 2.0 VisualStyles properties.
18382
18383 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
18384         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18385           XplatUIX11.cs: Create property to allow access to existing private
18386           variable "themes_enabled"
18387
18388 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18389
18390         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
18391         file size, as otherwise our class libraries fail using windows. Fixes
18392         bug #78759.
18393
18394 2006-08-04  Jackson Harper  <jackson@ximian.com>
18395
18396         * Form.cs:
18397         * XplatUIX11.cs: Move the toolwindow window manager creation into
18398         the X11 driver, this way on win32 we can let windows create/handle
18399         the toolwindows.
18400
18401 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18402
18403         * PrintDialog.cs: Remove some redundant checks, add some others,
18404         clean some code, and move the focus to the text boxes when the
18405         values are incorrect.
18406
18407 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
18408
18409         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
18410
18411 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
18412
18413         * NumericUpDown.cs: Setting the Minimum and Maximum is now
18414           handled correctly. Fixes bug #79001.
18415
18416 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18417
18418         * PrintDialog.cs: The "Copies" numeric up down must have
18419         set the Minimum property to 1; only if the value is bigger
18420         than 1, activate "Collate" check box. This is the behaviour of .Net.
18421         Also modify the Document elements only if it is not null.
18422
18423 2006-08-03  Jackson Harper  <jackson@ximian.com>
18424
18425         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
18426         length. (We have a larger array then actual node count).
18427                 
18428 2006-08-03  Jackson Harper  <jackson@ximian.com>
18429
18430         * ComboBox.cs: Don't show selection by default.
18431         - The SelectAll isn't needed here, since the focus code should do
18432         that
18433         - DDL style lists to manual selection drawing, so when they
18434         get/lose focus they have to invalidate.
18435
18436 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
18437
18438         * TextBoxBase.cs: Don't always show all selections by default.
18439
18440 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
18441         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
18442           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
18443           Fixed various typos.
18444
18445 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
18446
18447         * Control.cs: Removing the controls in a ControlCollection with
18448           Clear now hides the controls as expected. Fixes bug #78804. 
18449
18450 2006-08-03  Jackson Harper  <jackson@ximian.com>
18451
18452         * Control.cs: Revert previous focus patch, it breaks reflector.
18453
18454 2006-08-03  Jackson Harper  <jackson@ximian.com>
18455
18456         * ComboBox.cs: Cleanup selection and focus with the combobox.
18457         This also eliminates some duplicated keyboard code, since now
18458         everything is handled by the main class.
18459         - Make list selection work on mouse up instead of down, to match
18460         MS.
18461
18462 2006-08-02  Jackson Harper  <jackson@ximian.com>
18463
18464         * Control.cs: Setting focus needs to go through the whole
18465         selection mechanism.
18466
18467 2006-08-02  Chris Toshok  <toshok@ximian.com>
18468
18469         * PrintPreviewDialog.cs: change MinimumSize to use
18470         base.MinimumSize so it works.
18471
18472 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
18473
18474         * TextControl.cs:
18475           - UpdateCaret: Added sanity check in case caret isn't defined yet
18476           - Line.Delete: Now updating selection and caret markers if we're
18477             transfering a node (Properly fixes #78323)
18478           - SetSelectionEnd: Added sanity check
18479         * TextBoxBase.cs: Removed broken attempt to fix #78323
18480
18481 2006-08-01  Chris Toshok  <toshok@ximian.com>
18482
18483         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
18484         Close() call is handled in Form, not here.
18485
18486 2006-08-01  Chris Toshok  <toshok@ximian.com>
18487
18488         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
18489         layout/rendering.
18490
18491         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
18492         for sizes < 100% zoom.  The code now aggressively attempts to keep
18493         from calling document.Print (), and tries not to use the scaling
18494         g.DrawImage whenever possible (it still does if you scale to >
18495         100%, since usually that involves huge images).
18496
18497         * PrintPreviewControl.cs: hook up the close button.
18498
18499 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
18500         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
18501           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
18502           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
18503           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
18504           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
18505           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
18506           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
18507           Removed [Serializable] for 2.0 Event Handlers.
18508
18509 2006-07-31  Jackson Harper  <jackson@ximian.com>
18510
18511         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
18512         * TextControl.cs: Uncomment out the body of this method.
18513
18514 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
18515
18516         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
18517           standard cursors.
18518
18519 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
18520
18521         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
18522           that embed TextBox and need selections visible even if textbox is not
18523           focused to enforce that behaviour.
18524         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
18525           selection drawing
18526
18527 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
18528
18529         * TextControl.cs:
18530           - Added new SetSelectionStart/SetSelectionEnd overloads
18531           - Fixed viewport width assignment to be accurate
18532           - Adjusted alignment line shift calculations to allow cursor on right
18533             aligned lines to be always visible at the right border (like MS)
18534         * TextBoxBase.cs:
18535           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
18536           - TextBoxBase_SizeChanged: recalculating canvas on size changes
18537           - CalculateScrollBars: Use ViewPort size instead of window size, to
18538             properly consider space occupied by the border and scrollbars 
18539             (Fixes #78661)
18540           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
18541             calculations; no longer leaves artifacts
18542           - CaretMoved: Adjusted window scrolling to match MS and fixed several
18543             calculation bugs (Still missing right/center align calculations)
18544
18545 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
18546
18547         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
18548           use of both scroll rect and clip rect, as they do the same.
18549
18550 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
18551
18552         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
18553           in the event handler (fixes #78912)
18554
18555 2006-07-31  Chris Toshok  <toshok@ximian.com>
18556
18557         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
18558         grid.ListManager.Count, since grid.ListManager might be null.
18559         This of course begs the question "why are we drawing rows for a
18560         grid with no list manager (and therefor no rows)?"  Fixes the
18561         crash in bug #78929.
18562
18563 2006-07-31  Chris Toshok  <toshok@ximian.com>
18564
18565         * RelatedPropertyManager.cs: Don't always chain up to the parent
18566         ctor.  instead, call SetDataSource if the parent's position is !=
18567         -1.  Fixes the crash in #78822.
18568
18569 2006-07-31  Chris Toshok  <toshok@ximian.com>
18570
18571         * DataGrid.cs (get_ListManager): use field instead of property
18572         accessors for datasource and datamember.
18573         (RowsCount): make internal again.
18574         (OnMouseDown): end edits before resizing columns/rows.
18575         (OnMouseUp): restart edits after resizing columns/rows.
18576
18577 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
18578
18579         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
18580           This fixes the situation where the last set cursor is displayed
18581           whenever the mouse is over scrollbars.
18582
18583 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18584
18585         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
18586         Document properties, as well as initial values.
18587
18588 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
18589
18590         * XplatUIWin32.cs (SetBorderStyle): Setting both border
18591           and ClientEdge results in a 3-pixel border, which is
18592           wrong.
18593
18594 2006-07-28  Jackson Harper  <jackson@ximian.com>
18595
18596         * TreeNodeCollection.cs: Fix the clear method.
18597         - Fix the Shrink also
18598
18599 2006-07-27  Jackson Harper  <jackson@ximian.com>
18600
18601         * TreeView.cs: Make sure the visible order is computed when we
18602         attempt to size the scrollbars (for trees that mess with the
18603         scrolling when they shouldn't.
18604         - Make sure to give the scrollbars valid values.
18605
18606 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
18607
18608         * XplatUIX11.cs: Move motion compression code to where it
18609           has less performance impact
18610
18611 2006-07-26  Jackson Harper  <jackson@ximian.com>
18612
18613         * UpDownBase.cs: When the control is selected make the child
18614         controls non selectable, so that a click on them won't do a
18615         focus/unfocus cycle.
18616         - Don't give focus to the text box when the spinner is selected.
18617         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
18618
18619 2006-07-26  Chris Toshok  <toshok@ximian.com>
18620
18621         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
18622         satisfied with this solution.  If the bitmaps are small, we should
18623         just cache them in the PrintPreviewDialog and draw them here.
18624         Also, the layout is broken for the 2-up and 3-up cases.
18625
18626         * Theme.cs: add PrintPReviewControlPaint.
18627
18628         * PrintPreviewDialog.cs: first pass implementation.
18629
18630         * PrintPreviewControl.cs: first pass implementation.  No
18631         scrollbars yet.
18632
18633         * PrintDialog.cs: only validate fields if that particular portion
18634         of the UI is enabled.  Also, set the document's controller to a
18635         PrintControllerWithStatusDialog wrapping the document's print
18636         controller.
18637
18638         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
18639         bring up a SaveFileDialog (i hope we don't want to match the
18640         behavior of the crappy windows file entry) and set the
18641         PrinterSettings.PrintFileName accordingly.
18642
18643 2006-07-26  Jackson Harper  <jackson@ximian.com>
18644
18645         * ContainerControl.cs: Add a field that disables auto selecting
18646         the next control in a container when the container is activated.
18647         * UpDownBase.cs: Don't select the text box when the up down is
18648         selected.
18649
18650 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
18651
18652         * XEventQueue.cs: Added methods for peeking (used for compression
18653           of successive events)
18654         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
18655           mouse move events (fixes #78732)
18656
18657 2006-07-25  Jackson Harper  <jackson@ximian.com>
18658
18659         * UpDownBase.cs: Use an internal class for the textbox so that we
18660         can control focus.  the updown control should always have focus,
18661         if either the text area or the buttons are clicked.
18662         - Send the key messages to the textbox, since it never actually
18663         has focus
18664         - Activate and decativate the textbox caret.
18665
18666 2006-07-24  Jackson Harper  <jackson@ximian.com>
18667
18668         * Control.cs: Use the directed select when selecting a control,
18669         this way the container controls override will get called and the
18670         whole ActiveControl chain will get triggered.  TODO: probably need
18671         to make sure this gets done everywhere instead of the old
18672         Select(Control).
18673         * ContainerControl.cs: Implement the directed Select method to
18674         find and activate the correct child control.    
18675         
18676 2006-07-22  Mike Kestner  <mkestner@novell.com>
18677
18678         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
18679         menu handling code so that clicks without a grab work too.
18680         [Fixes #78914]
18681
18682 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
18683
18684         * FileDialog.cs: Enable the BackButton when dirstack has one element.
18685           Added some small optimizations.
18686
18687 2006-07-21  Matt Hargett  <matt@use.net>
18688
18689         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
18690
18691 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
18692
18693         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
18694           tests pass and match MS in some strange border cases.
18695
18696 2006-07-21  Chris Toshok  <toshok@ximian.com>
18697
18698         * ThemeWin32Classic.cs: handle drawing of the relation links and
18699         parent row buttons.
18700
18701         * Theme.cs: change args to DataGridPaintParentRow.
18702
18703         * DataGrid.cs: Don't use controls for the relation links and
18704         parent buttons, so we have to handle all their interactions in
18705         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
18706         when we're navigating through child tables, so we can reinstate
18707         selection, expanded state, current cell, etc.
18708
18709 2006-07-20  Chris Toshok  <toshok@ximian.com>
18710
18711         * ToolBar.cs: When we redraw a button, for whatever reason,
18712         there's no reason to redraw the entire toolbar.  Also, don't call
18713         Control.Refresh from within Redraw, as it's much heavier than
18714         Invalidate (which is really what we want).
18715
18716 2006-07-20  Chris Toshok  <toshok@ximian.com>
18717
18718         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
18719         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
18720         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
18721         traces from within a debug IBindingList datasource
18722         (in mono/winforms/datagrid) for *days*, I've finally gotten things
18723         to work in a similar fashion.
18724
18725 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18726
18727         * ListBox.cs: Don't call Sort () when setting 
18728         the Sorted property to false (avoid an unnecessary sort).
18729
18730 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18731
18732         * ListControl.cs: DataSource should throw an ArgumentException
18733         instead of a normal exception when the argument is not of the 
18734         correct type.
18735
18736 2006-07-20  Mike Kestner  <mkestner@novell.com>
18737
18738         * Control.cs: add InternalPreProcessMessage to allow us to steal
18739         key events before MWF gets its paws on them.  Adapted from a
18740         suggestion by eno.
18741         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
18742         up/down/left/right navigation. Override the new internal control
18743         method to steal the events since they never make it to WndProc.
18744         * ToolBarButton.cs: don't worry about pushed when setting hilight
18745         since the drawing code prefers pushed to hilight. Invalidate on 
18746         Hilight changes. Fixes #78547 and #78525.
18747
18748 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
18749
18750         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
18751           the canvas size. Fixes #78868
18752
18753 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
18754
18755         * Splitter.cs: Track requested split position until first layout
18756           is performed. Fixes #78871
18757
18758 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
18759
18760         * Application.cs: Removed code that forces 1.x for the version
18761           number if the version started with 0. Not sure why that code was
18762           there and I couldn't find any bugs that indicated we needed it.
18763           Fixes #78869
18764
18765 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
18766
18767         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
18768           ResetDefaults(), just write some output to the console until it's
18769           implemented. Fixes bug #78907 for now. Eliminated two warnings.
18770
18771 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
18772
18773         * PropertyGridView.cs: set StartPosition of drop down forms
18774         so they appear in correct initial spot.  Fixes #78190.
18775
18776 2006-07-19  Mike Kestner  <mkestner@novell.com>
18777
18778         * ThemeWin32Classic.cs: use parent background color when drawing
18779         flat toolbars.  Restructure the conditionals to make sure non-flat
18780         non-Divider toolbars are filled too.  Fixes #78837.
18781
18782 2006-07-19  Mike Kestner  <mkestner@novell.com>
18783
18784         * ListBox.cs: Sort on collection changes even if the handle
18785         isn't created yet.  Fixes #78813.
18786
18787 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18788
18789         * ListControl.cs: DisplayMember should never be null,
18790         and now we assign String.Empty when null is passed to it (this
18791         is the .Net way).
18792
18793 2006-07-17  Mike Kestner  <mkestner@novell.com>
18794
18795         * ListViewItem.cs: restructure Font and subitem Font handling 
18796         to hold a specific font and refer back to owner on null.
18797         Fixes #78761.
18798
18799 2006-07-17  Mike Kestner  <mkestner@novell.com>
18800
18801         * ToolBar.cs: bandaid for side-effect of previous patch which was
18802         discarding explicit heights for non-AutoSize toolbars.  Need to
18803         extend my format tester to deal with AutoSize=false. Fixes #78864.
18804
18805 2006-07-15  Jackson Harper  <jackson@ximian.com>
18806
18807         * LabelEditTextBox.cs:
18808         * TreeView.cs: Use a new LabelEdit class for node editing, this
18809         class automatically 'closes' itself when it gets the enter key or
18810         loses focus.
18811         - Use the client rectangle when setting the trees scrollbars, so
18812         border style is taken into account.
18813         
18814 2006-07-14  Jackson Harper  <jackson@ximian.com>
18815
18816         * TreeNode.cs:
18817         * TreeView.cs: Make the editing work similar to MSs, firing the
18818         events correctly and ending edits correctly.
18819
18820 2006-07-14  Mike Kestner  <mkestner@novell.com>
18821
18822         * ToolBarButton.cs:
18823         * ToolBar.cs: layout restructuring and redraw enhancements to support
18824         formatting changes gracefully, like setting TextAlign, ImageList, 
18825         ButtonSize, and Appearance.  Handles explicit button sizing quirks
18826         of the MS controls.  Things like flat toolbars ignoring button size
18827         but becoming constant sized at the largest button's size.  Normal
18828         toolbars with an image set cannot be shrunk smaller than the image,
18829         but text can be clipped/ignored.
18830         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
18831         is zero.  Seems like DrawString should be smart enough to not put
18832         anything on screen though. Also trim labels and ellipsize at the char
18833         boundary, not word.
18834         Fixes #78711 and #78483.
18835
18836 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
18837
18838         * FolderBrowserDialog.cs: Disable "New Folder" button and
18839           "New Folder" contextmenu menuitem if a folder like "My Computer"
18840           is selected.
18841
18842 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
18843
18844         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
18845         * FolderBrowserDialog.cs:
18846           - Use MWFConfig to store and read size and position settings
18847           - Added code to create a new folder (button or context menu).
18848             Use TreeView labeledit to change the name of the new folder.
18849
18850 2006-07-14  Jackson Harper  <jackson@ximian.com>
18851
18852         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
18853         when the tree is scrolled we end editing.
18854
18855 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
18856
18857         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
18858           Down arrows
18859
18860 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
18861
18862         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
18863         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
18864         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
18865         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
18866         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
18867         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
18868         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
18869         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
18870         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
18871         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
18872         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
18873         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
18874         ListViewItemSelectionChangedEventHandler.cs,
18875         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
18876         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
18877         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
18878         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
18879         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
18880         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
18881         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
18882         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
18883         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
18884         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
18885         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
18886         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
18887         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
18888         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
18889         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
18890         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
18891         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
18892         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
18893         WebBrowserNavigatingEventHandler.cs, 
18894         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
18895
18896 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
18897
18898         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
18899         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
18900         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
18901         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
18902         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
18903         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
18904         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
18905         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
18906         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
18907         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
18908         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
18909         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
18910         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
18911         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
18912         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
18913         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
18914         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
18915         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
18916         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
18917         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
18918         ListViewItemStates.cs, MaskFormat.cs: Added
18919
18920 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
18921
18922         * PropertyGridView.cs: Fix keyboard navigation of drop down.
18923         Patch from eno for bug 78558.
18924         
18925 2006-07-13  Jackson Harper  <jackson@ximian.com>
18926
18927         * TreeView.cs: When an edit is finished make sure that the
18928         selected node is visible.
18929         - When setting the top/bottom use the scrollbars is_visible, so
18930         everything will be set correctly even if the tree isn't visible
18931         yet.
18932
18933 2006-07-13  Jackson Harper  <jackson@ximian.com>
18934
18935         * ComboBox.cs: Revert the item->index part of my previous patch.
18936         * TreeView.cs: Use LostFocus instead of Leave for detecting when
18937         the edit box has lost focus (duh).
18938         - Just make the edit box not visible when we get return, that will
18939         take the focus, which will call EndEdit
18940         * TreeNode.cs When we start editing, notify the treeview.
18941
18942 2006-07-12  Jackson Harper  <jackson@ximian.com>
18943
18944         * ComboBox.cs: Clear out old items before setting the item list.
18945         This prevents databound controls from having their items added
18946         twice.
18947         - Switch the combobox to use indices whereever possible instead of
18948         using Item's.  This allows usto navigate through lists that have
18949         more then one item with the same string value (ie a, b, b, a).
18950         - Scroll the listboxes scrollbar when a non visible item is
18951         highlighted
18952         - Allow keypress to cycle through all the possible values. For
18953         example if you have b1, b2, b3 and hold down the B key all the
18954         values will be cycled through.
18955         
18956 2006-07-12  Jackson Harper  <jackson@ximian.com>
18957
18958         * TextBoxBase.cs:
18959         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
18960         this using the internal methods.
18961         * Control.cs: Add OnGotFocusInternal.  A new method that allows
18962         controls to "override" OnGotFocus and change focus behavior if
18963         needed.
18964         - Same thing for LostFocus
18965         * ComboBox.cs: Pass off focus to the text control properly.
18966
18967 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
18968
18969         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
18970         * FolderBrowserDialog.cs: Almost a complete rewrite.
18971           - Better support for Environment.Specialfolders
18972           - Added support for MWFVFS
18973           - Made setting SelectedPath work
18974
18975 2006-07-12  Jackson Harper  <jackson@ximian.com>
18976
18977         * Control.cs: Optimze getting all the controls.
18978
18979 2006-07-11  Jackson Harper  <jackson@ximian.com>
18980
18981         * ContainerControl.cs: Override SETFOCUS in the container control,
18982         so that it is not selected on mouse click.
18983
18984 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
18985
18986         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
18987           Hopefully we will have a better way once all of focus is complete.
18988
18989 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
18990
18991         * ThemeWin32Classic.cs: Commented out some debug code and fixed
18992           a compile error with csc.
18993
18994 2006-07-11  Jackson Harper  <jackson@ximian.com>
18995
18996         * Control.cs: When hiding a control only select the next control
18997         if the current control was focused.
18998         - Don't handle enter/leave when setting/killing focus, this is
18999         done by the container control.
19000         - Remove is_selected, it's not needed anymore.
19001         - Add utility methods for selecting a child control, and for
19002         firing the Enter/Leave events.
19003         * ContainerControl.cs: When a control is activated fire the
19004         enter/leave events.
19005         - Don't wrap when processing the tab key, so that focus can be
19006         moved outside of the container.
19007         - Use the correct active control
19008
19009 2006-07-11  Jackson Harper  <jackson@ximian.com>
19010
19011         * ComboBox.cs: Remove some debug code that was blinding me.
19012         * UpDownBase.cs: These controls actually aren't implicit, they are
19013         visible to the user.
19014
19015 2006-07-10  Chris Toshok  <toshok@ximian.com>
19016
19017         * DataGrid.cs: move back to the is_adding boolean field.  god i
19018         hate this is_editing/is_adding/is_changing stuff.
19019
19020 2006-07-10  Chris Toshok  <toshok@ximian.com>
19021
19022         * DataGridTableStyle.cs: just check if the property type is bool.
19023         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
19024         Don't use CanRenderType.
19025
19026         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
19027         if our text == NullText.  Remove CanRenderType.
19028
19029         * DataGridBoolColumn.cs: nuke CanRenderType.
19030
19031         * DataGrid.cs: reenable some code to end the current edit inside
19032         of set_CurrentCell.  This fixes the other 1.1.16 regression.
19033         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
19034         Also, remove the visible_row_count arg from CalcRowHeaders, since
19035         we don't need to worry about the actual height of the area.
19036
19037 2006-07-10  Chris Toshok  <toshok@ximian.com>
19038
19039         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
19040         mode, just return.
19041
19042         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
19043         the real sense of the IsInEditOrNavigateMode property (true =
19044         navigate, false = edit).  Also, update OnKeyPress to reflect this.
19045
19046         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
19047         column style exists, we still need to set its property descriptor
19048         to match up with our list manager.
19049
19050 2006-07-10  Chris Toshok  <toshok@ximian.com>
19051
19052         * ThemeWin32Classic.cs: implement the new row/header painting
19053         approach.  The parent row painting will likely go away and
19054         replaced with label controls, but the rest seems to work ok (and
19055         efficiently).
19056
19057         * Theme.cs: change the way we draw datagrid rows.  we don't draw
19058         the row headers as a block now.  Instead we draw them in the
19059         normal draw-row loop.  Add some calls for drawing parent rows and
19060         relation rows.
19061
19062         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
19063         a default table style.  Set the defaults from ThemeEngine.Current,
19064         not SystemColors.  Fix lots of misc issues with property setters.
19065
19066         * DataGrid.cs: move loads of style information out of this class
19067         as it's being duplicated with DataGridTableStyle.  keep track of a
19068         special DataGridTableStyle for the properties we used to mirror
19069         here.  Switch all the style properties to access this table style
19070         instead of instance fields of this class.  Also add a internal
19071         class to represent parent rows (more needs to be stored here, like
19072         the selection state from the parent table, as well as the
19073         expansion state.)  Also, for datasources with relations, do the
19074         right thing for collapse/expand, and add support for the
19075         navigation/parent row buttons.
19076
19077         Lastly, fix the crash in the 1.1.16 build.
19078
19079         * GridTableStylesCollection.cs: make the explicit interface
19080         implementations call the class's methods as opposed to duplicating
19081         them.
19082
19083         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
19084         0 so the text doesn't jump around when we move the cursor.
19085
19086 2006-07-10  Jackson Harper  <jackson@ximian.com>
19087
19088         * TextBoxBase.cs:
19089         * ListBox.cs: Match MS's ToString (this makes debugging focus
19090         stuff infinitely easier).
19091
19092 2006-07-10  Jackson Harper  <jackson@ximian.com>
19093
19094         * Control.cs (SelectNextControl): When checking the control's
19095         parent use this instead of ctrl.parent so that null can be passed
19096         to SelectNextControl. (I have unit tests for this).
19097         - Remove unused var.
19098
19099 2006-07-10  Chris Toshok  <toshok@ximian.com>
19100
19101         * CurrencyManager.cs: correct one regression, the removal of the
19102         finalType field.  Also, add a MonoTODO on CanAddRows, implement
19103         Refresh() correctly, and fix some event emission in
19104         ListChangedHandler.
19105
19106 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
19107
19108         * FileDialog.cs: Don't use brackets for new folders if they exist
19109           under *nix. Instead use -(number of existing folders +1).
19110
19111 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
19112
19113         * FileDialog.cs:
19114           - Fixed really nasty bug #78771
19115           - Don't block the whole GUI when reading directories with a lot of
19116             entries. Use an other thread instead and call BeginInvoke to
19117             update the ListView in MWFFileView
19118
19119 2006-07-07  Chris Toshok  <toshok@ximian.com>
19120
19121         * Control.cs (Dispose): release any Capture when disposing.
19122
19123 2006-07-07  Chris Toshok  <toshok@ximian.com>
19124
19125         * LinkLabel.cs (Select): if we chain up to the parent, set
19126         focused_index to -1 so we'll search for the first available link
19127         the next time the user tabs into us.  Also, if the direction is
19128         backward and focused_index == -1, start the search from the last
19129         element.
19130
19131 2006-07-07  Chris Toshok  <toshok@ximian.com>
19132
19133         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
19134         is beyond the end of the text, don't do anything.
19135         (CreateLinkPieces): set our ControlStyles.Selectable based on
19136         whether or not we have any links.
19137         (Link.Invalidate): use a loop instead of foreach.
19138         (Link.set_Start): null out owner.sorted_links so it'll be
19139         recreated by CreateLinkPieces.
19140
19141 2006-07-06  Chris Toshok  <toshok@ximian.com>
19142
19143         * LinkLabel.cs: revert the SetStyle change.
19144
19145 2006-07-06  Chris Toshok  <toshok@ximian.com>
19146
19147         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
19148         (OnEnableChanged): s/Refresh/Invalidate
19149         (OnGotFocus): if we have a focused index already, refocus it (so
19150         if we mouse out/in to the window it'll focus the right link).
19151         (OnKeyDown): move the tab handling out of here.
19152         (OnLostFocus): don't set focused_index to -1, so we can refocus it
19153         when we lose focus.
19154         (OnMouseDown): don't Capture here - Control handles it.  Also,
19155         focus the active link.
19156         (OnMouseUp): don't deal with Capture.
19157         (OnPaintBackgroundInternal): remove.
19158         (OnTextAlignChanged): CreateLinkPieces before calling the
19159         superclass's method.
19160         (OnTextChanged): call CreateLinkPieces before calling superclass's
19161         method.
19162         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
19163         move around.
19164         (Select): implement this, moving the selection between different
19165         links, and call parent.SelectNextControl if we don't have another
19166         link to focus in the given direction.
19167         (CreateLinkPieces): call Invalidate instead of Refresh.
19168         
19169 2006-07-06  Chris Toshok  <toshok@ximian.com>
19170
19171         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
19172         new LinkLabel internals.
19173
19174         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
19175         over pieces looking for active/focused/etc links.  also, deal with
19176         runs of text (and links) with embedded \n's in them, and use
19177         MeasureCharacterRanges instead of MeasureString to figure out the
19178         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
19179         two-step.
19180
19181 2006-07-04  Jackson Harper  <jackson@ximian.com>
19182
19183         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
19184         XKB or key auto repeat, do it manually.  Without key auto repeat,
19185         when a key is held down we get key press, key release, key press,
19186         key release, ... with auto repeat we get key press, key press, key
19187         press ..., and then a release when the key is actually released.
19188
19189 2006-07-03  Jackson Harper  <jackson@ximian.com>
19190
19191         * TabControl.cs:
19192         * ThemeWin32Classic.cs: Tabs do not obey normal background color
19193         rules, they are always control color regardless of the background
19194         color.
19195
19196 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
19197
19198         * FileDialog.cs: Added internal class MWFConfig.
19199           Removed Registry support and replaced it with support for the new
19200           MWFConfig class. See MWFConfig comments for more information.
19201
19202 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
19203
19204         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
19205           rectangle. Added some patches from eno from bug #78490 and fixed
19206           the arrow position for small up and down CPDrawScrollButtons.
19207
19208 2006-06-30  Jackson Harper  <jackson@ximian.com>
19209
19210         * InternalWindowManager.cs: Remove some debug code.
19211         * Form.cs: When an MdiParent is set to null, the window is
19212         "detatched" and becomes a normal window.
19213         * MdiClient.cs: Don't bring the new child form to the front until
19214         it is activated (setting it as active does this), this makes the
19215         previously active forms titlebar get redrawn as inactive.
19216
19217 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
19218
19219         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
19220           with later controls
19221
19222 2006-06-29  Mike Kestner  <mkestner@novell.com>
19223
19224         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
19225         arrow in keynav state.  Fixes #78682.
19226
19227 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
19228
19229         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
19230           order (fixes #78393)
19231
19232 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
19233
19234         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
19235           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
19236           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
19237           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
19238           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
19239           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
19240           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
19241           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
19242           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
19243           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
19244           enumerations (FlagsAttribute, SerializableAttribute, added/removed
19245           values)
19246
19247 2006-06-28  Mike Kestner  <mkestner@novell.com>
19248
19249         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
19250
19251 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
19252
19253         * PropertyGrid.cs,
19254           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
19255           item lines from other area (It also makes BackColor consistent and
19256           compatible with .NET). Fixed bug #78564.
19257
19258 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
19259
19260         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
19261         Patch from Eno for #78555.
19262
19263 2006-06-27  Chris Toshok  <toshok@ximian.com>
19264
19265         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
19266
19267         * DataGridColumnStyle.cs: same.
19268
19269         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
19270         
19271         * DataGridDrawingLogic.cs: nuke.
19272
19273 2006-06-27  Chris Toshok  <toshok@ximian.com>
19274
19275         * DataGridTableStyle.cs: clean up the constructors, and build the
19276         list of child relations for this table.  I have no idea if this is
19277         where we should be doing it (it probably isn't), but since we're
19278         already iterating over the properties..
19279
19280         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
19281         struct and array for keeping track of row information, similar to
19282         what's shown in a hack on
19283         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
19284
19285         * Theme.cs: be consistent about the naming of DataGrid methods,
19286         prefering ColumnWidths and RowHeights over columnsWidths and
19287         RowsHeights.
19288
19289         * ThemeWin32Classic.cs: same, and also add support for variable
19290         sized rows (and the +/- expansion icons for related rows).
19291
19292 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
19293
19294         * TextBoxBase.cs: Applied Eno's patch from #78660
19295
19296 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
19297
19298         * Form.cs (ScaleCore): We don't want to scale our form if it's
19299           state is minimized or maximized, but we still need to scale our
19300           child windows. Also, added try/finally block to ensure layout
19301           gets reset (Fixes #78697)
19302
19303 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
19304
19305         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
19306
19307 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
19308
19309         * Form.cs: Fixed c+p error and added check to resize form if minimum
19310           size is bigger than current size (Fixes #78709)
19311
19312 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
19313
19314         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
19315
19316 2006-06-26  Mike Kestner  <mkestner@novell.com>
19317
19318         * ComboBox.cs: only do Keypress handling in the combo when there  
19319         are items in the collection. Fixes #78710.
19320
19321 2006-06-26  Chris Toshok  <toshok@ximian.com>
19322
19323         * Binding.cs: make this work bi-directionally.  also, clear up
19324         other mixups between Push/Pull Data (e.g. we're supposed to pull
19325         data when validating).
19326
19327         * BindingManagerBase.cs: trim some fully qualified collection
19328         types.
19329
19330         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
19331
19332 2006-06-23  Chris Toshok  <toshok@ximian.com>
19333
19334         * PropertyManager.cs: It appears (according to the unit tests)
19335         that PropertyManager doesn't use
19336         PropertyDescriptor.AddValueChanged to track propery value changes
19337         in its datasource, but uses the same scheme as Binding, where it
19338         looks for a <Property>Changed event and binds to it.
19339
19340         Also, according to the docs, IsSuspended always returns false for
19341         a property manager with a non-null datasource.
19342
19343 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
19344
19345         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
19346           need to update the actual DialogResult. (Fixes #78613)
19347
19348 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
19349
19350         * Form.cs (ShowDialog): Release any captures before running the
19351           new message pump (fixes #78680)
19352
19353 2006-06-22  Mike Kestner  <mkestner@novell.com>
19354
19355         * ListView.cs: Layout column widths properly in details mode even 
19356         if HeaderStyle.None is set.  Fixes #78691.
19357
19358 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
19359
19360         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
19361
19362 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
19363
19364         * Control.cs (ContainsFocus): Using new driver method to get focused
19365           window, instead of trying to use internal tracking var, which can
19366           recursion issues (Fixes #78685)
19367         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
19368           XplatUIWin32.cs: Added GetFocus method to return focused window
19369
19370 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19371
19372         * ColorDialog.cs: when the mouse button is pressed inside the color
19373         matrix, don't let the cursor move out of it until the button is
19374         released, which is the behavior on windows. Changed 'colours' by
19375         'colors' to use the same word consistently.
19376
19377 2006-06-21  Chris Toshok  <toshok@ximian.com>
19378
19379         * DataGrid.cs: add in some basic navigation stuff (navigating to a
19380         child relation and back, using a stack).  Also, remove
19381         GetDataSource and the code that calls it - it's not needed.  Also,
19382         track CurrencyManager.ListName's removal.
19383
19384 2006-06-21  Chris Toshok  <toshok@ximian.com>
19385
19386         * CurrencyManager.cs: push some of the original type checking from
19387         BindingContext.CreateBindingManager to here, and remove some of
19388         the finalType stuff.  Need more tests to make sure I've got the
19389         ListName part right, and we might need more in SetDataSource.
19390
19391         * PropertyManager.cs: add a ctor that takes just the datasource,
19392         and no property name.  Make SetDataSource work with a null
19393         property_name, and make Current return the data_source if the
19394         property descriptor is null.  this makes 'string foo = "hi";
19395         BindingContext[foo].Current' return "hi" as it should.
19396
19397         * RelatedCurrencyManager.cs: make this code more generic - there's
19398         no reason the parent manager has to be CurrencyManager, and
19399         there's no reason to pass the DataRelation.  It suffices to use a
19400         BindingManagerBase and PropetyDescriptor.
19401
19402         * RelatedPropertyManager.cs: make a similar change here.
19403         
19404         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
19405         flower I knew it could be.
19406
19407 2006-06-20  Chris Toshok  <toshok@ximian.com>
19408
19409         * PropertyManager.cs: the PropertyChangedHandler is invoked when
19410         data in the source has changed and we need to update the control,
19411         so s/PullData/PushData.
19412
19413         * CurrencyManager.cs: Refresh is meant to update the control from
19414         data in the datasource.  So, s/PullData/PushData.
19415
19416         * BindingContext.cs: add more ugliness (we weren't handling the
19417         case where data_source = DataTable and data_member = column_name).
19418
19419         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
19420         from the perspective of the datasource.  PullData pulls from the
19421         control, PushData pushes to the control.
19422
19423 2006-06-20  Chris Toshok  <toshok@ximian.com>
19424
19425         * BindingContext.cs: rewrite the CreateBindingManager code to
19426         handle navigation paths more or less properly.  This could
19427         definitely stand some more work, in particular to push the
19428         recursion up to the toplevel.  But that relies on fixes in other
19429         places (System.Data comes to mind).
19430
19431         Also, move to a flat hashtable (and encode the twolevel nature of
19432         the dictionary into the hash key).  This lets us implement the
19433         IEnumerable.GetEnumerator method.
19434
19435         * RelatedCurrencyManager.cs: new class.  Update our view based on
19436         our relation and our parent CurrencyManager's position.
19437
19438         * CurrencyManager.cs: split out some logic from the ctor into
19439         SetView, so it can be called from the new RelatedCurrencyManager
19440         subclass.
19441
19442         * RelatedPropertyManager.cs: new class.  Update our datasource
19443         based on the position of our parent CurrencyManager.
19444
19445         * PropertyManager.cs: split out some logic from the ctor into
19446         SetDataSource, so it can be called from the new RelatedDataSource
19447         subclass.  Also, make the Current getter return the value
19448         of the PropertyDescriptor, not the data_source.
19449
19450         * Binding.cs: no need to duplicate the string splitting code here.
19451
19452 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
19453
19454         * Control.cs:
19455           - set_Enabled: OnEnabledChanged is not called if the inherited state 
19456             of the control is not altered, even though  we might be changing the
19457             internal state of the control (#78458)
19458           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
19459             OnEnabledChanged, to allow easy altering of any child window state
19460           - OnEnabledChanged: Added code to enable/disable driver window state
19461           - OnParentEnabledChanged: Instead of firing the event, call 
19462             OnEnabledChanged, which will fire the event and also a) set driver
19463             window state and pass the enabled state to any grandchildren (#78458)
19464
19465 2006-06-19  Jackson Harper  <jackson@ximian.com>
19466
19467         * InternalWindowManager.cs: We don't set the cursor explicitly
19468         thats done via the response to NCHITTESTs.
19469         - Don't need to adjust for titlebar heights anymore, the
19470         coordinates are coming in the correct coordinates now (see peters
19471         last patch).
19472
19473
19474 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
19475
19476         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
19477           being translated relative to whole window, instead of client window.
19478           That caused broken offsets on mouseclick (and caused gas for our
19479           InternalWindowManager)
19480
19481 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
19482
19483         * TextControl.cs:
19484           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
19485           - Undo(): Added replay of cursor move on DeleteChars action; added
19486             calling Undo() again if a recorded cursor move is invalid (to
19487             ensure that some action is performed on Undo)
19488         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
19489
19490 2006-06-16  Jackson Harper  <jackson@ximian.com>
19491
19492         * MdiClient.cs: Instead of just sizing maximized windows when
19493         there is a resize we also have to adjust the Y of minimized
19494         windows, so they stay pinned to the bottom of the mdi container.
19495         - Eliminate separate tracking of the active control, we can just
19496         get this from the controls collection.
19497         - Paint the decorations for the newly activated titlebar so we get
19498         a pretty blue bar.
19499         * InternalWindowManager.cs:
19500         * ThemeWin32Classic.cs: Minimized windows get all three buttons
19501         even if they are a tool window.
19502         
19503 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
19504
19505         * TextControl.cs (Undo): Handle non-existent cursor locations in the
19506           undo buffer, these can happen when text was deleted and the cursor
19507           was recorded first. Since we will also have a recorded cursor
19508           after the delete this is not an issue. (Fixes #78651)
19509
19510 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
19511
19512         * AccessibleObject.cs: Remove dependence on Control.is_selected;
19513           instead properly track control states internally (allows us to
19514           remove is_selected from Control)
19515
19516 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19517
19518         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
19519         whose width is not a multiple of 8.
19520
19521 2006-06-13  Jackson Harper  <jackson@ximian.com>
19522
19523         * MdiClient.cs:  Only maximize the next child if the current one
19524         is maximized.
19525
19526 2006-06-13  Chris Toshok  <toshok@ximian.com>
19527
19528         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
19529         modified.  Also, guard against grid or grid_drawing being null in
19530         Invalidate.
19531
19532         * DataGrid.cs: Reformat tons of getters/setters.  In the
19533         DataMember setter, just call SetNewDataSource instead of
19534         duplicating some of its functionality.  In SetNewDataSource, don't
19535         check ListManager for null, since the property getter creates the
19536         object if needed.
19537
19538         * DataGridTableStyle.cs: don't set TableStyle or call
19539         SetDataGridInternal on the column here, it's done in
19540         GridColumnStylesCollection.Add.
19541
19542         * GridColumnStylesCollection.cs: fix all the explicit interface
19543         implementations to just call our methods.  Nuke AddInternal() and
19544         move the body of it to Add().  Also, add a call to
19545         column.SetDataGridInternal to Add().
19546
19547         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
19548         base()+duplicate code.  Also, use the Format property instead of
19549         format to generate an Invalidate ala MS.  Lastly, create the
19550         textbox here, unconditionally.
19551         (set_Format): call Invalidate.
19552         (get_TextBox): no need to call EnsureTextBox.
19553         (Commit): remove the message box.
19554         (Edit) remove the call to EnsureTextBox.
19555         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
19556         (EnterNullValue): no need to check textbox for null.
19557         (HideEditBox): no need to check textbox for null.
19558         (SetDataGridInColumn): add the textbox to the grid's controls.
19559         (EnsureTextBox): nuke.
19560         
19561 2006-06-13  Jackson Harper  <jackson@ximian.com>
19562
19563         * MdiWindowManager.cs: Hook up to the maximized menus paint event
19564         and redraw the buttons when needed. Unhook when the window is
19565         unmaximized.
19566         * MainMenu.cs: Add an internal Paint event, the mdi window manager
19567         needs this so that it can redraw its buttons when the menu is
19568         repainted.
19569         * InternalWindowManager.cs:
19570         * Form.cs: The method order has changed for DrawMaximizedButtons,
19571         so that it can be a PaintEventHandler.
19572         
19573 2006-06-13  Jackson Harper  <jackson@ximian.com>
19574
19575         * MdiClient.cs: When we close a maximized mdi window, the next mdi
19576         window is activated and maximized, even if it wasn't before.
19577         - When  a new window is activated repaint the decorations of the
19578         old one, so that it no longer has the Active "look" (the blue
19579         titlebar).
19580         * InternalWindowManager.cs: Open up CreateButtons to base classes
19581         so they can recreate the buttons on state changes.
19582         - If a window is maximized give it all three buttons
19583         * MdiWindowManager.cs: Create the titlebar buttons when the state
19584         is changed, this is needed because a toolwindow will not have all
19585         three buttons until it is maximized.
19586
19587 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
19588
19589         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
19590           Fixed bug #78609.
19591
19592 2006-06-12  Jackson Harper  <jackson@ximian.com>
19593
19594         * KeysConverter.cs: Make sure we handle the Ctrl special case
19595         if its the only key.
19596         
19597 2006-06-12  Jackson Harper  <jackson@ximian.com>
19598
19599         * Theme.cs: Add a method to get the size of a managed window
19600         toolbar button.
19601         * InternalWindowManager.cs: Remove the ButtonSize property, this
19602         should be retrieved from the theme.
19603         * MdiWindowManager.cs: Get the button size from the theme
19604         * ThemeWin32Classic.cs: Make the method to get the managed window
19605         titlebar button size public.
19606         - Handle the different button sizes of maximized toolwindows
19607         (should match any maximized window).
19608         - Get the titlebar height from the theme, not the WM (which gets
19609         it from the theme).
19610
19611 2006-06-12  Jackson Harper  <jackson@ximian.com>
19612
19613         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
19614         event down to the mdi window manager.
19615         - Expose some extra stuff to base classes
19616         - Make sure to end the Capture on an NC Mouse up, so that we can
19617         get double clicks properly, and the sizing doens't stick.
19618         - When doing PointToClient contain it in the workable desktop
19619         area, this prevents windows from changing size when the cursor is
19620         pulled outside of the working area while sizing.
19621         * MdiWindowManager.cs: When we get a double click maximize the
19622         window.
19623         - Reset the cursor after handling mode changes.
19624
19625 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
19626
19627         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
19628           current desktop, instead of just assuming a 0, 0 origin. This
19629           is needed for our internal window manager, to know the top
19630           margin of the desktop
19631
19632 2006-06-12  Chris Toshok  <toshok@ximian.com>
19633
19634         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
19635         we need this to get rid of the selected background in the bool
19636         column.
19637         (CancelEditing): move the ConcedeFocus call to above the Abort
19638         call.  Also, set is_changing to false and invalidate the row
19639         header if we were changing before.
19640         (ProcessKeyPreviewInternal): remove, since noone outside this
19641         class calls it anymore.  Roll the code into ProcessKeyPreview.
19642         (EndEdit): remove the internal version.
19643         (InvalidateCurrentRowHeader): make private.
19644
19645         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
19646         Keys.Escape handling (and with it the last call to
19647         DataGrid.EndEdit from outside the class.)
19648
19649
19650 2006-06-12  Chris Toshok  <toshok@ximian.com>
19651
19652         * DataGridTextBox.cs (.ctor): isedit defaults to false.
19653         (OnKeyPress): set isedit to true.
19654         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
19655         already handled by the grid.
19656
19657         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
19658         right.  ugh.
19659         (set_DataSource): SetDataSource always returns true, so stop
19660         putting it in an if statement.
19661         (EndEdit): get rid of some {}'s
19662         (ProcessGridKey): return true in case Keys.Escape.
19663         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
19664         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
19665         PositionChanged, stopped connecting to CurrentChanged.
19666         (GetDataSource): simplify this a bunch.
19667         (SetDataSource): change return type from bool to void.
19668         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
19669         to this, and make sure we don't set ListManager.Position inside
19670         set_CurrentCell.
19671         (OnListManagerItemChanged): if we're passed an actual index,
19672         redraw that row.
19673
19674         * CurrencyManager.cs (set_Position): don't call PullData here.
19675
19676 2006-06-09  Jackson Harper  <jackson@ximian.com>
19677
19678         * TreeNode.cs:  Recalculate the visible order before doing the
19679         Expand/Collapse Below calls, because those calls generate an
19680         expose.
19681         - Reduce calls to the TreeView property, which is mildly expensive
19682         by using a local var.
19683         * Form.cs: Layout the MDI child windows when creating the parent
19684         form.
19685         - Don't use the internal constructor anymore
19686         * MdiClient.cs: use the parent form width/height (if available)
19687         when laying out the child windows, we do this because the
19688         mdiclient isn't docked yet when the initial layout is done.
19689         - Don't need an internal constructor anymore.
19690
19691 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19692
19693         * FileDialog.cs: handle access errors when trying to create a folder
19694         or changing to a directory. No need to initialize out parameters.
19695
19696 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
19697
19698         * FileDialog.cs: Append a number when creating a new folder if the
19699           folder already exists (use parenthesis instead of square brackets)
19700
19701 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
19702
19703         * FileDialog.cs:
19704           - Disabled registry support for windows and added better registry
19705             error checking for other systems (need to investigate why it
19706             works perfectly on my system)
19707           - If a folder already exist show an error MessageBox instead of
19708             trying to create an indexed name.
19709           - Fixed a non intentional typo.
19710
19711 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19712
19713         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
19714
19715 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
19716
19717         * FileDialog.cs: When creating a new folder don't crash if the
19718           folder already exists.
19719
19720 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
19721
19722         * FileDialog.cs: Allmost a complete rewrite.
19723           - added a "virtual" file system that handles the differences
19724             between unix and windows file systems (especially the directory
19725             structure). Moved most of the directory and file handling code
19726             into the vfs.
19727             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
19728             UnixFileSystem and FSEntry.
19729           - Recently used folder/directory, size, location and used file names
19730             (file name ComboBox) are now stored in the registry and get read
19731             before the dialog shows up (fixes part 6 of bug #78446).
19732           - Creation of new folders/directories is now possible (context menu
19733             or ToolBar). Added TextEntryDialog for this that fills in the gap
19734             until ListView.LabelEdit works.
19735           - Fixed cursor handling (bug #78527) and focus handling for
19736             PopupButtonPanel
19737           - Various "Search in" ComboBox enhancements. The content of the
19738             dropdown listbox now almost matches ms.
19739           - Changed the behaviour when the user switches to SpecialFolder
19740             Recent to show the ListView in View.Details.
19741           - Beside using the ToolBar to change the View property of the
19742             file ListView it is now possible to use the context menu too.
19743
19744 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
19745
19746         * ComboBox.cs: Don't create a new ObjectCollection when an item
19747           gets inserted. Just insert the item in the existing object_items
19748           ArrayList.
19749
19750 2006-06-08  Jackson Harper  <jackson@ximian.com>
19751
19752         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
19753         that the treeview and root node checks are done also, this fixes a
19754         regression i caused in the unit tests.
19755
19756 2006-06-07  Wade Berrier <wberrier@novell.com> 
19757
19758         * RichTextBox.cs: More ISO8859-1 -> unicode
19759
19760 2006-06-07  Mike Kestner  <mkestner@novell.com>
19761
19762         * ComboBox.cs : use items to hold highlight/selection so that
19763         collection insertions don't require synchronization.
19764
19765 2006-06-07  Jackson Harper  <jackson@ximian.com>
19766
19767         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
19768         routine.  We now always keep the sized edge at the cursor instead
19769         of computing movement and adjusting rects.  There is one buglet
19770         with this method though when the cursor is moved over area that
19771         the window can not expand too (such as the toolbars on the desktop).
19772
19773 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19774
19775         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
19776         here. Fixes crash on startup in AlbumSurfer.
19777
19778 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
19779
19780         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
19781           values
19782
19783 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19784
19785         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
19786         statement to avoid calling XNextEvent which will block if another thread
19787         took the event that we were expecting. Fixes bug #78605.
19788
19789 2006-06-07  Mike Kestner  <mkestner@novell.com>
19790
19791         * ListView.cs : isolated checkbox clicking from the selection logic.
19792         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
19793
19794 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19795
19796         * Form.cs: Check that the value passed to Form.DialogResult
19797         is a valid enum value.
19798
19799 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19800
19801         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
19802         Computer'. Clicking it in the network view goes to 'My Computer'.
19803         Added CIFS filesystem type. Display the mount point of filesystems.
19804         Avoid duplicate mount points (happens for me with CIFS);
19805
19806 2006-06-06  Jackson Harper  <jackson@ximian.com>
19807
19808         * InternalWindowManager.cs: Draw the maximized windows buttons
19809         when resizing.
19810
19811 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19812
19813         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
19814         all other dialogs. Fixes bug #78585.
19815
19816 2006-06-06  Mike Kestner  <mkestner@novell.com>
19817
19818         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
19819         Only invalidate checkbox on checkstate changes to avoid flicker.
19820         * ListBox.cs : avoid unselect/select when clicking selected item.
19821         avoid reselection flicker for already multiselected items.
19822         Fixes #78382.
19823
19824 2006-06-06  Jackson Harper  <jackson@ximian.com>
19825
19826         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
19827         the parent form so that the menu is removed if needed.
19828
19829 2006-06-06  Mike Kestner  <mkestner@novell.com>
19830
19831         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
19832         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
19833
19834 2006-06-06  Mike Kestner  <mkestner@novell.com>
19835
19836         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
19837
19838
19839 2006-06-06  Jackson Harper  <jackson@ximian.com>
19840
19841         * Control.cs: Use the property (instead of the field) to get the
19842         default cursor so it is instantiated correctly.
19843         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
19844         resizes so we need to manually repaint the window decorations here.
19845         - Set the titlebar button locations as soon as they are created,
19846         otherwise they are not set correctly on win32.
19847         
19848 2006-06-06  Chris Toshok  <toshok@ximian.com>
19849
19850         * CurrencyManager.cs (set_Position): call PullData before
19851         OnCurrentChanged.
19852         (AddNew): after calling IBindingList.AddNew, update our
19853         listposition, and call OnCurrentChanged/OnPositionChanged (without
19854         calling PullData).
19855         (OnCurrentChanged): remove the call to PullData from here.
19856         (OnItemChanged): remove the call to PushData from here.
19857         (OnPositionChanged): change the test from == null to != null to
19858         match the other methods.
19859         (ListChangedHandler): the grossest part of the patch.  Implement
19860         this such that it passes the unit tests in CurrencyManagerTest and
19861         the output more or less matches that of MS's implementation.
19862  
19863 2006-06-06  Mike Kestner  <mkestner@novell.com>
19864
19865         * ListView.cs : only update check state on single click.
19866         * ThemeWin32Classic.cs : fix focus drawing for details view without
19867         fullrowselect.  Fixes #78454.
19868         * XplatUIX11.cs : fix for double click emission.
19869
19870 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
19871
19872         * PropertyGridView.cs : Applied Atsushi's patch to fix
19873         font dialog bug  (#78197).
19874
19875 2006-06-05  Jackson Harper  <jackson@ximian.com>
19876
19877         * TreeNode.cs: Compute the next node for expanding/collapsing
19878         correctly. We now factor in nodes without a NextNode
19879         correctly. (Fixes somes cases in nunit-gui).
19880         * InternalWindowManager.cs: Set the bounds when updating the
19881         virtual position of a tool window.
19882         
19883 2006-06-05  Chris Toshok  <toshok@ximian.com>
19884
19885         * DataGrid.cs: rename cached_currencymgr to list_manager.
19886         (set_CurrentCell): move SetCurrentCell code here, and clean it up
19887         some.
19888         (CurrentRow, CurrentColumn): single accessors so we can make the
19889         cursor movement code a lot easier to understand.
19890         (CurrentRowIndex): implement this in terms of CurrentRow.
19891         (BeginEdit): clean this up a bit.
19892         (CancelEditing): sort out the is_editing/is_changing/is_adding
19893         stuff a little.
19894         (EndEdit): minor changes.
19895         (OnKeyDown): add a comment about a (most likely) unnecessary
19896         check.
19897         (OnMouseDown): cancel editing when we click on a row header.  And
19898         use the CurrentRow setter, not CurrentCell.
19899         (ProcessDialogKey): directly call ProcessGridKey.
19900         (UpdateSelectionAfterCursorMove): factor out this common block of
19901         code (it's used everywhere that we move the cursor by updating row
19902         or column).
19903         (ProcessGridKey): pretty substantial overhaul.  Use the
19904         CurrentRow/CurrentColumn properties to make the code a lot more
19905         readable.  Only use the CurrentCell property when we have to
19906         modify both row and column at once.  Tab behavior is still broken,
19907         and Delete is untested.
19908         (Select): if we have no selected rows, set selection_start to
19909         @row.
19910         (EditCurrentCell): rename EditCell this.  It was only ever invoked
19911         with CurrentCell as the arg, so drop the arg and rename it.
19912
19913         * DataGridColumnStyle.cs: clean up the constructors a little, and
19914         drop CommonConstructor().
19915
19916         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
19917         actually get notified when the user hits it.
19918         (ProcessKeyMessage): *substantially* simplify this method.
19919         There's no reason (that I can see) for the textbox to be making
19920         calls into the datagrid at all.  Remove all of them but the ones
19921         for Enter handling.  those will take some more work.
19922
19923         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
19924         calling HideEditBox.
19925         (HideEditBox): if we have an active textbox, render it invisible
19926         without causing a re-layout of the datagrid.
19927
19928 2006-06-05  Mike Kestner  <mkestner@novell.com>
19929
19930         * ListView.cs : fix NRE crasher when focuseditem is cleared by
19931         collection changes by resetting it to Items[0].  Fixes #78587.
19932
19933 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19934
19935         * MessageBox.cs: if the height of the text is larger than the icon_size,
19936         use that. Fixes bug #78575.
19937
19938 2006-06-05  Jackson Harper  <jackson@ximian.com>
19939
19940         * TreeView.cs: Fix line drawing when scrolling.  To do this each
19941         node is basically responsible for drawing its entire horizontal
19942         area.  When drawing a node it draws its parent node lines if
19943         needed.
19944         - Adjust the clip area to the viewport rectangle
19945         - Fix Left/Right key handling to match MS. (It expand/collapses
19946         and moves to parents/first child but does not move selection to
19947         sibling nodes).
19948         - Fix SetTop to work with new bound calculation code
19949         - When scrollbars are no longer needed we need to reset scrolling
19950         vars and recalculate the visible order so the redraw is correct
19951         * TreeNode.cs: We can't expand/collapse nodes with no children.
19952
19953 2006-06-03  John Luke  <john.luke@gmail.com> 
19954
19955         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
19956         so the colors work without dev packages
19957         
19958 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
19959
19960         * Control.cs 
19961           - Select: Implemented to just use activate. Seems to match MS 
19962             behaviour closest. Documented to only do actual control walking 
19963             based on it's parameters if in a container control so I moved 
19964             the code there.
19965           - Removed selection check logic from our internal Select() method
19966         * ContainerControl.cs:
19967           - Select: Moved selection logic from Control here, since MS documents
19968             that containers obey the bool arguments. No longer calling base
19969
19970 2006-06-02  Jackson Harper  <jackson@ximian.com>
19971
19972         * TreeView.cs: If the selected node isn't changed when we get
19973         focus update the previously selected node so that we see the
19974         selection box.
19975
19976 2006-06-02  Mike Kestner  <mkestner@novell.com>
19977
19978         * ComboBox.cs: restructure grab and general mouse event handling.
19979         Make the composite control raise mouse events like it was a single
19980         control for leaves/enters/motion/up/down events.  fix dropdown list
19981         coordinate mangling and refactor it into the scrollbar subclass to
19982         reduce code duplication.  Fixes #78282 #78361 and #78457.
19983
19984 2006-06-02  Mike Kestner  <mkestner@novell.com>
19985
19986         * ScrollBar.cs: remove Capture setting/clearing, as it happens
19987         automatically in the Control.WndProc.
19988
19989 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19990
19991         * FileDialog.cs: fix crash when running SharpChess, which sets the
19992         FilterIndex to 2 with only one Filter.
19993
19994 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19995
19996         * ToolBar.cs: add SizeSpecified property.
19997         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
19998         try to figure out our real size, otherwise fallback to what the
19999         container says.
20000
20001 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
20002
20003         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
20004         * Control.cs (WndProc): MS always calls the DefWndProc to pass
20005           up the event
20006
20007 2006-06-01  Mike Kestner  <mkestner@novell.com>
20008
20009         * ListView.cs: revamp the focus management in ListView.  It still
20010         causes churn of LostFocus/GotFocus emissions on clicks, but it's
20011         better than not handling focus at all.  Will revisit when pdb feels
20012         the general focus handling is solid.  Fixes #78526.
20013
20014 2006-06-01  Jackson Harper  <jackson@ximian.com>
20015
20016         * TreeView.cs: Set the default border style in the constructor.
20017         - Move painting to use OnPaintInternal instead of capturing
20018         WM_PAINT, this is the correct way of doing things
20019         - UpdateBelow shouldn't invalidate the scrollbar area
20020         - Cap the top on update below in case the node was above the top
20021         of the viewport rectangle.
20022         - ExpandBelow and Collapse below need to obey Begin/End Update.
20023         * TreeNode.cs: Make is_expanded internal so the treenode
20024         collection can change it without firing the whole event chain.
20025         * TreeNodeCollection.cs: When clearing all the child nodes make
20026         sure to recalc the visible order.
20027         - Improve algo for remove the top node
20028
20029 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
20030
20031         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
20032           SendMessage directly calling window procedures, which in turn might
20033           call SetFocus()
20034
20035 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
20036
20037         * Control.cs: Don't handle WM_SETFOCUS if the same window already
20038           has focus (works around X11 sending a FocusIn after our SetFocus)
20039         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
20040
20041 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
20042
20043         * Mime.cs: Fix for the NET_2_0 build.
20044           NameValueCollection needs StringComparer now.
20045
20046 2006-05-31  Chris Toshok  <toshok@ximian.com>
20047
20048         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
20049         return (via an out parameter) the starting X of the column.
20050         (UpdateVisibleColumn): track change to FromPixelToColumn.
20051         (HitTest): add a ColumnResize case here.
20052         (DrawResizeLine): new function, probably poorly named.
20053
20054         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
20055         only need to keep one reference.
20056         (set_ListManager): same.
20057         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
20058         Also, add support for HitTestType.ColumnResize.
20059         (OnMouseMove): add column resize behavior here, and change the
20060         cursor to the correct one as we move around the datagrid.
20061         (OnMouseUp): terminate the column resize if we're resizing.
20062         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
20063         for the current cell.
20064         (ConnectListManagerEvents): use cached_currencymgr.
20065         (DisconnectListManagerEvents): fill this in, using
20066         cached_currencymgr.
20067         (SetCurrentCell): remove cached_currencymgr_events handling.
20068         (SetDataMember): only call DisconnectListManagerEvents if
20069         cached_currencymgr is != null.
20070         (SetDataSource): same.
20071         (OnListManagerCurrentChanged): cached_currencymgr_events ->
20072         cached_currencymgr.
20073
20074 2006-05-31  Jackson Harper  <jackson@ximian.com>
20075
20076         * BindingManagerBase.cs: Remove somedebug code that creeped into
20077         SVN.
20078         * TreeNode.cs: We get the indent level dynamically right now, so
20079         don't track it as a member.
20080         * TreeNodeCollection.cs: Make sure all nodes added to the list
20081         have parents, treeviews/topnodes setup properly.
20082         - Don't attempt to track indent level.
20083
20084 2006-05-30  Jackson Harper  <jackson@ximian.com>
20085
20086         * BindingContext.cs: Create the currency manager tables here.
20087         This allows us to more easily create null tables (when bad data
20088         members are used), and more easily create related currency
20089         managers.
20090         * CurrencyManager.cs: All the table creation stuff is done by the
20091         binding context now.
20092         - Current should throw an exception if listposition is -1.
20093         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
20094         been bound yet.
20095
20096 2006-05-30  Mike Kestner  <mkestner@novell.com>
20097
20098         * ListView.cs: allow reexpansion of zero-width column headers.
20099         Fixes #78528.
20100
20101 2006-05-28  Chris Toshok  <toshok@ximian.com>
20102
20103         * CurrencyManager.cs (get_Current): after the late binding
20104         listposition = -1 fix, we need to guard against it here and return
20105         null, otherwise we raise an exception (which is swallowed
20106         elsewhere, and breaks datagrid databinding.)
20107
20108 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
20109
20110         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
20111           than WM_SYSKEY, don't throw if get something unexpected (#78507)
20112
20113 2006-05-26  Jackson Harper  <jackson@ximian.com>
20114
20115         * ControlPaint.cs:
20116         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
20117         values, it's faster and it's all we care about (we don't care if
20118         the names aren't equal).
20119         * KeyboardLayouts.cs: Eliminate some dead code.
20120         - Lazy init things
20121         * X11Keyboard.cs: Lazy init keyboard detection.
20122         - Cleanup access modifiers a little.
20123
20124 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
20125
20126         * XplatUIX11.cs: Once again, attempting to get layout just right.
20127
20128 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
20129
20130         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
20131           the sizes of each link section, that will result in sizes that
20132           match DrawString's layout (Fixes #78391)
20133
20134 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
20135
20136         * FileDialog.cs: If AddExtension property is true autocomplete the
20137           extensions in SaveFileDialog correctly. Fixes bug #78453.
20138           Set MyNetwork and MyComputer to "C:\" for windows. This should
20139           fix part 8 of bug #78446 for now.
20140
20141 2006-05-26  Chris Toshok  <toshok@ximian.com>
20142
20143         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
20144         invalidate the current row header if we need to, but presumably
20145         we'll invalidate the row corrsponding to the bounds or
20146         editingControl.
20147         (GridHScrolled): switch back to this method, as it's part of the
20148         public api.  *sigh*.
20149         (GridVScrolled): same.
20150         (OnMouseWheel): hack up something that more or less works.  Call
20151         GridHScrolled/GridVScrolled directly, instead of duplicating much
20152         of their code here.
20153         (EnsureCellVisibility): reinstate a bunch of this code, since we
20154         can't just set the scrollbar Value and expect to do all the work
20155         in the ValueChanged handler.  Also, Call Update() after scrolling
20156         in one direction so the other XplatX11.ScrollWindow call has the
20157         proper stuff in the proper places.
20158         (EditCell): set is_editing to true before calling .Edit.
20159
20160         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
20161         don't bother comparing first.
20162         (OnKeyPress): call grid.ColumnStartedEditing before calling
20163         base.OnKeyPress.  this will set is_changing and invalidate the row
20164         header if necessary.
20165         (ProcessKeyMessage): for WM_CHAR messages, call
20166         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
20167         and WM_KEYDOWN.
20168         
20169         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
20170         it's done in the DataGrid.
20171         (NextState): call grid.ColumnStartedEditing, which takes care of
20172         invalidating the row header (and setting is_changing).
20173
20174         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
20175         here.  it's done in the DataGrid.
20176
20177 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20178
20179         * Control.cs: allow changing the cursor when the mouse position is
20180         out of bounds but Capture is set.
20181         * LinkLabel.cs: handle the case when the mouse button is pressed on the
20182         linklabel but released somewhere else.
20183
20184 2006-05-25  Jackson Harper  <jackson@ximian.com>
20185
20186         * TreeView.cs: When we get focus if there is no selected node make
20187         it the top node
20188         - Remove some uneeded setup code from Draw.
20189         * TreeNodeCollection.cs: If the tree doesn't have a top node when
20190         a new node is inserted make the new node the top.
20191         * XplatUIX11.cs:
20192         * Timer.cs: Use Utc time so that no local time zone stuff needs to
20193         be used (should be faster).
20194         
20195 2006-05-25  Chris Toshok  <toshok@ximian.com>
20196
20197         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
20198         problem with the last commit.
20199
20200 2006-05-25  Chris Toshok  <toshok@ximian.com>
20201
20202         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
20203         need the invalidate call here, while scrolling right-to-left via
20204         the left arrow key (i.e. moving the editing cell while scrolling).
20205
20206         * DataGrid.cs (.ctor): remove the initialization of
20207         ctrl_pressed/shift_pressed.  We no longer track them using key
20208         up/down handlers, but by using Control.ModifierKeys.  Also, switch
20209         to using ValueChanged handlers on the scrollbars instead of
20210         Scrolled event handlers.  This simplifies a bunch of the scrolling
20211         code.
20212         (GridHValueChanged): rename from GridHScrolled, and change it to
20213         work with the new event args.
20214         (GridVValueChanged): same.
20215         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
20216         (OnMouseWheel): actually scroll the datagrid.  Don't change the
20217         selected cell.
20218         (ProcessGridKey): correct all the keyboard navigation stuff I
20219         could find.  Ctrl up/down/left/right/home/end work now.
20220         (EnsureCellVisibility): correct method name spelling.  Also,
20221         simplify this a touch by not explicitly calling the
20222         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
20223         scrollbar value.
20224         (OnKeyUpDG): no need for this method now.
20225         
20226 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20227
20228         * LinkLabel.cs: display the OverrideCursor when hovering the label.
20229         Fixes bug #78392.
20230
20231 2006-05-25  Chris Toshok  <toshok@ximian.com>
20232
20233         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
20234         r61019.
20235
20236 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
20237
20238         * Application.cs: Moved setting of is_modal and closing to before
20239           we create the control, to allow the event handlers called as a
20240           result of creation affect closing. Also removed Gonzalo's previous
20241           change to setting DialogResult, the behaviour has been moved to 
20242           Form.ShowDialog()
20243         * Form.cs: 
20244           - ShowDialog(): Removed explicit creation of the form, let RunLoop
20245             handle it instead
20246           - ShowDialog(): If no dialog result is set, we need to return Cancel
20247           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
20248             the close is cancelled
20249
20250 2006-05-25  Jackson Harper  <jackson@ximian.com>
20251
20252         * StatusBar.cs: We only need to update the sizes of the other
20253         panels when we have auto size contents.  Also we are only updating
20254         the contents of the panel, not the borders, so compensate for the
20255         border width (TODO: get this width from the theme somehow).
20256         * TreeView.cs: Scrollable is true by default
20257         - Use invalidate instead of refresh where needed
20258         - Factor the scrollable value into scrollbar updating
20259         - Update the scrollbars if the Scrollable property is altered
20260         - Update the selected node if its ImageIndex is changed
20261         - Handle null nodes in UpdateNode (mainly so we don't have to
20262         check if selected is null when updating it
20263         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
20264         are factored into the visible count
20265         - Use VisibleCount for clarity in the code
20266         - When the font is changed we need to recurse through all the
20267         nodes and invalidate their sizes
20268         
20269 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20270
20271         * Application.cs: set the DialogResult to fixed when the main form is
20272         hidden or destroyed while being modal.
20273
20274 2006-05-25  Miguel de Icaza  <miguel@novell.com>
20275
20276         * Theme.cs: Use Tangoified messagebox icons. 
20277
20278         (GetSizedResourceImage): Also cope with width = 0 and do not
20279         trigger a warning in that case (0 means "give me your icon from
20280         the resouce, no special size needed).
20281
20282 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
20283
20284         * Application.cs: Leave runloop if the the main modal form is 
20285           hidden (fixes #78484)
20286
20287 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
20288
20289         * BindingContext.cs : reject null datasource in Contains() and
20290           Item[].
20291         * CurrencyManager.cs : check data_member validity when data_source
20292           is dataset. When it is late binding, the initial position is -1.
20293
20294 2006-05-24  Jackson Harper  <jackson@ximian.com>
20295
20296         * TreeNodeCollection.cs: Dont't recalculate the visible order on
20297         inserted nodes that aren't visible.  This changes the
20298         max_visible_order which confuses scrollbar settings.
20299         - Use the enumerator to get the prev node instead of duplicating
20300         code.
20301         * TreeView.cs: Use new method for setting scrollbar values
20302         - Don't set the bounds every time the scrollbar is updated
20303         - When updating below the root node use an invalidate instead of a
20304         refresh to prevent the child controls (scrollbars) from being
20305         refreshed. (UpdateBelow still needs to be reworked anyways).
20306         - Reenable SetBottom now that visible orders are set correctly,
20307         added some debug code incase we ever get bad values there again.
20308         - Set the scrollbar max to 2 less then the max value, this
20309         compensates for the max value being one above the node count, and
20310         for scrollbars adding one extra "notch".
20311         - When drawing image nodes if there is an imagelist we draw the
20312         first image in the list if the supplied image index is out of the
20313         image list's bounds.
20314         
20315 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
20316
20317         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
20318           we receive a size change from the WM (Fixes #78503)
20319
20320 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
20321
20322         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
20323           rectangle (Fixes #78501)
20324
20325 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
20326
20327         * ButtonBase.cs: 
20328           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
20329             as a bitfield.
20330           - Fixed MouseMove to no longer switch pressed state unless the left
20331             mouse button is pressed. Atsushi provided the original patch (#78485)
20332           
20333 2006-05-24  Jackson Harper  <jackson@ximian.com>
20334
20335         * ScrollBar.cs: New internal methods that allow us to change a
20336         couple values on the scrollbar (the most common case is maximum
20337         and large change) without getting multiple invalidates.
20338
20339 2006-05-24  Chris Toshok  <toshok@ximian.com>
20340
20341         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
20342         (Edit): save off the original state in oldState, and set
20343         grid.is_editing to true.
20344         (OnKeyDown): abort editing if escape is pressed.  also, call
20345         NextState if space is pressed.
20346         (OnMouseDown): call NextState.
20347         (NextState): factor out shared code from OnKeyDown and OnMouseDown
20348         here.  Also, only invalidate the row header once (on the initial
20349         is_changing switch) to save on redraws.
20350
20351 2006-05-24  Chris Toshok  <toshok@ximian.com>
20352
20353         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
20354         if the value in the cell is different than it was before.  This
20355         keeps us from triggering a layout when we move around a datarid
20356         with a highlighted cell.
20357         (Edit): suspend layout when creating/positining the text box, and
20358         resume passing false so we don't ever actually re-layout.
20359         (ReleaseHostedControl): same.
20360         (EnsureTextBox): reformat slightly, and set WordWrap to false.
20361
20362         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
20363         control-key sequences should go to the datagrid - remove that
20364         lock.  Also, modify the conditions under which we move between
20365         cells when moving the cursor within a cell, and remove the "this"
20366         and "base" from field accesses.  We weren't even consistent, given
20367         they all were in the base class.
20368
20369 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
20370
20371         * Binding.cs : (.ctor)
20372           An obvious NRE fix for BindingTest.CtorNullTest().
20373
20374 2006-05-23  Chris Toshok  <toshok@ximian.com>
20375
20376         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
20377         them between lines.  This fixes some quirks editing cells in the
20378         datagrid.
20379
20380 2006-05-23  Jackson Harper  <jackson@ximian.com>
20381
20382         * TreeView.cs: Use begin/end update when doing expand/collapse all
20383         so that we don't get flicker on the scrollbar.
20384
20385 2006-05-23  Jackson Harper  <jackson@ximian.com>
20386
20387         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
20388         treenode calculations to be independant of the painting code. To
20389         do this nodes track a visible order which is calculated by the
20390         treeview.
20391         - Call new methods for expanding/collapsing nodes.  These methods
20392         use scrollwindow so we don't have to update everything below the
20393         node.
20394         * TreeView.cs: Refactored drawing and scrolling code.  We don't
20395         need to update nodes when drawing anymore or calculate scrollbar
20396         stuff.
20397         - Added new methods for expanding/collapsing nodes. These methods
20398         use ScrollWindow so as to not have to redraw all the nodes below.
20399         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
20400         we add/remove nodes or sort.
20401         - Handle removing the selected and the top node properly.
20402
20403 2006-05-23  Chris Toshok  <toshok@ximian.com>
20404
20405         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
20406         maybe this should actually happen in the datagrid code?
20407         (EndEdit): no need to invalidate anything, given that
20408         ReleaseHostedControl causes the datagrid to relayout, which
20409         invalidates everything anyway.
20410
20411         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
20412         in SetCurrentCell).
20413         (set_SelectionBackColor): call InvalidateSelection instead of
20414         Refresh.
20415         (set_SelectionForeColor): same.
20416         (BeginEdit): Flesh this out a bit.
20417         (CancelEditing): only do any of this if we're editing/adding.
20418         (EndEdit): same.
20419         (OnMouseDown): there's no need to cancel editing here, it's done
20420         in SetCurrentCell.
20421         (SetCurrentCell): only invalidate the current row header if it's a
20422         different row than the new one.
20423         (ShiftSelection): fix this to work like MS does.
20424         (ResetSelection): factor out the invalidation of selected_rows to
20425         InvalidateSelection.
20426         (SetDataSource): cancel any editing that's going on.
20427
20428         * DataGridColumnStyle.cs
20429         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
20430         call the non-interface version.
20431
20432         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
20433         header rectangle with the clip rectangle so we don't redraw the
20434         entire header for just a small area.  Gets rid of the last flicker
20435         when horizontally scrolling.
20436         (DataGridPaintRow): same.
20437
20438 2006-05-23  Mike Kestner  <mkestner@novell.com>
20439
20440         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
20441         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
20442         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
20443         Critical bug report.
20444
20445 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
20446
20447         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
20448           and this fixes #78493
20449
20450 2006-05-23  Miguel de Icaza  <miguel@novell.com>
20451
20452         * Theme.cs (GetSizedResourceImage): Scale images if the proper
20453         size is not found.  
20454         
20455         * FileDialog.cs: Do not change the background for the side bar as
20456         it wont work nicely with the theme, and also reduces the artifacts
20457         in rendering the icons (which I want to fix too).
20458
20459         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
20460         resources, not resgen resources. 
20461
20462         (PlatformDefaultHandler): Pull images using the new API.
20463
20464 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
20465
20466         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
20467           a reference to the hwnd and will not remove it unless there are
20468           no pending exposures (fixes #78341)
20469         * XplatUI.cs: Improved debug
20470
20471 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
20472
20473         * MenuAPI.cs : don't handle OnClick event when it was not the left
20474           button. Fixed bug #78487.
20475
20476 2006-05-23  Mike Kestner  <mkestner@novell.com>
20477
20478         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
20479         prefer submenus to the top menu for item lookup, to avoid popping down
20480         top-row items.
20481
20482 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
20483
20484         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
20485           Graphics.FillRectangle as the visual results are really bad (even
20486           on win). We now draw perfect arrows (and perfect shadows when the
20487           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
20488           Pen.DashPattern to draw the dots of each line.
20489
20490 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
20491
20492         * FileDialog.cs: Update the filename combobox when navigating through
20493           the ListView with the cursor keys. Fixes part 7 of bug #78446.
20494
20495 2006-05-22  Mike Kestner  <mkestner@novell.com>
20496
20497         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
20498         Fixes #78463.
20499
20500 2006-05-22  Mike Kestner  <mkestner@novell.com>
20501
20502         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
20503         requests. Fix a misspelled parameter and a copy paste exception error
20504         in Select.
20505
20506 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
20507
20508         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
20509           to get the same width/height (5/13) on X11 as the default font has on
20510           win32. This means that our DefaultFont emSize is smaller than the 
20511           the MS SWF equivalent (even thought the width/height stays the same)
20512
20513 2006-05-20  Jackson Harper  <jackson@ximian.com>
20514
20515         * MdiClient.cs:
20516         * MdiWindowManager.cs:
20517         * InternalWindowManager.cs: Make sure to use the border width from
20518         the theme.
20519
20520 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
20521
20522         * PrintDialog.cs: Implements printer details
20523
20524 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
20525
20526         * FileDialog.cs: Added focus handling for PopupButtonPanel.
20527           Fixes part 1 and 2 of bug #78446
20528
20529 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
20530
20531         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
20532           instead of sticking to the first ever calculated value
20533
20534 2006-05-19  Mike Kestner  <mkestner@novell.com>
20535
20536         * ComboBox.cs: fix mouse motion selection to use MousePosition and
20537         PointToClient, since Capture is set. Fixes #78344.
20538
20539 2006-05-19  Mike Kestner  <mkestner@novell.com>
20540
20541         * ListView.cs: match MS behavior in Details view where items are not
20542         drawn if Columns.Count == 0. 
20543         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
20544         Use a separate pen to draw the check, since changing the width affects
20545         the box as well.  Fixes #78454.
20546
20547 2006-05-18  Miguel de Icaza  <miguel@novell.com>
20548
20549         * ListView.cs: ArgumentOutOfRangeException, single versions of the
20550         exception should throw the name of the invalid argument.
20551
20552         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
20553         there are no files listed. 
20554
20555 2006-05-18  Jackson Harper  <jackson@ximian.com>
20556
20557         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
20558         up.
20559
20560 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
20561
20562         * Control.cs: Brought back our old UpdateZOrder method as a private
20563           function and switched our calls from UpdateZOrder to the new one.
20564           This fixes the Paint.Net canvas disappearing bug.
20565
20566 2006-05-18  Jackson Harper  <jackson@ximian.com>
20567
20568         * Theme.cs:
20569         * ThemeWin32Classic.cs:
20570         * InternalWindowManager.cs: Move the drawing into the theme,
20571         expose everything the theme should need from the window manager.
20572
20573 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
20574
20575         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
20576           from the call to NativeWindow to avoid walking up the parent chain
20577           further than needed (speeds up setting cursors and avoids setting
20578           the wrong cursor if a parent has another cursor defined)
20579         * Cursor.cs: When loading an icon as cursor, MS uses the center of
20580           the icon as hotspot, not what's contained as hotspot in the icon
20581           file. This fixes the perceived drawing offset seen with Paint.Net
20582         
20583 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
20584
20585         * XplatUIX11.cs: 
20586           - Store the calculated rectangle in Hwnd object and use it when 
20587             setting the client size
20588           - Force Toolwindows to always be type Dock, to ensure they're on top
20589
20590 2006-05-18  Mike Kestner  <mkestner@novell.com>
20591
20592         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
20593         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
20594         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
20595         Substantial refactoring to remove confusing nested classes. Coding
20596         standard and Get+Set->property refactorings.  Shift to index based
20597         highlighting in ComboListBox instead of constantly using IndexOf and
20598         Items[]. Add invalidations on resize for DropDownList to fix ugliness
20599         in FileDialog growth.  Draw borders manually since Simple mode needs
20600         to look like two independent controls.  Make listbox border
20601         conditional to DropDownStyle.  Improved OwnerDraw support.
20602
20603 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
20604
20605         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
20606         Don't set the disposed graphics to null, so we can throw the "right"
20607         exception if the graphics is reused later (added a flag to avoid 
20608         double disposing). Some behaviours are different under 2.0 and are
20609         filled under bug #78448.
20610
20611 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
20612
20613         * Control.cs: When double-buffering is enabled, we need to reset
20614           our graphics context between paint calls. Otherwise, any 
20615           transformations and other alterations on the context will 
20616           become cumulative (#77734)
20617
20618 2006-05-18  Mike Kestner  <mkestner@novell.com>
20619
20620         * ListView.cs: do focused item selection like MS on clicks. 
20621         Rework focus handling for ItemControl so LostFocus invalidates as
20622         well.
20623         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
20624         the ListView ItemControl has focus.
20625
20626 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
20627
20628         * XplatUIX11.cs: If client_window ends up being width or height zero
20629           due to border settings, move it off window inside whole_window (#78433)
20630
20631 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
20632
20633         * Mime.cs: Shrink the mime file cache correctly.
20634
20635 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
20636
20637         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
20638
20639 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
20640
20641         * XplatUIX11.cs (AddExpose): More sanity checks
20642
20643 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
20644
20645         * XplatUIX11.cs:
20646           - AddExpose: Don't add expose ranges outside the size of our
20647             window
20648           - Cast opacity values to Int32 to avoid crashes with certain
20649             values
20650           - Added disabled code paths that protect against illegal cross-
20651             thread painting (Developers.exe)
20652
20653 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
20654
20655         * ProgressBar.cs: Invalidate the control when it's resized
20656           since block size is based on control size. (#78388)
20657
20658 2006-05-16  Miguel de Icaza  <miguel@novell.com>
20659
20660         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
20661         of setting the incoming argument to the "reset" value, we set the
20662         this.datamember to string.empty (before we were invalidating the
20663         incoming data).   
20664
20665         Fixes 78420
20666
20667 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
20668
20669         * Form.cs: Only apply transparency settings after the form
20670           is created. (Fixes #77800)
20671
20672 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
20673
20674         * ApplicationContext.cs: Grab the HandleDestroyed event so
20675           we know when to fire OnMainFormClosed 
20676
20677 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
20678
20679         * Application.cs: Introduced sub-class to allow tracking of
20680           threads and centralized triggering of the event mess for
20681           ThreadExit, AppExit, etc..  (#76156)
20682
20683 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
20684
20685         * MimeIcon.cs:
20686           - Do not return a null icon index value for a mime subclass.
20687             Instead try the main mime type class too.
20688           - Seems that some newer distributions don't have a link to some
20689             gnome default icons anymore. So check the default gnome dir too.
20690           
20691
20692 2006-05-16  Jackson Harper  <jackson@ximian.com>
20693
20694         * MdiClient.cs: Don't paint the parent background image if we have
20695         our own background image.
20696
20697 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
20698
20699         * Control.cs:
20700           - PerformLayout: Do not shrink space filled by DockStyle.Fill
20701             controls, all filled controls are supposed to overlap (#78080)
20702           - UpdateZOrder is supposed to update the control's z-order in the
20703             parent's z-order chain. Fixed to behave like that
20704           - BringToFront: Removed obsolete code
20705           - SendToBack: Simplyfied
20706           - SetChildIndex: Trigger layout calculations when Z-order changes
20707             since layout is done by z-order
20708
20709 2006-05-16  Chris Toshok  <toshok@ximian.com>
20710
20711         [ fixes bug #78410 ]
20712         * DataGrid.cs (set_AlternatingBackColor): use
20713         grid_drawing.InvalidateCells instead of Refresh().
20714         (set_BackColor): call grid_drawing.InvalidateCells.
20715         (set_BackgroundColor): use Invalidate instead of Refresh.
20716
20717         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
20718         invalidate the cell area.
20719
20720 2006-05-15  Chris Toshok  <toshok@ximian.com>
20721
20722         [ fixes bug #78011 ]
20723         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
20724         on to DataGridPaintRow.
20725         (DataGridPaintRow): take a clip argument, and only draw the cells
20726         which intersect it.  same with the not_usedarea.
20727
20728         * Theme.cs (DataGridPaintRow) add @clip parameter.
20729
20730         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
20731         XplatUI.ScrollWindow.
20732         (ScrollToRow): same.
20733
20734         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
20735         with last column which was causing a gray swath to appear with the
20736         XplatUI.ScrollWindow code.
20737
20738 2006-05-15  Chris Toshok  <toshok@ximian.com>
20739
20740         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
20741         use XplatUI.ScrollWindow.
20742         (VerticalScrollEvent): use XplatUI.ScrollWindow.
20743
20744 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
20745
20746         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
20747
20748 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
20749
20750         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
20751           file since there are no equivalent X11 cursors
20752
20753 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
20754
20755         * MonthCalendar.cs : DateTimePicker should reflect selected date
20756           on mouse*up*, not mouse*down*. Fixed originally reported part of
20757           bug #76474.
20758
20759 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
20760
20761         * TabControl.cs : When argument index is equal or more than tab
20762           count, just ignore. Fixed bug #78395.
20763
20764 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
20765
20766         * Control.cs: Dispose all child controls when control is diposed (#78394)
20767
20768 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
20769
20770         * ColorDialog.cs: Finally it is possible to select the color with
20771           the text boxes
20772
20773 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
20774
20775         * PrintDialog.cs: Fix typo
20776
20777 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
20778
20779         * PrintDialog.cs: PrintDialog is not resizable
20780         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
20781           color. Made some ToolBar drawing methods protected virtual.
20782
20783 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
20784
20785         * PrintDialog.cs: Implementation of the PrintDialog
20786
20787 2006-05-12  Chris Toshok  <toshok@ximian.com>
20788
20789         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
20790         thumb, instead use MoveThumb.  This has the side effect of making
20791         most of the other thumb moving machinery use MoveThumb as well.
20792         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
20793         need to actually invalidate the rectangle where the new thumb will
20794         go.
20795         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
20796         We force an Update() after, so it's not as fast as it could be,
20797         but at least there's zero flicker and no droppings.
20798         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
20799         (UpdateThumbPos): add another argument (dirty), which says whether
20800         or not to calculate/add dirty regions which we later invalidate.
20801         For cases where we know we're going to use MoveThumb, we pass
20802         false for this.  Otherwise, pass true.
20803
20804 2006-05-12  Jackson Harper  <jackson@ximian.com>
20805
20806         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
20807         the status bar.
20808         
20809 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
20810
20811         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
20812           and GetClipRegion methods and UserClipWontExposeParent property.
20813         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
20814           overriding UserClipWontExposeParent property, setting to false, since
20815           Win32 handles the required expose messages to draw our clipped parent
20816           areas internally
20817         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
20818           PaintEventStart to set the user clip region if set.
20819         * Control.cs: 
20820           - Now internally tracking the Region for the control since we need to
20821             store it if the handle is not yet created and only set it when it
20822             becomes created. Before setting the region forced handle creation
20823           - Added code to draw the parents underneath a user-clipped region
20824         * Hwnd.cs: Added UserClip property
20825
20826 2006-05-12  Chris Toshok  <toshok@ximian.com>
20827
20828         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
20829         (set_Maximum): same.
20830         (set_Minimum): same.
20831         (set_SmallChange): same.
20832         (OnMouseUpSB): remove the call to refresh when releasing the
20833         thumb.  We shouldn't need it.
20834         
20835 2006-05-12  Miguel de Icaza  <miguel@novell.com>
20836
20837         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
20838         AutoSize set to None, we do not need to relayout everything, we
20839         just need to invalidate the current region.
20840
20841         (Draw): Do not draw the entire ClientArea, just redraw the
20842         clip area being passed.
20843
20844         * MdiClient.cs: Make MdiClient constructor with the Form argument
20845         internal. 
20846
20847 2006-05-12  Jackson Harper  <jackson@ximian.com>
20848
20849         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
20850         parents background image,  but strangely not their own.
20851         - (DrawStatusBarPanel): Take into account horizontal alignment
20852         when drawing the strings and icons.
20853
20854 2006-05-12  Mike Kestner  <mkestner@novell.com>
20855
20856         * ListBox.cs: avoid invalidations for focus when the collection is
20857         empty. 
20858
20859 2006-05-12  Chris Toshok  <toshok@ximian.com>
20860
20861         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
20862         invalidate the entire thumb area.  Call InvalidateDirty which
20863         limits the redraw to the thumb itself and surrounding pixels.
20864
20865         * XplatUIX11.cs (ScrollWindow): optimize copying.
20866         
20867 2006-05-12  Chris Toshok  <toshok@ximian.com>
20868
20869         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
20870         Figure out the positioning/layout in a single pass instead of
20871         multiple recursive invocations.  Speeds up the initial display of
20872         the data grid.  Also, make many things private that were
20873         originally public but unused outside this class.
20874
20875 2006-05-11  Jackson Harper  <jackson@ximian.com>
20876
20877         * MdiClient.cs: Improved layout code.
20878
20879 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
20880
20881         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
20882           not SelectedObject.
20883
20884 2006-05-11  Chris Toshok  <toshok@ximian.com>
20885
20886         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
20887         union of that will always be {0,0,width,height}.
20888
20889 2006-05-11  Jackson Harper  <jackson@ximian.com>
20890
20891         * Form.cs: Match MS's DefaultSize for forms (they must have
20892         changed the size in sp2).
20893
20894 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
20895
20896         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
20897
20898 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
20899
20900         * TextControl.cs : Fixed bug #78109. This incorrect position
20901           comparison caused crash on automatic line split.
20902         * TextBoxBase.cs : reduce duplicate code.
20903
20904 2006-05-10  Jackson Harper  <jackson@ximian.com>
20905
20906         * MdiClient.cs: Active form is only sent to the back when using
20907         the Next form functionality, when a form is clicked the current
20908         active shouldn't be sent to the back.
20909         - Layout the mdi windows when the container is first made visible.
20910         * Form.cs: Give the MdiClient a ref to the containing form when we
20911         create it.
20912         
20913 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
20914
20915         * LinkLabel.cs : link_font could be uninitialized, so populate one
20916           before actual use. Fixed bug #78340.
20917
20918 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
20919
20920         * XplatUIX11.cs : clipboard format native value is IntPtr.
20921           Fixed bug #78283.
20922
20923 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
20924
20925         * Control.cs: 
20926           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
20927             which is passed up the parent chain by DefWndProc
20928           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
20929             to DefWndProc (#77956)
20930         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
20931
20932 2006-05-10  Jackson Harper  <jackson@ximian.com>
20933
20934         * MdiClient.cs: We need to remove the controls from the mdi
20935         collection, when we close the window.
20936         * MdiWindowManager.cs: Special handling of closing mdi windows.
20937         * InternalWindowManager.cs: Make the close method virtual so the
20938         mdi window manager can handle it specially.
20939
20940 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
20941
20942         * DataGrid.cs:
20943           - Recalculate grid when the data source has changed
20944           - Matches styles provided by user from all data sources types
20945         * DataGridTableStyle.cs: For columns that provided by the user set the
20946         with the preferred value is there was unassigned.
20947         * CurrencyManager.cs: throw OnItemChanged event
20948
20949 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
20950
20951         * PictureBox.cs: Don't animate until handle is created. Start animation
20952           when handle is created.
20953
20954 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
20955
20956         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
20957           current codebase.
20958         * XEventQueue.cs: We don't need to provide the extra info
20959
20960 2006-05-10  Jackson Harper  <jackson@ximian.com>
20961
20962         * MdiClient.cs: If the mdi clients parent form has a background
20963         image set, we draw that background image for the mdi area's
20964         background.
20965
20966 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
20967
20968         * TextBoxBase.cs: Set IBeam cursor (#78347)
20969
20970 2006-05-10  Mike Kestner  <mkestner@novell.com>
20971
20972         * ToolBar.cs: fix some text padding issues with ButtonSize
20973         calculation. Update the default size to match MS documentation.
20974         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
20975         button size. Fixes #78296.
20976
20977 2006-05-10  Mike Kestner  <mkestner@novell.com>
20978
20979         * ListBox.cs: use is_visible for scrollbar positioning in case the
20980         control isn't on screen yet.  Fix off by one with Right vs Width
20981         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
20982         
20983 2006-05-10  Jackson Harper  <jackson@ximian.com>
20984
20985         * X11Dnd.cs: Drop to a control with another control on top of it.
20986         * ToolBar.cs: Work on a copy of the buttons list, so that it can
20987         be modified in click handlers. TODO: Look for similar problems in
20988         other controls.
20989
20990 2006-05-09  Jackson Harper  <jackson@ximian.com>
20991
20992         * Form.cs: Window managers need the old window state when setting
20993         window state now.
20994         * InternalWindowManager.cs: Allow the base mdi window manager to
20995         handle more of the MDI only stuff (like maximize buttons).
20996         * MdiWindowManager.cs: Fix some snafus in changing the window
20997         state.  Add all the menu functionality, for both popup and
20998         maximized menus.
20999         * MdiClient.cs: When a new form is selected the currently
21000         activated form is sent to the back, this matches MS.
21001         - Implement a new method to activate the next mdi child window.
21002
21003 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
21004
21005         * Control.cs: 
21006           - Added new InternalCapture method to allow controls to prevent
21007             the capture behaviour on the click handlers
21008           - Switched to use InternalCapture
21009         * ComboBox.cs:
21010           - Using InternalCapture to prevent mouse captures from being released
21011             on mouse button release (Fixes #78100)
21012         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
21013           returns Form borders if a caption is present. (Fixes #78310)
21014
21015 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
21016
21017         * TreeNode.cs: Changed serialization .ctor to not require every field
21018           to be present. (#78265)
21019         * OwnerDrawPropertyBag.cs: Added serialization .ctor
21020
21021 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
21022
21023         * MimeIcon.cs: for is faster than foreach for strings.
21024
21025 2006-05-05  Mike Kestner  <mkestner@novell.com>
21026
21027         * CheckedListBox.cs: update check handling code to not use selected.
21028         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
21029         behavior for visual feedback, motion response, shift/ctrl handling,
21030         and properly deal with all 4 selection modes. Updates to bounds
21031         handling logic.  Add scroll wheel support. [Fixes #77842]
21032
21033 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
21034
21035         * ListView.cs:
21036           - Moved adding of Implicit controls into .ctor. That way, subsequent
21037             creation of the controls will not cause them to think they are 
21038             toplevel windows (fixes #78200 header problem)
21039           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
21040           - Switched visibility setting of header control to use internal field
21041             to avoid triggering handle creation
21042           - Now checking if handle is created before causing a refresh when items
21043             are added (This makes us now match handle creation time with MS)
21044         * Splitter.cs: Removed loading of private splitter cursor, switched to
21045           Cursors version now that that is loading the right ones
21046         * Cursors.cs: Load proper splitter cursors from resources
21047         * Cursor.cs: Added second method of loading resource cursors for the 
21048           VS.Net users amongst us
21049
21050 2006-05-05  Mike Kestner  <mkestner@novell.com>
21051
21052         * ListView.cs: give header_control a minimum size based on the
21053         ListView size.
21054
21055 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
21056
21057         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
21058           window seems to do that with metacity, so set that type. (#78120)
21059
21060 2006-05-05  Mike Kestner  <mkestner@novell.com>
21061
21062         * ListViewItem.cs: fix Details mode checkbox layout bug.
21063         * ThemeWin32Classic.cs: draw a ListView column header for unused space
21064         at the end of the header, if it exists. [Fixes for #78200]
21065
21066 2006-05-04  Jackson Harper  <jackson@ximian.com>
21067
21068         * MdiClient.cs: Add a helper property to get the container form.
21069         * MdiWindowManager.cs: We have to make sure to use the menu origin
21070         when drawing the icons and buttons, this fixes maximized window
21071         icons/buttons on win32.
21072         * InternalWindowManager.cs: Reset the restore captions when a
21073         window goes from Maximized to Minimized and vice versa. Move the
21074         DrawMaximizedButtons into the MdiWindowManager source, tool
21075         windows can't be maximized. NOTE: This could use a little
21076         refactoring if time ever permits.
21077         
21078 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
21079
21080         * TextBox.cs: Add MWFCategoryAttributes
21081         * TextBoxBase.cs: Add MWFCategoryAttributes
21082         * Form.cs: Add MWFCategoryAttributes
21083
21084 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
21085
21086         * Control.cs: Add MWFCategoryAttributes
21087         * ScrollableControl.cs: Add MWFCategoryAttributes
21088
21089 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
21090
21091         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
21092           Divider is true. Fix a little glitch in PropertyToolBar
21093           drawing code
21094
21095 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
21096
21097         * Control.cs:
21098           - Dispose: Call base.Dispose, this causes the disposed event
21099             to be fired (and probably other, more important stuff)
21100           - SetVisibleCore: Set is_visible to true after creating the
21101             window so that the window still gets created invisible (if
21102             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
21103             to generate a WM_ACTIVE message
21104         * Form.cs: Call Dispose when we want to destroy the window, instead of
21105           just destroying the handle (Dispose will do that for us)
21106         * XplatUIX11.cs:
21107           - RootWindow also needs a queue, so we can properly process the
21108             property change events from RootWindow (like Activate)
21109           - Generatic synthetic WM_ACTIVE message when the active window is
21110             being destroyed
21111
21112 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
21113
21114         * LinkLabel.cs: Trigger a recalc of our label dimensions when
21115           bounds are changed
21116
21117 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
21118
21119         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
21120           for determining width and height (image might not be assigned if
21121           we're drawing an imagelist)
21122
21123 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
21124
21125         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
21126         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
21127           height from system
21128         * Theme.cs: No longer returns hardcoded menu height, instead calls
21129           new driver method
21130         * Form.cs (OnLoad): Scaling happens before triggering Load events 
21131           on MS (# 78257)
21132
21133 2006-05-01  Mike Kestner  <mkestner@novell.com>
21134
21135         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
21136
21137 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
21138
21139         * TextBoxBase.cs: Removed Fixme
21140         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
21141
21142 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
21143
21144         * XplatUIX11.cs:
21145           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
21146             the rectangle relative to the parent, considering borders. We
21147             don't really want that.
21148           - ScrollWindow: Fixed warning to be more understandable
21149         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
21150           scrollbars and scroll only the visible area
21151         * RichTextBox.cs: Removed debug output
21152
21153 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
21154
21155         * NumericUpDown.cs (Text): Just use base
21156         * UpDownBase.cs: Ensure txtView is created before using it
21157
21158 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
21159
21160         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
21161           casting to IntPtr to avoid 64bit overflow errors
21162
21163 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
21164
21165         * Control.cs:
21166           - AllowDrop: Don't force handle creation.
21167           - CreateHandle: Added call to tell driver if we're allowed to drop
21168
21169 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
21170
21171         * FileDialog.cs: Remember the last directory not only for the
21172           current instance but also for new FileDialog instances.
21173
21174 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
21175         
21176         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
21177           broke sending async messages
21178
21179 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
21180
21181         * XplatUIX11.cs:
21182           - ScrollWindow: Fixed method. We finally generate expose events again
21183             for scrolled areas. This was causing 'garbage' when scrolling
21184             textbox and other controls that used ScrollWindow
21185           - Switched from using the regular queue for paint events to the MS 
21186             model of 'generating' paint events when the queue is empty.
21187             We use the new XQueueEvent.Paint subclass to store which windows
21188             need painting.
21189           - AddExpose now takes the x/y/width/height of the exposed area
21190             and inserts the window into the paint queue if not already there
21191           - InvalidateWholeWindow: Switched to use new AddExpose method
21192           - UpdateMessageQueue: Added which queue to monitor for paint events
21193           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
21194             the unlikely case nothing above handles it. We reset the expose
21195             pending states to get them off the queue.
21196           - GetMessage: Now pulls a paint event if no other events are in the
21197             queue
21198           - Invalidate: Switched to new AddExpose method
21199           - PeekMessage: Updated to understand pending paint events
21200           - UpdateWindow: Fixed logic bug. We were only updating if the window
21201             didn't need updating. Also switched to sending WM_PAINT directly,
21202             like MS does.
21203         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
21204           and random access Remove(). The random access is needed to handle
21205           UpdateWindow() where a WM_PAINT is sent directly without accessing
21206           the queue.
21207         * ScrollBar.cs: Added Update() calls to cause immediate updates to
21208           allow for better feedback when scrolling. Scrollbars are small and
21209           the immediate update should make it 'feel' more responsive without
21210           slowing things down. ScrollBar still needs it's invaliate logic
21211           updated to not always invalidate the whole bar on certain changes.
21212
21213 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21214
21215         * Control.cs:
21216         (BackColor): if the control does not support a transparent background,
21217         return the default backcolor when the parent backcolor is transparent.
21218
21219 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
21220
21221         * Application.cs: Updated to new StartLoop/GetMessage API
21222         * RichTextBox.cs: Provide some output on RTF parsing errors
21223         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
21224           new queue_id argument to GetMessage and PeekMessage to allow faster
21225           handling of per-thread queues in drivers.
21226         * Hwnd.cs: Added Queue tracking and property
21227         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
21228         * XEventQueue.cs: Added thread trackingA
21229         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
21230         * XplatUIX11.cs:
21231           - Implemented new per-thread queue
21232           - GetMessage: Fixed return/break behaviour on several cases. We were
21233             returning stale messages in some cases, instead of just processing
21234             the next message
21235
21236 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
21237
21238         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
21239
21240 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
21241
21242         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
21243           fixed off-by-one comparisons between Width/Height and Right/Bottom.
21244
21245 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
21246
21247         * PropertyGridView.cs: Fix drop down width.
21248
21249 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
21250
21251         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
21252           a mess in DrawToolBar, so I removed one of them.
21253
21254 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
21255
21256         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
21257           needed (clip). Otherwise we get artifacts.
21258
21259 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
21260
21261         * FixedSizeTextBox.cs: Added constructor to allow specifying which
21262           dimension is fixed
21263         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
21264           and switched FixedSizeTextBox to only be fixed vertical (#78116)
21265         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
21266           if it matches the scale base font (avoids unneeded scaling)
21267
21268 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
21269
21270         * X11DesktopColors.cs: One gtk_init_check should be enough
21271
21272 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
21273
21274         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
21275           match MS behaviour
21276
21277 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
21278
21279         * TextBoxBase.cs: 
21280           - Generate OnTextChanged for Backspace even if we're only deleting
21281             the current selection
21282           - When setting the Text property, only select all text if the
21283             control does not have focus when it is being set. Otherwise
21284             just place the cursor at the beginning of the control
21285
21286 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
21287
21288         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
21289           Added a little helper to draw PropertyGrid ToolBar with a different
21290           border and a different BackColor.
21291         * PropertyGrid.cs: Some background parts didn't get painted with the
21292           correct background color. Added a class that helps us to draw the
21293           correct border for PropertyGridView and a class that helps us to
21294           draw ToolBars with a different backcolor
21295         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
21296
21297 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
21298
21299         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
21300         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
21301
21302 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
21303
21304         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
21305           into the palette entries. Also, since we're working on a copy
21306           we needed to copy the palette back onto the bitmap.
21307         * Cursor.cs: Same fix as XplatUIWin32.cs.
21308
21309 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
21310
21311         * ImageListStreamer.cs: Need to read the var (or we're off)
21312
21313 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
21314
21315         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
21316           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
21317           TextBoxBase.cs: Unused var fixes
21318         * AxHost.cs: Small 2.0 fix
21319         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
21320           as it seems that is what at least Metacity expects. This will make
21321           icons show up on 64bit platforms. We still have some 64bit size
21322           issues, though, since the startup app window size still won't match.
21323
21324 2006-04-25  Mike Kestner  <mkestner@novell.com>
21325
21326         * *.cs: cleanup newly reported exception var unused warnings.
21327
21328 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
21329
21330         * ThemeWin32Classic.cs: Button image alignment now matches exactly
21331           ms
21332
21333 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
21334
21335         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
21336           image. The image position is always the same, no matter if the
21337           button is pressed or not.
21338
21339 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
21340
21341         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
21342           selection and set the correct filename for SaveFileDialog.
21343           Patch by Emery Conrad.
21344
21345 2006-04-24  Mike Kestner  <mkestner@novell.com>
21346
21347         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
21348         check for item.X outside the ClientRect instead of item.Y. Fixes
21349         #78151.
21350
21351 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21352
21353         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
21354         trust that value blindly and do some sanity check. Fixes bug #77814.
21355
21356 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21357
21358         * ImageListStreamer.cs: save the mask as a 1bpp image.
21359
21360 2006-04-21  Mike Kestner  <mkestner@novell.com>
21361
21362         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
21363         pass Checked and Indeterminate to the Theme Engine. Improve
21364         encapsulation with ListBox.
21365         * ListBox.cs: Keep a StringFormat instead of calculating it every item
21366         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
21367         nested types.  Move all CheckState functionality to CheckedListBox.
21368         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
21369         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
21370         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
21371         single base list. Fix scrollbar sizing and placement to mirror MS.
21372         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
21373         used.
21374         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
21375         for CheckedListBox by using new DrawItemState info.  Center the
21376         checkboxes on the items. Use new StringFormat property.
21377
21378 2006-04-18  Jackson Harper  <jackson@ximian.com>
21379
21380         * Form.cs: MdiChildren don't do default locations the same way as
21381         regular forms.  This prevents a crash when trying to position the
21382         mdi windows.
21383
21384 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
21385
21386         * PropertyGridTextBox.cs: Formatting, copyright
21387         * PropertiesTab.cs: Formatting
21388         * PropertyGrid.cs: Formatting
21389         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
21390           click toggling of values
21391           
21392 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
21393
21394         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
21395         * Control.cs (.ctor): verify_thread_handle is static, don't reset
21396           every time a control is created
21397         * Application.cs: Removed obsolete EnableRTLMirroring method
21398
21399 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
21400
21401         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
21402         SelectedIndex to -1. Fixes bug #78121.
21403
21404 2006-04-17  Jackson Harper  <jackson@ximian.com>
21405
21406         * Binding.cs: Handle null values for Current and BindingContext.
21407         This occurs when binding is a little delayed.
21408         * CurrencyManager.cs: return null for Current when there are no
21409         items in the list.
21410         - Hookup to the listchanged event on the DataView and update
21411         bindings when the list is changed.  This fixes late binding of
21412         controls.
21413
21414 2006-04-17  Jackson Harper  <jackson@ximian.com>
21415
21416         * X11Dnd.cs:
21417         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
21418         Ringenbach.
21419
21420 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
21421
21422         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
21423           place
21424         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
21425           with the correct ButtonState
21426
21427 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
21428
21429         * XplatUIX11.cs: Improved distinguishing between window types to
21430           tell the WM a type closer to what the app wants (Fixes #78107)
21431
21432 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
21433
21434         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
21435           GrabHandle
21436
21437 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
21438
21439         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
21440           drawing code to reflect the size grip changes
21441
21442 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21443
21444         * ImageListStreamer.cs: fix handling of the mask that follows the main
21445         bitmap when deserializing and serialize it properly. The generated mask
21446         should better be a 1bpp image, but I'll do that later.
21447
21448 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
21449
21450         * FileDialog.cs: Show something in the DirComboBox on *nix if the
21451           path doesn't fit into some of our Current.Places
21452
21453 2006-04-13  Jackson Harper  <jackson@ximian.com>
21454
21455         * ComboBox.cs: Use borders instead of drawing our own decorations,
21456         try to obey correct rules for heights.
21457         * Theme.cs:
21458         * ThemeNice.cs:
21459         * ThemeClearLooks.cs:
21460         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
21461         this is now handled by borders.
21462         - Remove unused DrawListBoxDecorationSize method.
21463         
21464 2006-04-13  Mike Kestner  <mkestner@novell.com>
21465
21466         * MenuAPI.cs: null guarding for the disbled click check fixes crash
21467         reported by Alex.
21468
21469 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
21470
21471         * ThemeWin32Classic.cs: 
21472           - Fixed CPDrawStringDisabled
21473           - Corrected drawing of disabled menu items
21474           - Fixed drawing of disabled radio buttons (bug #78095)
21475           - Draw check in a disabled CheckBox with color ControlDark 
21476
21477 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
21478
21479         * Form.cs: Use the provided width when calculating the menu size;
21480           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
21481           and ClientSize.Width won't be updated yet
21482         * Application.cs: Use Visible instead of Show() to make form visible,
21483           this way we create the handle later and menusize is considered
21484
21485 2006-04-12  Mike Kestner  <mkestner@novell.com>
21486
21487         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
21488         reporting.
21489
21490 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
21491
21492         * TextBox.cs: Implemented context menu
21493
21494 2006-04-12  Mike Kestner  <mkestner@novell.com>
21495
21496         * ListView.cs: implement box selection. fixes #77838.
21497         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
21498
21499 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
21500
21501         * XplatUIX11.cs: Added setting of window type when transient window
21502           is created (metacity would move it otherwise)
21503         * X11Structs.cs: Added WINDOW_TYPE atoms
21504         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
21505           background (the control is Opaque but still wants transparent
21506           backgrounds)
21507
21508 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
21509
21510         * Control.cs: Added OnPaintBackgroundInternal to allow controls
21511           that set Opaque but don't mean it (like all ButtonBase-derived
21512           controls) to still draw their background
21513         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
21514           the background
21515
21516 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
21517
21518         * Control.cs (PaintControlBackground): Set the graphics object
21519           on our PaintEvent to null to prevent it from being disposed
21520           when the PaintEvent gets disposed
21521
21522 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
21523
21524         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
21525         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
21526
21527 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
21528
21529         * Control.cs: 
21530           - Added transparency check to BackColor property. Transparent
21531             backgrounds are only allowed if the control styles permit it
21532           - Added recursive painting of parent control background and
21533             foreground if a control with a transparent backcolor is drawn
21534             (Thanks to Tim Ringenback for providing his 'hack' as a base
21535              for this patch) Fixes #77985 and #78026.
21536           - Added Opaque style check before calling OnPaintBackground, no
21537             need to draw the background if the control is opaque
21538           - Removed ControlAccessibleObject owner variable (inherited from
21539             base, no need to define again)
21540           - Added some documentation links explaining the drawing events
21541             and styles
21542
21543 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
21544
21545         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
21546           that the affected control is the located at the left border of our
21547           parent (Fixes #77936)
21548
21549 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
21550
21551         * TextBoxBase.cs: When rendering disabled or readonly controls,
21552           draw the background with 'Control' instead of 'Window' color as
21553           long as the user hasn't specifically set a color
21554
21555 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
21556
21557         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
21558           since that won't be updated if the user types text (only if it's
21559           programatically set)
21560
21561 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
21562
21563         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
21564           layout changes do to app-triggered resizes will have the proper
21565           display rectangle for layout
21566
21567 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
21568
21569         * ThemeWin32Classic.cs:
21570           - Make use of the SystemBrushes and SystemPens wherever possible
21571           - Corrected some highlight colors
21572           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
21573             drawing
21574         * Theme.cs: Added Empty field to CPColor struct
21575
21576 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
21577
21578         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
21579           is displayed when calculating the display rectangle. Thanks to Mike
21580           for teaching me the err of my ways.
21581
21582 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
21583
21584         * ScrollableControl.cs:
21585           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
21586             (instead of 0,0) and we now return the real width/height instead of
21587             just the clientrectangle, adjusted for padding. The rectangle is
21588             now cached and created by the new CalculateDisplayRectangle method.
21589           - Created new CalculateDisplayRectange method, which basically does
21590             what get_DisplayRectangle() did originally, but now using the 
21591             right edge instead of DisplayRectangle to determine the size of
21592             our scrollbars
21593           - get_Canvas(): Fixed it to properly calculate canvas for 
21594             right/bottom controls which seem to be placed to the right/bottom
21595             of any controls that have a fixed location
21596           - Removed TODO that's taken care of
21597           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
21598             and SetDisplayRectLocation according to new MSDN2 docs
21599           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
21600             event when that is called, this is added for compatibility
21601           - ScrollControlIntoView(): Implemented.
21602           - Switched scrollbars to be implicit, they shouldn't be selectable
21603         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
21604           call it when the active control is set/changed
21605         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
21606         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
21607           implicit_control variable (used for native Win32 message generation)
21608         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
21609           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
21610         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
21611         * XplatUIStructs.cs: Added ScrollBarCommands enum
21612
21613 2006-04-10  Jackson Harper  <jackson@ximian.com>
21614
21615         * ButtonBase.cs:
21616         * CheckedListBox.cs:
21617         * ComboBox.cs:
21618         * DataGrid.cs:
21619         * DataGridView.cs:
21620         * Form.cs:
21621         * GroupBox.cs:
21622         * ListBox.cs:
21623         * PrintPreviewControl.cs:
21624         * ProgressBar.cs:
21625         * PropertyGrid.cs:
21626         * Splitter.cs:
21627         * StatusBar.cs:
21628         * TrackBar.cs:
21629         * UpDownBase.cs: Fixup base event overrides.
21630         
21631 2006-04-06  Mike Kestner  <mkestner@novell.com>
21632
21633         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
21634         all user-initiated value changes to min <= value <= max-thumbsz+1.
21635         (set_Value): check for vert/horiz when calculating new thumb position.
21636         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
21637         like MS does.
21638         (OnMouseMoveSB): refactor the thumb dragging code and refine
21639         invalidation logic to reduce flicker.
21640         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
21641         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
21642         (UpdateThumbPosition): small code readability cleanup
21643
21644 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
21645
21646         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
21647           different
21648
21649 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
21650
21651         * ThemeNice.cs: Use a better graphics effect when a button is pressed
21652
21653 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
21654
21655         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
21656         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
21657           This dramatically reduces the number of Pen.Dispose calls. 
21658           Where possible call ResPool methods only once instead of calling it
21659           over and over again (for example for the same color).
21660
21661 2006-04-06  Mike Kestner  <mkestner@novell.com>
21662
21663         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
21664         Also remove an unused private field on the collection. Fixes #77972.
21665
21666 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
21667
21668         * ThemeNice.cs: Added ToolBar drawing code
21669
21670 2006-04-06  Mike Kestner  <mkestner@novell.com>
21671
21672         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
21673         I'm assuming that means we need to look up the toplevel for the
21674         provided control. Fixes the crash trace in #77911 but exposes another
21675         crash in some strange reflection usage in NDocGui.
21676
21677 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
21678
21679         * ThemeNice.cs: Gave it a little silver touch and added Images
21680           method
21681         * FontDialog.cs: FontDialog is not resizable
21682         * FileDialg.cs: Added SizeGripStyle.Show
21683
21684 2006-04-05  Jackson Harper  <jackson@ximian.com>
21685
21686         * KeyboardLayouts.cs: Remove warning.
21687
21688 2006-04-05  Jackson Harper  <jackson@ximian.com>
21689
21690         * Control.cs: Enable OnPaintInternal so we can use it for drawing
21691         all of our controls instead of Paint +=.
21692         * ListBox.cs:
21693         * ListView.cs:
21694         * MenuAPI.cs:
21695         * MessageBox.cs:
21696         * NotifyIcon.cs:
21697         * ProgressBar.cs:
21698         * ScrollBar.cs:
21699         * Splitter.cs:
21700         * StatusBar.cs:
21701         * TabControl.cs:
21702         * TextBoxBase.cs:
21703         * ToolBar.cs:
21704         * TrackBar.cs:
21705         * UpDownBase.cs:
21706         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
21707         use OnPaintInternal. Remove Width/Height and Visible checks in
21708         paint handler, this is done at a higher level now.
21709         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
21710         * PaintEventArgs.cs: Add a handled flag so controls that don't
21711         want anymore painting after OnPaintInternal can make sure OnPaint
21712         isn't called.
21713
21714 2006-04-05  Mike Kestner  <mkestner@novell.com>
21715
21716         * Form.cs: fix the menu WndProc hacks to respect the native enabled
21717         state of the form, so that we don't process events when Modal dialogs
21718         are up. Fixes #77922.
21719
21720 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
21721
21722         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
21723           checking is done.
21724
21725 2006-04-05  Mike Kestner  <mkestner@novell.com>
21726
21727         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
21728
21729 2006-04-05  Mike Kestner  <mkestner@novell.com>
21730
21731         * ListView.cs (HeaderMouseMove): null guarding for the over column
21732         when setting up the drag_to_index.  Fixes #78015.
21733
21734 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
21735
21736         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
21737           in the taskbar. Transient windows seem to accomplish that.
21738
21739 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
21740
21741         * Form.cs:
21742           - Re-enabled CreateParams.X/Y code for FormStartPosition
21743           - Added code for manual placement when creating the Control
21744           - Incomplete patch to treat MDI forms differently when
21745             setting the ClientSizeCore. (Still need to figure out handling
21746             x/y coords there)
21747         * XplatUIX11.cs:
21748           - When we're explicitly setting the X/Y position of a non-Child
21749             window, let the WM know. Metacity really wants this.
21750
21751 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
21752
21753         * ThemeNice.cs: Added CPDrawButton
21754
21755 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
21756
21757         * ThemeNice.cs: Changed the color for focused buttons and activated
21758           the arrows for small scroll buttons.
21759
21760 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
21761
21762         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
21763           anymore. Changed some method modifiers to protected (virtual)
21764         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
21765           changes
21766         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
21767           Updated drawing of menus, buttons and progressbars; added
21768           CPDrawBorder3D 
21769
21770 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21771
21772         * ImageListStreamer.cs: implemented serialization/deserialization
21773         of the images.
21774
21775 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
21776
21777         * ThemeWin32Classic.cs:
21778           - Removed all the DrawFrameControl stuff; CPDrawButton,
21779             CPDrawCheckBox and CPDrawRadioButton are now handled directly
21780             inside the methods
21781           - Updated and corrected the drawing code of CPDrawButton,
21782             CPDrawCheckBox and CPDrawRadioButton to better match ms
21783           - Updated theme checkbox and radiobutton code to use the CP*
21784             methods
21785
21786 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
21787
21788         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
21789           bug is fixed
21790
21791 2006-03-31  Jackson Harper  <jackson@ximian.com>
21792
21793         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
21794         sometimes.
21795         * UpDownBase.cs: Don't CreateGraphics manually, use a
21796         Refresh. Ideally we would invalidate the correct areas here.
21797
21798 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
21799
21800         * XplatUIX11.cs: 
21801           - We now track the mapping state of windows. If a window (or 
21802             one of it's parents) is not mapped we no longer permit
21803             WM_PAINT messages to be generated since we'd otherwise get 
21804             lots of BadMatch X errors. Jackson did all the work figuring
21805             out the problem.
21806           - Destroying the caret if the window it's contained in is 
21807             destroyed. Can't use regular DestroyCaret method since it
21808             might fall into a drawing function (trying to remove the
21809             caret) and with that generate new BadMatch errors. Again,
21810             Jackson tracked this down.
21811           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
21812             make sure we send the messages to all windows. (The old code
21813             would send the WM_DESTROY to the window, and then all child
21814             windows would be 'gone' because the WM_DESTROY handle lookup
21815             would no longer find the destroyed window)
21816         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
21817         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
21818
21819 2006-03-31  Jackson Harper  <jackson@ximian.com>
21820
21821         * ScrollableControl.cs: Dont recalc if we are not visible.
21822
21823 2006-03-31  Mike Kestner  <mkestner@novell.com>
21824
21825         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
21826         the visibility branch.
21827
21828 2006-03-31  Jackson Harper  <jackson@ximian.com>
21829
21830         * ScrollBar.cs: Cap values when incrementing/decrementing.
21831
21832 2006-03-31  Mike Kestner  <mkestner@novell.com>
21833
21834         * MenuAPI.cs: setup menu.tracker for popup/context menus.
21835         * ToolTip.cs: guard against timer expirations with no active control.
21836         Not sure why it happened.
21837
21838 2006-03-31  Mike Kestner  <mkestner@novell.com>
21839
21840         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
21841         text.
21842         * ToolTip.cs: Position the tooltip based on where the cursor is at
21843         popup time, not at MouseEnter time.  Add a Down state so that we don't
21844         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
21845         positioning offset. Lookup DisplaySize at positioning time, since it
21846         can theoretically change during invocation.
21847         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
21848         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
21849
21850 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
21851
21852         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
21853           Fixes behaviour when the Text property of the box is String.Empty
21854
21855 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
21856
21857         * XplatUIX11.cs: Only send mouseleave for our client windows, not
21858           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
21859           a window)
21860
21861 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
21862
21863         * FileDialog.cs: Visual enhancement for the popup buttons in 
21864           PopupButtonPanel
21865
21866 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
21867
21868         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
21869           code
21870
21871 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
21872
21873         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
21874           highlighted menu items to match ms
21875
21876 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
21877
21878         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
21879
21880 2006-03-30  Mike Kestner  <mkestner@novell.com>
21881
21882         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
21883         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
21884         go active to account for HotLight to Selected transition.
21885         * MenuItem.cs: add internal Selected prop. Fill out the Status
21886         property by calculating it from item info. Add HotLight,
21887         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
21888
21889 2006-03-30  Mike Kestner  <mkestner@novell.com>
21890
21891         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
21892
21893 2006-03-29  Jackson Harper  <jackson@ximian.com>
21894
21895         * Form.cs: Implement TODO.
21896
21897 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
21898
21899         * PrintPreviewDialog.cs: Implemented missing methods and events; still
21900           missing proper dialog setup in the constructor
21901
21902 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
21903
21904         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
21905         * Control.cs:
21906           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
21907           - Fixed ResetBindings and removed TODO
21908           - Added check for cross-thread calls to get_Handle()
21909           - Added Marshaller attribute for set_Font to satisfy class status
21910         * FontDialog.cs: Removed TODOs that seemed implemented
21911         * UpDownBase.cs: Removed unneeded TODO and Fixme
21912         * MessageBox.cs: Implemented support for Default button and removed TODO
21913         * FileDialog.cs: Removed obsolete TODO
21914         * DomainUpDown.cs: Removed obsolete TODO
21915         * ButtonBase.cs: Removed obsolete TODO
21916         * XplatUIWin32.cs: Removed obsolete TODO
21917         * Form.cs:
21918           - Removed obsolete TODO
21919           - Calling CheckAcceptButton when the acceptbutton is changed to allow
21920             internal status updates
21921           - Making sure the active control is selected when the control is created
21922         * CurrencyManager.cs: Removed obsolete TODO
21923
21924 2006-03-29  Mike Kestner  <mkestner@novell.com>
21925
21926         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
21927         of PrintPreviewDialog and RichTextBox.
21928
21929 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
21930
21931         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
21932           DarkDark, Light and LightLight colors for a specific color
21933         * ThemeWin32Classic.cs:
21934           - Use Button drawing code to draw RadioButtons and CheckBoxes with
21935             Appearance = Button 
21936           - Make use of the new ResPool helper CPColor
21937           - Draw ProgressBar and StatusBar with correct 3D borders
21938
21939 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
21940
21941         * ColorDialog.cs: Return selected color. Fixes bug #77940.
21942
21943 2006-03-28  Mike Kestner  <mkestner@novell.com>
21944
21945         * ListView.cs: fix Icon layout to plan for scrollbar widths when
21946         calculating col/row counts.
21947
21948 2006-03-28  Mike Kestner  <mkestner@novell.com>
21949
21950         * ColumnHeader.cs:
21951         * ListView.cs:
21952         * ListViewItem.cs:
21953         * Menu.cs: 
21954         switch to explicit interface method implementation for some methods
21955         corcompare identifies as inconsistent with MS.
21956
21957 2006-03-28  Mike Kestner  <mkestner@novell.com>
21958
21959         * MainMenu.cs: 
21960         * Menu.cs:
21961         add a few missing methods from the class status output.
21962
21963 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
21964
21965         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
21966           correct.
21967
21968 2006-03-28  Mike Kestner  <mkestner@novell.com>
21969
21970         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
21971
21972 2006-03-27  Mike Kestner  <mkestner@novell.com>
21973
21974         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
21975         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
21976
21977 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
21978
21979         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
21980
21981 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
21982
21983         * ThemeWin32Classic.cs:
21984           - GroupBox: Inserted a little gap between the text and the lines
21985             on the right side
21986           - Made the code in CPDrawBorder3D more readable
21987           - Corrected the drawing location of the up and down arrows in 
21988             CPDrawScrollButton
21989
21990 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
21991
21992         * ControlPaint.cs: Corrected line widths in DrawBorder for
21993           ButtonBorderStyle Inset and Outset
21994
21995 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
21996
21997         * ThemeWin32Classic.cs:
21998           - Rewrote the totally broken CPDrawBorder3D method. That was
21999             one of the main problems for the terrific ThemeWin32Classic
22000             look
22001           - Updated and corrected Button drawing
22002           - Correct the dimensions of the SizeGrip to match ms ones
22003           - Removed a small drawing glitch in DrawComboBoxEditDecorations
22004         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
22005           Border3DStyle.Sunken to match ms.
22006
22007 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
22008
22009         * ThemeWin32Classic.cs: First small part of the "de-uglify
22010           ThemeWin32Classic" effort, SizeGrip
22011
22012 2006-03-24  Jackson Harper  <jackson@ximian.com>
22013
22014         * XplatUIX11.cs: Give a max idle time of one second, this matches
22015         MS and forces an Idle event every second when there are no other
22016         events in the queue.
22017
22018 2006-03-24  Mike Kestner  <mkestner@novell.com>
22019
22020         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
22021         * ListView.Item.cs: fix layout issues with null image lists and images
22022         smaller than checkbox size.
22023         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
22024         mode like MS does.  It's weird, but consistent.  ;-)
22025         Fixes #77890.
22026
22027 2006-03-24  Mike Kestner  <mkestner@novell.com>
22028
22029         * ListView.cs: Scroll wheel support for the item control.  Fixes
22030         #77839.
22031
22032 2006-03-23  Jackson Harper  <jackson@ximian.com>
22033
22034         * ScrollableControl.cs: Special case negative sized areas, not
22035         zero.
22036         * MonthCalendar.cs: Save the rect of the clicked date so we can
22037         use it for invalidation.
22038         - Try to cut down on the number of invalidates
22039         - Invalidate the rect the mouse is over and was over when moving
22040         the mouse, so we get the focus box following the cursor.
22041
22042 2006-03-23  Mike Kestner  <mkestner@novell.com>
22043
22044         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
22045         focus rectangle drawing. Fixes #77835.
22046
22047 2006-03-23  Mike Kestner  <mkestner@novell.com>
22048
22049         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
22050         the if and else if and reverting back to the original == check on the
22051         None conditional.
22052
22053 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
22054
22055         * FontDialog.cs: Update the example panel if the selected index of
22056           the fontListBox changes.
22057
22058 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
22059
22060         * FileDialog.cs: Make FileDialog remember which directory it was in
22061           last in the same execution.
22062
22063 2006-03-22  Mike Kestner  <mkestner@novell.com>
22064
22065         * FileDialog.cs: make the DropDownMenu on the toolbar display
22066         RadioChecks since they are mutually exclusive and that's what MS does.
22067
22068 2006-03-22  Mike Kestner  <mkestner@novell.com>
22069
22070         * Theme.cs: add Color param to CPDrawMenuGlyph.
22071         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
22072         checks and radio marks and arrows are visible on highlighted items.
22073         * ControlPaint.cs: update to use new Theme signature.
22074
22075 2006-03-22  Mike Kestner  <mkestner@novell.com>
22076
22077         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
22078         is active. Fixes #77870.
22079
22080 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
22081
22082         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
22083           to be focused/selected after startup
22084
22085 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
22086
22087         * ColorDialog.cs: 
22088           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
22089             CustomColors and ShowHelp properties
22090           - Some internal rewrites to get better results when using the
22091             ColorMatrix
22092
22093 2006-03-22  Mike Kestner  <mkestner@novell.com>
22094
22095         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
22096         HoverSelection.  Fixes #77836.
22097
22098 2006-03-22  Mike Kestner  <mkestner@novell.com>
22099
22100         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
22101         ToggleButtons.  (De)Sensitize the Back button around a stack count of
22102         1, not 0.  Update ButtonSize based on a pixel count of the win32
22103         control.  Adjust the toolbar size/location for new button size.
22104
22105 2006-03-22  Jackson Harper  <jackson@ximian.com>
22106
22107         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
22108         true.
22109         * ScrollBar.cs: When doing increments and decrements we need to
22110         set the Value property so that ValueChanged gets raised. A
22111         possible optimization here would be to make an internal SetValue
22112         that doesn't invalidate immediately.
22113         * ToolTip.cs: Tooltips get added to their container (when
22114         supplied) so they get disposed when the container is disposed.
22115         - Don't create tooltips for String.Empty. This prevents all these
22116         little 2-3 pixel windows from showing up when running nunit-gui
22117         and driving me mad.
22118         * Form.cs: Don't set topmost when setting the owner if the handles
22119         haven't been created yet.  The topmost set will happen when the
22120         handles are created.
22121
22122 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
22123
22124         * XplatUIX11.cs:
22125           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
22126           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
22127             visible (to allow them to recalculate their sizes)
22128
22129 2006-03-21  Mike Kestner  <mkestner@novell.com>
22130
22131         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
22132         methods. Removed a ton of redundant code.  Still not really happy with
22133         the border rendering, but I think that's mainly because of the
22134         ControlDarkDark being black instead of a dark grey. Depending on how 
22135         close we want to be, we might want to revisit those color choices.
22136         Among the new features added during the refactor were DropDownArrow
22137         pressed rendering, Disabled image rendering.  Proper flat appearance
22138         boundary rendering.  Removed the Divider and Wrapping dividers since I
22139         can't figure out any combination of themes and conditions to make the
22140         MS control draw a horizontal line on a toolbar despite what the
22141         Divider property docs indicate.
22142         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
22143         conditions and incorrect layout.  Updated to coding standard.
22144         * ToolBarButton.cs: refactored layout and positioning code from
22145         ToolBar to here.  Invalidate wherever possible instead of forcing
22146         redraws of the whole toolbar. 
22147         (Known remaining issues: explicit ButtonSize smaller than provided
22148         images.)
22149
22150 2006-03-21  Mike Kestner  <mkestner@novell.com>
22151
22152         * ContextMenu.cs (Show): use the position parameter instead of just
22153         showing at the MousePosition.
22154
22155 2006-03-21  Jackson Harper  <jackson@ximian.com>
22156
22157         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
22158         control handle this.
22159         * TreeNodeCollection.cs: If we are clearing the root node we need
22160         to reset top_node so calcs can still happen.
22161         * ThemeWin32Classic.cs: This is a Flags so we need to check
22162         properly.
22163         
22164 2006-03-21  Jackson Harper  <jackson@ximian.com>
22165
22166         * DataGrid.cs: Create columns when the binding context has been
22167         changed.
22168         * X11Structs.cs: Keysyms are uints.
22169         - Add size to fix build.
22170
22171 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
22172
22173         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
22174           XplatUIOSX.cs: 
22175           - Added ResetMouseHover method to allow controls to retrigger
22176             hovering if they need it more than once
22177           - Implemented MouseHoverTime and MouseHoverSize properties
22178         * Timer.cs: Start() must reset the interval
22179         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
22180           properties
22181
22182 2006-03-21  Jackson Harper  <jackson@ximian.com>
22183
22184         * X11Keyboard.cs: improved layout detection. Move the nonchar
22185         tables into this file.
22186         * KeyboardLayouts.cs: Move the tables into resource files.
22187
22188 2006-03-21  Mike Kestner  <mkestner@novell.com>
22189
22190         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
22191
22192 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
22193
22194         * Mime.cs: Various speed optimizations. Looking up mime types
22195           is now 2 times faster than before
22196
22197 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
22198
22199         * CreateParams.cs: Added internal menu field
22200         * Control.cs: 
22201           - Switched call order for UpdateBounds; now we always call
22202             the one that also takes ClientSize, and we're calculating the 
22203             client size via driver method in the others. The previous
22204             method of tracking client size by difference wasn't working
22205             for forms where even the starting client size wouldn't match
22206             the overall form size (due to borders) (Part of fix for #77729)
22207           - CreateParams(): Do not use parent.Handle unless the handle is
22208             already created. Causes havoc with Nexxia and throws off our
22209             creation of controls
22210         * XplatUIX11.cs:
22211           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
22212           - Switched handling of ConfigureNotify over to new PerformNCCalc 
22213             method (consolidates code)
22214           - Changed RequestNCRecalc to use new PerformNCCalc method
22215           - Added calls to RequestNCRecalc when menus and borders are changed
22216             to allow app to set NC size. (Part of fix for #77729) This matches
22217             when MS send a WM_NCRECALC on Win32 windows.
22218           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
22219             (Part of fix for #77729). This matches what MS does, they also
22220             send that message when the form is made visible.
22221           - XException.GetMessage: Improved usability of X errors by including
22222             a translation of the window into Hwnd and Control class
22223           - Improved debug info for window creation, reparenting and destruction
22224           - Created helper method WindowIsMapped() [Currently not used]
22225         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
22226         * Form.cs:
22227           - CreateParams: Now setting our menu on the new internal menu field
22228           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
22229             avoid calculating the same property twice
22230         * Hwnd.cs:
22231           - Improved usability of ToString() for debugging purposes
22232           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
22233             determine the height of the menu, instead of just the font. This
22234             required to also create a graphics context and to keep a bmp 
22235             around (for performance reasons)
22236
22237 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
22238
22239         * MenuAPI.cs: Added OnMouseUp method
22240         * Form.cs:
22241           - Now remembering the requested client size, avoids size errors
22242           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
22243             instead of base if the menu is active. This is required due to
22244             control now capturing and releasing on down/up and it would
22245             prematurely release our menu capture
22246
22247 2006-03-17  Jackson Harper  <jackson@ximian.com>
22248
22249         * KeyboardLayouts.cs: Add the czech layouts.
22250
22251 2006-03-16  Jackson Harper  <jackson@ximian.com>
22252
22253         * Control.cs: Use the viewport space when sizing not the controls
22254         client size, so things like ScrollableControl that effect the
22255         viewport size (when scrollbars are added) are computed correctly.
22256         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
22257         of ManagerEntrys.
22258         - Handle creating BindingManagers for null data sources.
22259         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
22260         source, otherwise when rows are added they are added to the 'fake'
22261         datasource and we will crash when trying to set the position in
22262         those rows.
22263         - Use Implicit scrollbars on the datagrid so they arent
22264         selectable.
22265         
22266 2006-03-16  Jackson Harper  <jackson@ximian.com>
22267
22268         * Binding.cs:
22269         * InternalWindowManager.cs:
22270         * MdiWindowManager.cs:
22271         * X11Keyboard.cs: I really want Mike to love me again (fix
22272         compiler warnings).
22273
22274 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
22275
22276         * DataGrid.cs:
22277           - OnMouseDown: Switch to editing mode when clicking on the cell
22278                          even if we're clicking on the cell that's currently 
22279                          selected
22280           - ProcessGridKey: Left/Right now wrap like MS.Net does
22281           - ProcessGridKey: Tab now knows to add a new row when tab is
22282                             pressed in the cell of the last column of the 
22283                             last row
22284           - ProcessGridKey: Enter now adds another row  if pressed in the last
22285                             row and selectes the new row, same column cell
22286           - ProcessGridKey: Home/End navigate columns, not rows, like 
22287                             originally implemented
22288           - Broke ProcessKeyPreview code out into an extra Internal method
22289             so it can be called from the edit code
22290         * DataGridTextBox.cs (ProcessKeyMessage):
22291           - Switched to accept Tab keypresses
22292           - Added F2 handling to allow jumping to the end of the edited cell
22293           - Added logic to allow moving caret left/right inside edited cell
22294             and making the edited cell jump when the caret hits cell borders
22295           - Tab and Enter are now passed to the datagrid after being handled
22296         * TextBoxBase.cs:
22297           - Removed capture code now that Control handles it
22298           - set_SelectionStart now ensures caret is visible
22299
22300 2006-03-16  Jackson Harper  <jackson@ximian.com>
22301
22302         * TrackBar.cs: Debackwards the increment/decrement for handling
22303         mouse clicks on the bar with vertical trackbars.
22304         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
22305         bottom to match MS.
22306
22307 2006-03-16  Mike Kestner  <mkestner@novell.com>
22308
22309         * ListView.cs: make shift/ctrl keyboard and mouse selection 
22310         consistent with the MS control. Fix a bug in
22311         SelectedListViewItemCollection.Clear that was pissing me off for the
22312         better part of a day because the collection was being altered
22313         underneath us as we walked the list.
22314
22315 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
22316
22317         * Control.cs: Not sure how we could miss this so long, but it seems
22318           that MS.Net has Capture set all the way from before calling 
22319           OnMouseDown through sending the mouse events until after
22320           OnMouseUp. This will fix DataGrid's selection being set to end
22321           at the location of the MouseUp.
22322
22323 2006-03-15  Jackson Harper  <jackson@ximian.com>
22324
22325         * BindingContext.cs: Check the binding after its added so that it
22326           can initialize the binding managers and hookup to events.
22327         * Binding.cs: Data members seem to sometimes include rows/cols in
22328           the format Row.Column we now take this into account.
22329           - Hookup to the position changed event so we can update the
22330           control when the position has changed in the data set.
22331         * CurrencyManager.cs: Take into account the row/col naming
22332           convention when creating dataset tables.
22333         * BindingContext.cs: Using a newer better way of storing
22334           datasource/datamember pairs.  Hopefully this better matches MS for
22335           looking up binding managers.
22336
22337
22338 2006-03-15  Jackson Harper  <jackson@ximian.com>
22339
22340         * BindingContext.cs: The currency manager needs the data member
22341         name, if the member is a data set we use the name to find the
22342         correct table.
22343         * CurrencyManager.cs: When creating the list prefer an IList over
22344         an IListSource.
22345         - Attempt to create a DataTable from a DataSet (TODO: might need
22346         some better error checking here, although MS doesn't seem to have much)
22347         - If we have a DataTable create a view and use it as our list.
22348
22349 2006-03-15  Mike Kestner  <mkestner@novell.com>
22350
22351         * ListView.cs: keep a matrix of the icon mode layout to facilitate
22352         keyboard navigation. Support Up/Down/Left/Right selection correctly
22353         for all 4 View modes.
22354         * ListViewItem.cs: add internal row/col fields for icon layouts.
22355
22356 2006-03-15  Jackson Harper  <jackson@ximian.com>
22357
22358         * TabControl.cs: Redraw the tabs when we resize so their newly
22359         calculated sizes are drawn on screen.
22360         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
22361         composite characters.
22362         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
22363         - filter events so that composite characters can be created
22364         patches by peter
22365         * X11Structs.cs: Add XIMProperties enum.
22366
22367 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
22368
22369         * Control.cs (BringToFront, SendToBack): Don't use window or handle
22370           unless it's created
22371
22372 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
22373
22374         * Control.cs (PerformLayout): We don't need to consider visiblity
22375           for anchoring, only for docking. This fixes 'whacky' alignment
22376           in listbox and other controls that use implicit scrollbars after
22377           the previous PerformLayout patch
22378         * ListBox.cs: Switched to use implicit scrollbars
22379           
22380 2006-03-14  Mike Kestner  <mkestner@novell.com>
22381
22382         * ToolBar.cs: 
22383         * VScrollBar.cs:
22384         - chain up the "new event" overrides to base and use
22385         OnEvent to raise them.  Part of fix for bug #76509.
22386
22387 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
22388
22389         * FileDialog.cs: Do not select an item in the parent directory
22390           on backspace
22391
22392 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
22393
22394         * Control.cs (PerformLayout): It would seem that we considered
22395           invisible windows for our layout. Not quite the right thing
22396           to do. Now we don't any longer, thereby fixing bug #76889.
22397
22398 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
22399
22400         * Control.cs (CanFocus): I goofed. A control can have focus 
22401           even though it's not selectable. Made it match MS docs.
22402
22403 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
22404
22405         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
22406           center by default (fixes #76895)
22407         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
22408           all uses of Border3DSides.All with the explicit ORd together
22409           Left|Right|Top|Bottom because I assume that nobody was aware 
22410           that All also implies a center fill. Most places I checked had
22411           a fill right above.
22412         * ProgressBarStyle.cs: Added
22413
22414 2006-03-13  Mike Kestner  <mkestner@novell.com>
22415
22416         * ListView.cs: fix breakage in drag shadow header positioning 
22417         from Peter's csc compilation fix.
22418
22419 2006-03-13  Mike Kestner  <mkestner@novell.com>
22420
22421         * ListView.cs: fix NRE produced by backspacing twice in a focused
22422         FileDialog.
22423
22424 2006-03-13  Mike Kestner  <mkestner@novell.com>
22425
22426         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
22427
22428 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
22429
22430         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
22431           be changed
22432         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
22433           the allowed size before making programmatic size changes
22434
22435 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
22436
22437         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
22438           set, metacity is broken and will still use the emty sizes in 
22439           the struct. (Fix for #77089)
22440
22441 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
22442
22443         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
22444           WindowExStyles and marked both enums as Flags
22445         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
22446           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
22447           to match WindowStyles split
22448         * XplatUIX11.cs:
22449           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
22450           - Updated to match WindowStyles split
22451         * XplatUIWin32.cs:
22452           - Fixed FosterParent creation, was using ExStyle on the Style field
22453             (This should help with Popup focus issues)
22454           - Updated to match WindowStyles split
22455
22456 2006-03-13  Jackson Harper  <jackson@ximian.com>
22457
22458         * MdiWindowManager.cs: Use the system menu height. Fixes some
22459         strange sizing issues.
22460
22461 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
22462
22463         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
22464         * TextBoxBase.cs:
22465           - Scroll to caret after inserting text (#77672)
22466           - Make scroll range one pixel higher, fixes off-by-one error (and
22467             makes underlines visible on the last line)
22468
22469 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
22470
22471         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
22472           the keyboard state from being stuck with keys in 'pressed' state when
22473           focus is switched away via keyboard
22474         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
22475           reset the keyboard if no X11 KeyUp events are expected to come
22476         * X11Structs.cs: Switched type of Visible to bool to match driver
22477
22478 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
22479
22480         * TextControl.cs:
22481           - Switched caret to be just 1 pixel wide, matches MS and looks less
22482             clunky
22483           - Moved caret display 1 pixel down from the top of the control
22484             to improve view
22485           - InsertCharAtCharet: Update the selection start if moving the caret
22486             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
22487           - No longer always creating the caret when the caret methods are
22488             called. Only the actual ShowCaret/HideCaret will do that now
22489           - Only setting caret visible if the owner control has focus
22490           - UpdateView: Added invalidation-shortcut logic for center and right 
22491             aligned text. Previously we'd update all according to the left
22492             logic which caused drawing errors. Also fixed height of invalidated
22493             areas, now properly invalidating the whole area (was off-by-one)
22494           - owner_HandleCreated: Always generate the document when the
22495             handle is created; this ensures that 
22496         * TextBoxBase.cs:
22497           - Fixed situation where caret would disappear under the right
22498             window border, also improved scrolling behaviour on left-
22499             aligned textboxes
22500           - Fixed right-aligned textboxes to have a border to the
22501             right instead of the caret being under the right border
22502         * XplatUIX11.cs:
22503           - Switched from 'nested' to simple visible/not visible tracking 
22504             for caret (part of fix for #77671)
22505           - No longer passing through translated FocusIn/FocusOut messages
22506             since we were notifying too often and the wrong windows. Instead
22507             we just notify our focussed window of receiving or loosing focus
22508         * XplatUIWin32.cs: Switched from 'nested' show/hide 
22509           counting for caret to simple visible yes/no behaviour (part of 
22510           fix for #77671)
22511
22512 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
22513
22514         * Mime.cs: Remove debug code...
22515
22516 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
22517
22518         * MimeGenerated.cs: Removed
22519         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
22520           and subclasses) from /usr/(local/)share/mime and
22521           $HOME/.local/share/mime.
22522
22523 2006-03-10  Jackson Harper  <jackson@ximian.com>
22524
22525         * MdiWindowManager.cs: Recalc the NC area when a window is
22526         maximized/restored so that the menu area is drawn on forms that
22527         don't have a menu.
22528
22529 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
22530
22531         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22532           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
22533           us to force a WM_NCCALCRESIZE message being sent. This is needed
22534           for MDI maximizing.
22535
22536 2006-03-10  Jackson Harper  <jackson@ximian.com>
22537
22538         * Form.cs: We need to use the ActiveMenu when calculating menu
22539         height.
22540         - Fix nullref when the window manager hasn't been created yet.
22541         * Control.cs: Fix nullref when we try to bring a control to the
22542         front that has no parent.
22543         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
22544         height.
22545         - Add a dummy item to the maximized menu so it always has the
22546         correct height. Otherwise when there are no menus we don't get our
22547         icon and buttons.
22548         
22549
22550 2006-03-10  Jackson Harper  <jackson@ximian.com>
22551
22552         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
22553         stuff.
22554         * Form.cs: Make the window_state internal so the window managers
22555         can track it.
22556         - When an MDI child is maximized let its window manager create the
22557         main menu (so it can add its icon).
22558         - Notify the window managers of state changes
22559         - Let the window manager paint its buttons and handle button
22560         clicks on the menu when it is maximized.
22561         * InternalWindowManager.cs: Move the prev_bounds into the mdi
22562         window manager, since tool windows don't use it, only mdi windows.
22563         - Tell the main form that we don't want it to handle NCPAINT
22564         itself to avoid extra painting.
22565         - Handle clicks on a maximized windows menu.
22566         - Handle window state changes
22567         - Handle minimize/maximize clicks correctly by setting the window state.
22568         * MdiWindowManager.cs: Add an icon menu that (the menu you get
22569         when clicking on the forms icon).
22570         - New method to create a forms maximized menu. This is its normal
22571         menu + an icon.
22572         - Handle window state changes.
22573         - Handle sizing of maximized windows.  Maximized windows are just
22574         drawn bigger then the parent visible area. All controls are still
22575         there, they are just outside the visible area (this matches windows).
22576         * MdiClient.cs: No scrollbars when a child window is maximized.
22577         - Let the children windows figure out how big they should be when
22578         sizing maximized windows.
22579         - Implement a version of ArrangeIconicWindows somewhat similar to
22580         Windows version.  There are some little differences, but I don't
22581         think any app will rely on the layout of minimized mdi windows.
22582
22583 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
22584
22585         * Padding.cs: Several fixes to allow compiling with csc 2.0
22586
22587 2006-03-09  Jackson Harper  <jackson@ximian.com>
22588
22589         * Menu.cs:
22590         * MenuItem.cs: Cheap hack so we can add items to the list without
22591         the events being raised.  This allows adding mdi items during
22592         drawing. TODO: Should probably find a better time to add the items.
22593
22594 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
22595
22596         * ThemeWin32Classic.cs:
22597           - CheckBox_DrawText: Added logic to not wrap if not enough space
22598             is available (Fix for bug #77727)
22599           - RadioButton_DrawText: Added logic not to wrap if not enough
22600             space is available (Fix for bug #77727). Also removed some
22601             duplicate code, DrawString always drawing the regular text
22602             before hitting the if statement.
22603
22604 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
22605
22606         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
22607
22608 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
22609
22610         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
22611         * ContainerControl.cs: Partial implementation of some 2.0 scaling
22612           methods. Moved the new 2.0 properties into alphabetical order with
22613           other properties and added MonoTODO tags
22614
22615 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
22616
22617         * AutoScaleMode.cs: Added. Fix build.
22618
22619 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
22620
22621         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
22622           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
22623           and was requiring premature handle creation for calls from above
22624         * Form.cs, Control.cs: Removed handle arguments from calls to
22625           CalculateClientRect()
22626
22627 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
22628
22629         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
22630           drag_column.column_rect is MarshalByRef and can't be used that way
22631
22632 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
22633
22634         * AxHost.cs: Added deserialization constructor for 
22635           AxHost+State (fixes 77743)
22636
22637 2006-03-09  Mike Kestner  <mkestner@novell.com>
22638
22639         * ListView.cs: 
22640         - Added column drag reordering for details view.
22641         - fixed behavior when mouse is dragged off column and
22642         AllowColumnReorder is false.
22643         * ColumnHeader.cs: clone the format too in Clone.
22644         * Theme.cs: add DrawListViewHeaderDragDetails method.
22645         * ThemeWin32Classic.cs:
22646         - impl new method for drawing drag column shadows and targets.
22647         - support column offset for details mode in DrawListViewItem.
22648
22649 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
22650
22651         * TextControl.cs: Reset the char_count when the document is cleared
22652           (Fixes bug reported on mono-winforms mailing list)
22653
22654 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
22655
22656         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
22657           of calling base we simply process the key ourselves, since both
22658           DefWindowProc and the handled method would set m.Result. 
22659           (Fixes #77732)
22660
22661 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
22662
22663         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
22664           method also moves the window; instead implemented a copy of
22665           Control.ScaleCore (Part of fix for #77456)
22666         * TextBoxBase.cs: 
22667           - Created new CreateGraphicsInternal method to allow providing
22668             a graphics context when no handle is created without triggering
22669             handle creation. (Part of fix for #77456)
22670           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
22671         * TextControl.cs: 
22672           - Switched Constructor to require TextBoxBase instead of Control (to
22673             allow uncast access to CreateGraphicsInternal)
22674           - Safeguarded use of owner.Handle property. No longer accessing it
22675             unless the handle is already created.
22676           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
22677           - Now triggering a recalc when owning control becomes visible
22678         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
22679           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
22680           premature handle creation (Part of fix for #77456)
22681         * Control.cs:
22682           - We now only destroy our double-buffering buffers when the
22683             control is resized or disposed, but not when visibility
22684             changes. (The code even re-created them twice every time)
22685           - Now requiring a redraw of the buffer on visibility changes
22686             (fixes bug 77654 part 2)
22687           - Not passing OnParentVisibleChanged up unless the control
22688             is visible
22689           - CanFocus: Fixed to match MS documentation
22690           - Focus: Fixed to return actual focus state and to check if
22691             setting focus is legal before setting it
22692
22693 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
22694
22695         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
22696           when to draw focus rectangle by looking at parent focus and
22697           selected state instead. This fixes TabPages on Linux sometimes
22698           having none or multiple focus rectangles.
22699         * XplatUIX11.cs (SetFocus): 
22700           - Don't set the focus if the same window already has focus
22701           - Use SendMessage instead of PostMessage (like it's Win32
22702             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
22703             to match MS behaviour
22704         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
22705           are not selectable.
22706
22707 2006-03-07  Jackson Harper  <jackson@ximian.com>
22708
22709         * PictureBox.cs: Revert line I accidently committed last week.
22710
22711 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
22712
22713         * Control.cs: 
22714           - Added new IsRecreating and ParentIsRecreating properties to
22715             allow testing if RecreateHandle has been called on ourselves
22716             or one of our parents
22717           - WndProc(WM_DESTROY): If our control handle is being recreated
22718             we immediately need to create the handle when receiving the
22719             destroy, that way our child windows find a valid parent handle
22720             when they themselves are being recreated upon WM_DESTROY receipt
22721             (fix for bug #77654 part 1)
22722         * XplatUIX11.cs:
22723           - DestroyWindow: WM_DESTROY must be sent to our own window before
22724             notifying any child windows. MS documents that child windows
22725             are still valid when WM_DESTROY is received. (Control now relies on
22726             this behaviour)
22727           - Added some fine-grain debug options
22728
22729 2006-03-06  Jackson Harper  <jackson@ximian.com>
22730
22731         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
22732         box and base calculations off this.
22733         * MdiChildContext.cs:
22734         * MdiWindowManager.cs: Don't need to ensure scrollbars here
22735         anymore.
22736         
22737 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
22738
22739         * Splitter.cs: In situations where the affected control is added
22740           to the parent's control list after the splitter, we would not
22741           populate affected. Now we try populating it on mousedown, if
22742           it's not already set, and force it to be re-set whenever our
22743           parent changes.
22744
22745 2006-03-03  Matt Hargett  <matt@use.net>
22746
22747         * Control.cs: implement Control.Padding
22748         * Padding.cs: -Padding.All returns -1 when constructing with the
22749         implicit default ctor
22750         -Padding.ToString() matches MS.NET
22751         * ContainerControl.cs: implement
22752         ContainerControl.AutoScaleDimensions
22753         * ListControl.cs: implement ListControl.FormattingEnabled
22754         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
22755         * ButtonBase.cs:
22756         * TabPage.cs: Implement UseVisualStyleBackColor.
22757         * PictureBox.cs: Implement PictureBox.InitialImage.
22758
22759 2006-03-03  Mike Kestner  <mkestner@novell.com>
22760
22761         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
22762         event declarations to proxy to base event.
22763         * ListViewItem.cs: update to use ItemControl.
22764         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
22765         * ThemeWin32Classic.cs: update to new ListView theme API and fix
22766         column header label rendering for 0 width columns.
22767
22768 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
22769
22770         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
22771           that causes the control to be created. Fixes #77476.
22772
22773 2006-03-02  Jackson Harper  <jackson@ximian.com>
22774
22775         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
22776         expose_pending.
22777
22778 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
22779
22780         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
22781           passed in for the EventArgs (fixes #77690)
22782
22783 2006-03-01  Jackson Harper  <jackson@ximian.com>
22784
22785         * ScrollBar.cs: Refresh afterbeing resized.
22786
22787 2006-02-28  Mike Kestner  <mkestner@novell.com>
22788
22789         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
22790         Clean up a tracker compile warning.
22791         * MenuItem.cs: add internal PerformPopup method.
22792         [Fixes #77457]
22793
22794 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
22795
22796         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
22797           implicit expose) when the text is set to null
22798
22799 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
22800
22801         * RichTextBox.cs (FlushText): When newline is true, we always
22802           need to split the line, even if no text is on it and we may
22803           never eat newlines. (Fixes #77669)
22804
22805 2006-02-28  Mike Kestner  <mkestner@novell.com>
22806
22807         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
22808         and set Selected instead.
22809         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
22810         collections.
22811
22812 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
22813
22814         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
22815
22816 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
22817
22818         * FontDialog.cs:
22819           - Got rid of the panel. All controls are now directly added to
22820             the dialog form
22821           - It is now possible to set a font with the Font property
22822           - MinSize and MaxSize property do now what they should
22823           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
22824           - Searching and selecting a font with the font textbox works now,
22825             the same applies to the style and size textbox
22826           - Draw the correct 3D border in the example panel
22827           - Fixed a little mem leak (unused fonts didn't get disposed)
22828           - Many other internal updates/rewrites...
22829           - Fix typo
22830
22831 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
22832
22833         * TextControl.cs: 
22834           - InsertRTFFromStream: Added 'number of characters inserted' argument
22835           - set_SelectedRTF: Now using the number of characters to calculate
22836             the new location for the selection and cursor (x/y cannot be used
22837             due to potentially already wrapped text)
22838
22839 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
22840
22841         * TextControl.cs: Added property and implemented means to allow 
22842           disabling recalculation of a document (can be used to speed up
22843           multiple inserts and is needed to make RTF inserts predictable, see
22844           bug #77659)
22845         * RichTextBox.cs: Using the new NoRecalc property of Document to
22846           keep x/y insert locations predictable. Also makes it faster inserting
22847           large chunks of RTF
22848
22849 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
22850
22851         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
22852           it's easier for a child control to handle the other messages without
22853           having to duplicate the special functionality
22854         * TextBoxBase.cs
22855           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
22856             code to handle processing the key ourselves, in order to get 
22857             access to the result of KeyEventArgs.Handled. We now only call 
22858             ProcessKey if they key hasn't been handled already. Fixes #77526.
22859           - set_Text: If null or empty string is given, just clear the 
22860             document. Fixes part of #77526
22861
22862 2006-02-27  Jackson Harper  <jackson@ximian.com>
22863
22864         * SizeGrip.cs: Paint the background color before painting the grip
22865         so things look right.
22866         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
22867
22868 2006-02-27  Mike Kestner  <mkestner@novell.com>
22869
22870         * ListView.cs:
22871           - Restructure layout and invalidation model to remove a ton of
22872           flicker from the control and speed up performance in general.
22873           - Add manual column resize, flickers like crazy, but I already have
22874           some ideas on how I'll fix that. (#76822)
22875           - Merge the three Icon-based views into a single layout method.
22876           - Move item selection interaction logic from the item since 
22877           interaction with the collections is more appropriate to the view.
22878           - Deselection on non-item clicks.
22879         * ListViewItem.cs:
22880           - Encapsulate most of the layout. Add some internal props to trigger
22881           layout.  Move to a model where Items invalidate themselves instead
22882           of just invalidating the whole control every time something changes.
22883           - Invalidate on Text/Caption changes.
22884           - switch to an offset based layout model to avoid having to absolute
22885           position every element on item moves.
22886           - correct checkbox layout to conform to MS layout.
22887         * ThemeWin32Classic.cs:
22888           - refactor some column header drawing code.
22889           - fix string justification for column headers (#76821)
22890           - make SmallIcon labels top justified for compat with MS impl.
22891         * ThemeClearlooks.cs:
22892           - adjust to new ListViewItem internal checkbox bounds api.
22893
22894 2006-02-27  Jackson Harper  <jackson@ximian.com>
22895
22896         * Control.cs:  Change where implicit controls fall in the zorder.
22897         They are now on top of all children.
22898         - Synced AddImplicit code with Add
22899         - Removed unused enumerator.
22900         * SizeGrip.cs: Remove the TODO as its been TODONE.
22901
22902 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
22903
22904         * TextControl.cs(Insert): Combine the last lines unless the insertion
22905           string ends with \n\n, otherwise we leave one line too many (Fixes
22906           something I noticed with the testapp for #77526; the bug itself was
22907           already fixed in the previous checkin)
22908
22909 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
22910
22911         * RichTextBox.cs:
22912           - SelectionColor and SelectionFont methods no longer set absolute
22913             styles. Instead, the keep font or color respectively (This 
22914             resolves a long-standing FIXME in the code)
22915           - When flushing RTF text, the insert code now considers text trailing
22916             behind the insertion point (Fixes the bug where when replacing
22917             the selected text via SelectedRTF the remainder of the line behind 
22918             the selection would stay on the first insertion line)
22919         * TextBoxBase.cs:
22920           - AppendText now updates the selection points after inserting text
22921           - AppendText now ensures that the last tag (sometimes 0-length) of
22922             the document is used for the style information (Fixes part of 
22923             bug #77220)
22924         * TextControl.cs:
22925           - Created new FontDefiniton class to allow describing partial style
22926             changes
22927           - StreamLine() now takes a lines argument, to allow it to decide
22928             whether an encountered zero-length tag is the last in the document
22929             (which must be kept to not loose the font/color contained in it,
22930             for later appends)
22931           - Created Combine() and Split() methods for Marker structs, to 
22932             support marker updates due to reformatted documents (soft line
22933             wraps)
22934           - Implemented Document.CaretTag setter
22935           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
22936             of the last line (Not the cause, but also exposed by bug #77220)
22937           - Added LineTag argument to InsertString method, to allow callers
22938             to force a certain tag to be used (required to force use of the
22939             trailing zero-length tag of a document)
22940           - Now updating markers in Combine(), to avoid stale tag markers
22941           - Added some method descriptions to aid maintenance
22942           - Implemented new FormatText concept, allowing additive/subtractive
22943             formatting by only specifying the components that are to be 
22944             changed. This was needed for resolving the RTB.SelectedColor/
22945             RTB.SelectedFont fixmes
22946           - Added Break() support method to allow breaking up linetags (used
22947             for partial formatting)
22948           - Added GenerateTextFormat() method. It is used for partial 
22949             formatting and allows to generate a full font/color from given
22950             attributes and an existing tag.
22951
22952 2006-02-26  Jackson Harper  <jackson@ximian.com>
22953
22954         * XplatUIX11.cs:  Use the correct caption height.
22955         - Translate hittest coordinates to screen coords to match MS.
22956         * XplatUIWin32.cs: When we create MDI windows we need to reset
22957         some of the style flags, so we get a nice blank window, and can
22958         draw all the decorations ourselves.
22959         - Set a clipping rectangle on the non client paint event, the
22960         window manager drawing code needs one.
22961         * Form.cs: The window manager needs to know when the window state
22962         has been updated.
22963         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
22964         don't need to factor in border and title sizes in these
22965         methods. TODO: Remove the args and fix the call points.
22966         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
22967         properly.
22968         - Let the driver set the cursors.
22969         - Improve active window handling
22970         - Correct sizes for title bars and buttons.
22971         - Match MS drawing better
22972         * MdiWindowManager.cs: We don't need to handle border style
22973         updates specially anymore.
22974         - Check for scrollbars when windows are done moving
22975         - Handle Active properly.
22976         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
22977         correctly. I am spewing the exception though, so we don't hide the
22978         bugs.
22979         
22980 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
22981
22982         * DataGridViewRowPostPaintEventArgs.cs,
22983           DataGridViewCellPaintingEventArgs.cs,
22984           DataGridViewRowCollection.cs,
22985           DataGridViewRowPrePaintEventArgs.cs,
22986           DataGridViewCell.cs: Clear a few warnings and implement a few
22987           exceptions that should be thrown.
22988
22989 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
22990
22991         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
22992           'inheriting' our parent's (non-default) cursor. (Part of
22993            the fix for #77479)
22994
22995 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
22996
22997         * XplatUIX11.cs: Fixed cast to make csc happy
22998
22999 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
23000
23001         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
23002           it's for the client area (part of fix for #77479 and needed
23003           for MDI window cursor handling)
23004         * XplatUIX11.cs
23005           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
23006             the appropriate default cursors and also passing the message
23007             up the parent chain 
23008           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
23009             for non-client areas
23010
23011 2006-02-15  Jackson Harper  <jackson@ximian.com>
23012
23013         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
23014         is a real MDI window
23015
23016 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
23017
23018         * X11DesktopColors.cs: Instead of checking the desktop session
23019           string for "KDE" check if it starts with "KDE"
23020
23021 2006-02-10  Jackson Harper  <jackson@ximian.com>
23022
23023         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
23024         systems).
23025
23026 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
23027
23028         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
23029           errors
23030         * ColorDialog.cs:
23031           - Got rid of the panel. All controls are now directly added to
23032             the dialog form
23033           - Changed to mono coding style
23034
23035 2006-02-10  Jackson Harper  <jackson@ximian.com>
23036
23037         * InternalWindowManager.cs: We don't need the set visibility to
23038         false hack anymore now that peter has written beautiful shutdown
23039         code.
23040
23041 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
23042
23043         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
23044           where already explicitly destroyed
23045
23046 2006-02-10  Jackson Harper  <jackson@ximian.com>
23047
23048         * MdiClient.cs: Handle the case where windows are too high or to
23049         the left and we need scrollbars.
23050
23051 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
23052
23053         * MimeIcon.cs: Added some icons
23054         * FileDialog.cs:
23055           - Fixed bug #77477
23056           - Got rid of the panel. All controls are now directly added to
23057             the dialog form
23058           - Changed to mono coding style
23059           - On Linux "My Computer" and "My Network" will now show some
23060             more usefull information. A new class, MasterMount, gathers
23061             this information from /proc/mount. Updated MWFFileView to make
23062             use of this information
23063           - Fixed a bug that caused FileDialog to crash when
23064             ".recently_used" file had a zero size
23065           - FilterIndex does now what it should
23066           - Some Refactoring
23067         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
23068             FileDialog changes
23069
23070 2006-02-09  Jackson Harper  <jackson@ximian.com>
23071
23072         * ComboBox.cs: Don't touch if null.
23073
23074 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
23075
23076         * Cursor.cs: 64bit safeness fix
23077         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
23078
23079 2006-02-09  Jackson Harper  <jackson@ximian.com>
23080
23081         * Form.cs: If a form is made into an MDI form update the styles so
23082         all the props can get set correctly.
23083         - Kill the mdi_container when we dont need it anymore.
23084         * InternalWindowManager.cs: Add missing NOT
23085
23086 2006-02-08  Jackson Harper  <jackson@ximian.com>
23087
23088         * InternalWindowManager.cs: Respek clipping when drawing MDi
23089         decorations.
23090
23091 2006-02-08  Jackson Harper  <jackson@ximian.com>
23092
23093         * Hwnd.cs: Add bits to track non client expose events.
23094         * XplatUIX11.cs: Track non client expose events on the hwnd. This
23095         gives us a proper invalid rect and will allow for some nice
23096         optimizations with NC client drawing
23097         - MDI windows are children windows, so move their style handling
23098         into the child window block.
23099         * InternalWindowManager.cs: Remove a state reset that was
23100         getting invoked at the wrong time. Fixes managed windows getting
23101         into a 'stuck' captured state.
23102
23103 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
23104
23105         * TextControl.cs (Document.ctor): Now initializing 
23106           selection_anchor. Fixes #77493
23107
23108 2006-02-07  Jackson Harper  <jackson@ximian.com>
23109
23110         * TrackBar.cs: The increment/decrements were backwards.
23111
23112 2006-02-07  Mike Kestner  <mkestner@novell.com>
23113
23114         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
23115         to the instance itself.
23116
23117 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
23118
23119         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
23120           on ulongs and pointers, the size differs between 32bit and 64bit
23121           systems. 
23122
23123 2006-02-07  Mike Kestner  <mkestner@novell.com>
23124
23125         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
23126         for 64 bit platforms to work around a metacity bug. 
23127
23128 2006-02-07  Jackson Harper  <jackson@ximian.com>
23129
23130         * TrackBar.cs: Process the input keys we need, and hookup to
23131         KeyDown instead of using WndProc, so we get key messages.
23132
23133 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
23134
23135         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
23136           machine we're on. 
23137         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
23138           we need to translate the XdndVersion atoms array before sending it
23139
23140 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
23141
23142         * XplatUIX11.cs: 
23143           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
23144             number of bits for the property, not the number of bytes. The
23145             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
23146             but would not crash since it specified 8 bits instead of 4 bits)
23147           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
23148             defined as XID -> long in the C headers)
23149           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
23150             references since those are now IntPtr to begin with
23151           - Switched all Atom.XXX 'int' casts to IntPtr casts
23152           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
23153           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
23154           - Added XChangeActivePointerGrab DllImport (for X11DnD)
23155         * X11Structs.cs:
23156           - Changed 'int' type for Atoms in XEvent structures to IntPtr
23157           - Changed atom in HoverStruct to be IntPtr
23158         * X11DnD.cs:
23159           - Removed local DllImports, switched code to use those from XplatUIX11
23160           - Removed/fixed casts related to the switch of Atom to be a IntPtr
23161
23162 2006-02-06  Mike Kestner  <mkestner@novell.com>
23163
23164         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
23165         method signatures in the import region.  There may still be some
23166         lingering struct marshaling issues, as I didn't drill down into those.
23167         Yet.
23168
23169 2006-02-06  Jackson Harper  <jackson@ximian.com>
23170
23171         * ComboBox.cs: Dont manually set the top_item, this is computed
23172         when the scrollbar position is set.
23173
23174 2006-02-06  Mike Kestner  <mkestner@novell.com>
23175
23176         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
23177         startup crashes on amd64.  There's other fixes needed.  All pinvoke
23178         usage of Atom needs to be mapped to IntPtr for example.  And there are
23179         likely other int/long issues to be addressed.
23180
23181 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
23182
23183         * FileDialog.cs: One more...
23184
23185 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
23186
23187         * FileDialog.cs: Next try
23188
23189 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
23190
23191         * FileDialog.cs: First part of fix for #77464
23192
23193 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
23194
23195         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
23196           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
23197           AcceptButton border drawing.
23198
23199 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
23200
23201         * Form.cs: Moved positioning of form after auto scaling is applied,
23202           otherwise it would possibly use wrong form size.
23203
23204 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
23205
23206         * Control.cs (RecreateHandle): No need to re-create any child
23207           controls, the child windows will get destroyed automatically by
23208           the windowing system or driver, and re-created when the handle
23209           is being accessed the first time. Fixes #77456
23210         * Form.cs: No longer setting the form to closing if the handle is 
23211           being recreated. This seems like the right thing to do, don't
23212           have a bug or testcase for this, though.
23213
23214 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
23215
23216         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
23217           controls to avoid unwanted side effects
23218
23219 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
23220
23221         * Control.cs: 
23222           - ScaleCore needs to scale the bounds, not the ClientSize of the 
23223             control. Fixes #77416.
23224           - DefaultSize is 0,0 for control
23225         * TextBoxBase.cs: 
23226           - DefaultSize is 100, 20
23227           - SetBoundsCore: Now enforcing the height, no matter if the provided
23228             height is more or less than the preferred one, as long as AutoSize
23229             is on
23230         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
23231
23232 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
23233
23234         * Control.cs:
23235           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
23236             call unless both performLayout is true *and* we have a pending
23237             layout change
23238           - ResumeLayout: MS does not completely nest Suspend and Resume,
23239             they bottom out at 0, fixed our code to match that.
23240           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
23241             SetBoundsCore, we were updating even when we shouldn't. This fixes
23242             swf-anchors mis-anchoring when resizing the app fast and lots.
23243           - UpdateDistances: Now only setting the left and top distance if 
23244             we have a parent and are not suspended, this is based on
23245             a suggestion by Don Edvaldson in bug #77355.
23246           - OnVisibleChanged: Fixed logic when to create the control. We may
23247             not create the control if we have no parent or if it's not visible;
23248             switched to using Visible property instead of is_visible field 
23249             since the property also considers parent states. This fixes a bug
23250             when starting Paint.Net
23251
23252 2006-02-02  Jackson Harper  <jackson@ximian.com>
23253
23254         * Form.cs: If the forms handle hasn't been created yet don't call
23255         into xplatui to make it top most, just set the topmost flag on the
23256         form in CreateParams
23257         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
23258
23259 2006-02-01  Jackson Harper  <jackson@ximian.com>
23260
23261         * ScrollableControl.cs: Refactored the Recalculate method a
23262         little, this wasn't handling all the variants of bottom and right
23263         bars needed to be added and added/removed based on their
23264         counterparts being added/removed (which changes the drawable
23265         size). Also we special case client widths and heights of 0 and
23266         don't add the scrollbar for those.
23267
23268 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
23269
23270         * XplatUIX11.cs: 
23271           - Added method to get AbsoluteGeometry(); currently unused, but might
23272             be used in the future, if we try again to figure out toplevel
23273             coordinates with some more crappy window managers
23274           - Added FrameExtents() method to retrieve the WM set decoration size
23275           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
23276             to deal with at least KDE, FVWM and metacity (Fixes #77092)
23277         * Hwnd.cs: 
23278           - Added whacky_wm tracking var for metacity
23279           - Added logic to have default menu height if the actual menu height
23280             has not yet been calculated (part of fix for #77426)
23281         * Form.cs: Keep track whether client size has been set and re-set 
23282           it if a menu is added/removed afterwards (Fixes #77426)
23283
23284 2006-01-31  Jackson Harper  <jackson@ximian.com>
23285
23286         * Control.cs: When a new Site is set on the component attempt to
23287         pull the AmbientProperties from it.
23288
23289 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
23290
23291         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
23292           in the background of the owning form. Fixes #77332
23293
23294 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
23295
23296         * MimeIcon.cs: Fix for #77409
23297
23298 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
23299
23300         * XplatUIX11GTK.cs: Initial import
23301
23302 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
23303
23304         * FixedSizeTextBox: fixes class signature
23305
23306 2006-01-30  Jackson Harper  <jackson@ximian.com>
23307
23308         * FixedSizeTextBox.cs: New internal class that represents a
23309         textBox that will not be scaled.
23310         * TreeView.cs:
23311         * ComboBox.cs:
23312         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
23313         standard TextBox.
23314                 
23315 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
23316
23317         * XplatUIX11.cs: Retrieve default screen number instead of
23318           assuming 0. Attempted fix for #77318
23319
23320 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
23321
23322         * XplatUIWin32.cs: 
23323           - GetWindowPos: When a window is parented by FosterParent, use 
23324             the desktop instead of FosterParent as the base to get coordinates
23325           - CreateWindow: Don't make FosterParent the parent window for Popups
23326             if we don't want a taskbar entry, Popups automatically don't get one
23327         * Hwnd.cs: Need to call remove to actually remove the key from the
23328           hash table
23329
23330 2006-01-30  Mike Kestner  <mkestner@novell.com>
23331
23332         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
23333
23334 2006-01-30  Jackson Harper  <jackson@ximian.com>
23335
23336         * TreeView.cs:
23337         * TreeNode.cs: Raise events no matter how the treenode is
23338         checked. Patch by Don Edvalson.
23339
23340 2006-01-30  Jackson Harper  <jackson@ximian.com>
23341
23342         * TreeNode.cs: Signature fix.
23343
23344 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
23345
23346         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
23347
23348 2006-01-20  Mike Kestner  <mkestner@novell.com>
23349
23350         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
23351         event forwarding when menus are active.
23352         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
23353         Most of the patch is pdb's with a little rework.
23354
23355 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
23356
23357         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
23358           Removed GetMenuDC and ReleaseMenuDC methods; replaced
23359           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
23360         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
23361         * InternalWindowManager.cs: Added use of PaintEventStart/End to
23362           handling of WM_NCPAINT message, now passing the PaintEventArgs to
23363           the PaintWindowDecorations method
23364         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
23365         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
23366         * MenuAPI.cs: Made tracker window invisible
23367         * XplatUIWin32.cs:
23368           - Removed GetMenuDC and ReleaseMenuDC methods
23369           - Implemented the client=false path for PaintEventStart and
23370             PaintEventEnd
23371
23372 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
23373
23374         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
23375         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
23376           styles
23377         * Form.cs: 
23378           - MaximizeBox, MinimizeBox: Recreate the handle when setting
23379             the style
23380           - CreateParams: Reworked the styles to match MS look'n'feel,
23381             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
23382             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
23383
23384 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
23385
23386         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
23387           window is not mapped, since otherwise every form that's being 
23388           created is considered minimized, which is wrong.
23389         * Form.cs: Catching the exception and returning our internal value
23390           instead
23391
23392 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
23393
23394         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
23395           SetWindowMinMax() to have means to tell the driver about the minimum,
23396           maximum and maximized state window sizes. (Part of the fix for #76485)
23397         * Form.cs:
23398           - Implemented tracking of minimum and maximum window size, now calling
23399             new SetWindowMinMax() driver method to tell the driver (Part of the
23400             fix for #76485)
23401           - Finished handling of WM_GETMINMAXINFO method, now setting all values
23402             (Completes fix for #76485)
23403           - Calling new SetWindowMinMax driver method when the handle for a 
23404             form is created, to make sure the driver knows about it even if
23405             the values have been set before the window was created
23406           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
23407             to avoid messing up our anchoring calculations (partial fix
23408             for #77355)
23409         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
23410         * XplatUIX11.cs:
23411           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
23412           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
23413             (and presumably other freedesktop.org compliant WMs). Left the
23414             assumption unmapped=minimized, needed for SetVisible to work.
23415           - Now setting the window state when creating windows
23416           - Fixed SetVisible to consider/set the window state when mapping
23417             a Form. We cannot set the state before it's mapped, and we cannot
23418             use Form.WindowState once it's mapped (since it would ask the
23419             driver and get 'normal'. Therefore, we grab the state before
23420             mapping, map, and then set state.
23421           - Implmemented SetWindowMinMax method; Metacity does not seem to
23422             honor the ZoomHints, though.
23423         * XplatUIWin32.cs:
23424           - Removed MINMAXINFO (moved to XplatUIStructs)
23425           - Added SetWindowMinMax stub (on Win32 the only way to set that
23426             information is in response to the WM_GETMINMAXINFO message, which
23427             is handled in Form.cs)
23428           - Added logic to SetVisible to set the proper window state when a 
23429             form is made visible (fixes #75720)
23430
23431 2006-01-26  Jackson Harper  <jackson@ximian.com>
23432
23433         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
23434         same way we handle them with Invoke.
23435
23436 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
23437
23438         * Form.cs:
23439           - Added tracking of window state so CreateParams can return
23440             the appropriate style
23441           - Moved setting of WS_CAPTION style in CreateParams to allow
23442             styles without caption
23443         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
23444           control if the TextBox property is accessed. Fixes #77345
23445         * Control.cs:
23446           - get_Created: now uses is_disposed and is_created to determine
23447             return value (suggested by Jackson)
23448           - CreateHandle: No longer exits if the handle is being recreated
23449           - RecreateHandle: If the handle is not yet created call the 
23450             appropriate method to create either control or handle. If the
23451             control is already created CreateHandle will simply exit instead
23452             of just creating the handle
23453         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
23454           now SendMessage WM_DESTROY directly to the control when DestroyWindow
23455           is called.
23456         * XplatUIX11.cs: 
23457           - When DestroyWindow is called, instead of waiting for the 
23458             DestroyNotification from X11, we directly post it to the WndProc
23459             and immediately dispose the hwnd object.
23460             Same applies to DestroyChildWindows, and this obsoletes the
23461             expose_pending tracking. Contrary to Win32 behaviour we destroy our
23462             child windows before our own, to avoid X11 errors.
23463           - Removed the direct sending of WM_PAINT on UpdateWindow
23464         * XplatUIWin32.cs:
23465           - Reworked DoEvents and GetMessage to allow access to internal queue
23466             even when trying non-blocking access to the queue.  Fixes #77335. 
23467             Based on a patch suggestion by Don Edvalson. The new private
23468             GetMessage can now also be used as a backend for a PeekMessage
23469             frontend version.
23470         * XplatUI.cs: Improved debug output for CreateWindow
23471
23472 2006-01-25  Jackson Harper  <jackson@ximian.com>
23473
23474         * Help.cs: Allow param to be null. Patch by Don Edvalson.
23475
23476 2006-01-24  Jackson Harper  <jackson@ximian.com>
23477
23478         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
23479         when we have a MaxDropItems lower then the selected index.
23480
23481 2006-01-24  Jackson Harper  <jackson@ximian.com>
23482
23483         * Control.cs: Don't allow selection of non visible controls, allow
23484         selection of controls without parents.
23485
23486 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
23487
23488         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
23489         * DataGridDrawingLogic.cs: Add editing row only when is necessary
23490
23491 2006-01-23  Jackson Harper  <jackson@ximian.com>
23492
23493         * UpDownBase.cs: Make the textbox handle all the selection and
23494         tabbing. This fixes tabing to updown controls.
23495
23496 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
23497
23498         * TextBoxBase.cs: fixes exception thown the object was null
23499
23500 2006-01-23  Jackson Harper  <jackson@ximian.com>
23501
23502         * ButtonBase.cs: Just use the base CreateParams. They set
23503         visibility and enabled correctly.
23504         * ComboBox.cs:
23505         * TrackBar.cs:
23506         * MonthCalendar.cs: Lets let the base set as much of the
23507         createparams as possible so we don't have duplicate code all over
23508         the place.
23509
23510 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
23511
23512         * ThemeGtk.cs: Added TrackBar and some experimental code to
23513           get double buffering back
23514
23515 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
23516
23517         * DataGrid.cs: Allows row number set internally higher than the last
23518         when creating a new row. Restores the editing functionality.
23519
23520 2006-01-20  Mike Kestner  <mkestner@novell.com>
23521
23522         * MimeIcon.cs: delay Image creation until the icons are accessed
23523         instead of creating 190 scaled images on GnomeHandler startup.
23524
23525 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
23526
23527         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
23528           first call base before processing the event. Fixes #77279
23529
23530 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
23531
23532         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
23533           that the stride for the GDI bitmap would match the stride of
23534           a DIB or a Cursor.
23535
23536 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
23537
23538         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
23539
23540 2006-01-19  Jackson Harper  <jackson@ximian.com>
23541
23542         * ComboBox.cs: Hookup the text controls keydown event so we get
23543         those when the text control has the focus.
23544
23545 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
23546
23547         * Label.cs: Now using the base events instead of defining new ones;
23548           this allows us to just call the base properties without having to
23549           duplicate all base property logic 
23550
23551 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
23552
23553         * Label.cs: A label by default is not a tabstop (Fixes one of our
23554           failing nunit tests)
23555
23556 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
23557
23558         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
23559         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
23560
23561 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
23562
23563         * Cursor.cs: Reimplemented creating cursor bitmaps without using
23564           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
23565           This fixes #77218
23566         * XplatUIWin32.cs: 
23567           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
23568             constructor creates images that can't be saved. Part of the fix
23569             for #76103
23570           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
23571           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
23572             bug fix for handling window state in forms properly)
23573
23574 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
23575
23576         * ThemeGtk.cs: Simplify ScrollBar drawing
23577
23578 2006-01-18  Jackson Harper  <jackson@ximian.com>
23579
23580         * Splitter.cs: Set the default dock style for the splitter control
23581         in the constructor.
23582
23583 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
23584
23585         * ThemeGtk.cs: Corrected StateType and ShadowType for
23586           gtk_paint_box
23587
23588 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
23589
23590         * Control.cs: Make use of Theme.DoubleBufferingSupported
23591         * ThemeGtk.cs:
23592           - Added drawing for flat style buttons
23593           - Added ScrollBar drawing
23594
23595 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
23596
23597         * ThemeClearlooks.cs: Removed some unneeded code.
23598         * ThemeGtk.cs: First part of ThemeGtk enhancements.
23599
23600 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
23601
23602         * LinkLabel.cs: We need to update the hover drawing when
23603           leaving the control as well.
23604
23605 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
23606
23607         * DataGrid.cs: Clicking on non empty areas in the columns
23608            area was giving an exception
23609
23610 2006-01-17  Jackson Harper  <jackson@ximian.com>
23611
23612         * ThemeWin32Classic.cs:
23613         * ListView.cs: Do not draw/clip the headers when the header style
23614         is None.
23615
23616 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
23617
23618         * DataGrid.cs: Fixes 77260
23619         
23620 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
23621
23622         * DataGrid.cs: Clicking on a column on a empty grid was giving
23623           an exception
23624
23625 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
23626
23627         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
23628           or any keypress will crash the grid.
23629
23630 2006-01-17  Mike Kestner  <mkestner@novell.com>
23631
23632         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
23633         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
23634         invisible/previously-visible items.
23635         [Fixes #76909]
23636
23637 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
23638
23639         * ThemeClearlooks.cs:
23640         - Added CL_Draw_Button method; now other theme controls that are 
23641           not derived from button or do not have a button can draw buttons
23642           too
23643         - Updated ComboBox drawing
23644         - Beautified RadioButton drawing
23645         - Corrected drawing of bottom and left tabs
23646         - Beautified DateTimePicker and MonthCalendar
23647         - Added CPDrawButton and CPDrawRadioButton
23648
23649 2006-01-16  Jackson Harper  <jackson@ximian.com>
23650
23651         * ComboBox.cs: Set the initial value of the scrollbar to the
23652         current index. Reduce the numbers of refreshs and IndexOfs called.
23653
23654 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
23655
23656         * FileDialog.cs: When the file listview is focused hitting the
23657           backspace key moves the fileview to the parent directory
23658
23659 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
23660
23661         * Form.cs: 
23662           - Added RecreateHandle call when changing taskbar visibility to 
23663             trigger reparenting in Win32 driver (Fixes #75719)
23664           - If a window has minimize or maximize buttons, it cannot have
23665             a help button
23666         * XplatUIWin32.cs:
23667           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
23668             the toplevel form with FosterParent (A toolwindow not on the
23669             taskbar) (Fixes #75719)
23670           - Made FosterParent a toolwindow
23671
23672 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
23673
23674         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
23675
23676 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
23677
23678         * ToolTip.cs: If SetToolTip is called from a control and the mouse
23679           is currently over that control, make sure that tooltip_window.Text
23680           gets updated
23681
23682 2006-01-13  Mike Kestner  <mkestner@novell.com>
23683
23684         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
23685
23686 2006-01-13  Jackson Harper  <jackson@ximian.com>
23687
23688         * TreeView.cs: On MS GetNodeAt never actually factors in the X
23689         value passed.  Also redraw the selected node when we recieve
23690         focus, so tabbing between trees works correctly.
23691
23692 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
23693
23694         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
23695           ~/.gconf/%gconf-tree.xml, so use
23696           .gconf/desktop/gnome/interface/%gconf.xml
23697
23698 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
23699
23700         * TextControl.cs: Draw text in gray if control is disabled
23701
23702 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
23703
23704         * TreeView.cs: Draw the focus rectangle outside the highlight, to
23705           make sure it's always visible. Fixes #76680.
23706
23707 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
23708
23709         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
23710
23711 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
23712
23713         * PageSetupDialog.cs: Added.
23714         * PrintDialog.cs: Attributes.
23715         * PrintPreviewControl.cs: Updates.
23716         * PrintPreviewDialog.cs: Updates.
23717         
23718 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
23719
23720         * Control.cs: Undid my selection check fix, since it's not needed
23721         * TextBoxBase.cs:
23722           - Now considering the presence of hscroll/vscroll when sizing
23723             vscroll/hscroll respectively. Fixed bug #77077
23724           - Added Left/Up/Down/Right to IsInputKey list to prevent
23725             ContainerControl from stealing them. This fixes what I broke
23726             with my last checkin.
23727
23728 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
23729
23730         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
23731           I finally understand how the property can be set without a setter :-)
23732
23733 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
23734
23735         * Application.cs:
23736           - Switched RunLoop to use static Message.Create to create a 
23737             Message object
23738           - Added PreProcessMessage call in runloop for keyboard events; this
23739             is part of the fix for #77219, I overlooked this originally in the
23740             MSDN doc for PreProcessMessage
23741         * Control.cs:
23742           - Removed call to PreProcessMessage from handling of keyboard 
23743             messages; it's supposed to be done in the message pump
23744           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
23745             per MSDN documentation.
23746           - IsInputChar: All chars are input chars by default; removed the 
23747             parent calling chain, MS does not document that
23748           - PreProcessMessage: If IsInputChar is true, we want to return false
23749             to allow dispatching of the message
23750           - When selecting the next control, now also check that we're not
23751             selecting ourselves again and therefore return a false positive.
23752         * TextBoxBase.cs:
23753           - Tried to match return values for IsInputKey and ProcessDialogKey
23754             to what MS returns; moved processing of our special keys outside
23755             ProcessDialogKey since MS does not seem to return true on those.
23756           - Moved code that previously was in ProcessDialogKey into new private
23757             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
23758           - Reworked handling of WM_CHAR to not have to duplicate code from
23759             Control.cs anymore, instead we simply call down to base.
23760            
23761 2006-01-12  Jackson Harper  <jackson@ximian.com>
23762
23763         * ComboBox.cs: We always need to refresh the text area when
23764         EndUpdate is called. Fixes the combobox in the file dialog.
23765         * Control.cs: Don't create the creator_thread until the controls
23766         handle is created.  Also in InvokeRequired we check if the
23767         creator_thread is null. This gives the effect of InvokeRequired
23768         returning true if the controls handle is not created yet, and
23769         matches MS.
23770
23771 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
23772
23773         * XplatUI.cs:
23774           - Added StartLoop() driver method. This is used to allow drivers to
23775             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
23776             loop for a particular thread
23777           - Added EndLoop() driver method. This is called once the message
23778             pump for the thread is shut down
23779           - Added SupportsTransparency method to allow the driver to indicate
23780             opacity support for windows
23781         * Form.cs:
23782           - Removed TODO attribute, completed AllowTransparency property
23783           - Added documented logic to Opacity
23784         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
23785           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
23786           versions of CompatibleTextRendering
23787         * X11Structs.cs: Added opacity atom to our atom enumeration
23788         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
23789           of a form might be set before it's reparented by the WM, and we need
23790           the opacity value without calling up to Form)
23791         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
23792           SupportsTransparency() driver methods
23793         * Application.cs: Now calling StartLoop and EndLoop driver methods
23794         * XplatUIX11.cs:
23795           - Added opacity atom registration
23796           - Added StartLoop()/EndLoop() methods. They're empty right now but
23797             will need to get implemented when we switch to a per-thread queue
23798           - Implemented SupportsTransparency() method
23799           - Implemented SetWindowTransparency() method
23800           - Added support for setting the opacity value when a window is
23801             reparented (since the opacity needs to be set on the WM frame)
23802         * XplatUIOSX.cs, XplatUIWin32.cs:
23803           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
23804
23805 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
23806
23807         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
23808
23809 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
23810
23811         * FileDialog.cs: Added ToolTip for MWFFileView
23812         * MimeIcon.cs: Rewrote GnomeHandler.
23813           - Get currently used gnome icon theme from
23814             ($HOME)/.gconf/%gconf-tree.xml
23815           - Make use of inherited icon themes
23816           - Support SVG icon themes like Tango via librsvg
23817
23818 2006-01-12  Miguel de Icaza  <miguel@novell.com>
23819
23820         Revert's Jackson's revert which broke 2.0 builds.   Fix both
23821         builds. 
23822         
23823         * Application.cs: Move the use_compatible_text_rendering outside
23824         the NET_2_0 define.  If we ever need to use the
23825         use_compatible_text_rendering on the individual controls they will
23826         access the variable from the common shared code paths.
23827
23828 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
23829
23830         * XplatUI.cs:
23831           - Added more granular debug options
23832           - Added method to print both window text and id
23833           - Switched debug output to use new Window() debug method
23834           - Added IsEnabled() driver method
23835           - Added EnableWindow() driver method
23836         * Form.cs:
23837           - Removed end_modal; no longer needed, new loop handles termination
23838             via 'closing' variable
23839           - If form is modal, setting DialogResult will now initiate loop
23840             termination via 'closing' variable
23841           - Added support for is_enabled/WS_DISABLED to CreateParams
23842           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
23843             does all the work
23844           - Removed code that's now in RunLoop from ShowDialog()
23845           - Added various documented sanity checks to ShowDialog()
23846           - Added handling of WM_DESTROY message; we set 'closing' on getting
23847             the message to indicate the message pump to terminate
23848           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
23849             send by the Application.ExitThread method. (We send the message
23850             to destroy the window after all other events have been
23851             processed through the queue, instead of destroying the handle 
23852             directly)
23853           - Moved code from Close() method to WM_CLOSE handler; added logic
23854             to only send close-related events if the form is not displayed
23855             modal
23856         * Splitter.cs (..ctor): Fixed typo in resource name
23857         * Control.cs:
23858           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
23859             brush now
23860           - set_Cursor: Now only setting calling into XplatUI if the handle for
23861             the control is already created; this avoids implict handle creation
23862             or crashes if it's not created
23863           - set_Enabled: Now setting the enabled state via the new driver method
23864             instead of just tracking it
23865           - CreateParams: Added logic to set WS_DISABLED based on enabled state
23866           - CreateControl: Reordered event firing and method calls to more
23867             closely fire events in the order MS does. Now setting the
23868             enabled state in the driver when creating the control.
23869           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
23870             match MS order
23871         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
23872           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
23873         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
23874         * Hwnd.cs:
23875           - Added tracking of window enabled state (get_Enabled/set_Enabled)
23876           - Added EnabledHwnd property to easily allow a driver to find the
23877             handle of the first enabled window in the parent chain (this is
23878             used by drivers to pass up input events of disabled windows)
23879         * XplatUIDriver.cs: Added IsEnabled() method
23880         * Application.cs:
23881           - Removed crude and obsolete exiting tracking variable
23882           - Removed internal ModalRun(); replaced by RunLoop()
23883           - Implemented private CloseForms() method to allow closing all 
23884             windows owned by a particular (or all) threads
23885           - Exit() now properly closes all windows without forcing the message
23886             pump to quit
23887           - Removed obsolete InternalExit() method
23888           - Changed Run() methods to use new RunLoop() message pump
23889           - Implemented new RunLoop() method for both modal and non-modal forms
23890         * CommonDialog.cs:
23891           - get_CreateParams: Added setting of WS_DISABLED
23892           - Simplified ShowDialog(); now all the work is done in RunLoop(),
23893             invoked via Form.ShowDialog()
23894         * NativeWindow.cs: We don't remove the window from the collection when
23895           the handle is destroyed; there might still be messages for it in the
23896           queue (mainly the resulting WM_DESTROY); instead it will be removed
23897           when Control calls InvalidateHandle in the WM_DESTROY handler
23898         * XplatUIX11.cs:
23899           - CreateWindow: Added logic to handle the WS_DISABLED window style
23900           - EnableWindow: Implemented based on Hwnd.Enabled
23901           - GetMessage: Reset PostQuitState so the method can be called again
23902           - Implemented support for disabled windows (passing messages to the
23903             first enabled parent) in handling all input messages
23904           - Added optimizations for handling Expose events
23905           - Implemeted new driver method IsEnabled()
23906           - Now always resetting paint pending tracking vars when we start paint
23907           - Re-implemented UpdateWindow via just sending a WM_PAINT message
23908         * XplatUIOSX.cs: Added IsEnabled method stub
23909         * XplatUIWin32.cs: Implemented new IsEnabled() method
23910
23911 2006-01-11  Jackson Harper  <jackson@ximian.com>
23912
23913         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
23914         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
23915         variables a little.
23916         * ColorDialog.cs: Clear out the old form before adding the new
23917         panel.  
23918
23919 2006-01-11  Jackson Harper  <jackson@ximian.com>
23920
23921         * X11Dnd.cs: Make sure to add all the text formats when adding
23922         strings to the data object.
23923         * TreeNodeCollection.cs: When adding to a sorted tree we need to
23924         do some redrawing too.  Also change the UpdateNode to an
23925         UpdateBelow so the newly added node gets painted.
23926         
23927 2006-01-11  Miguel de Icaza  <miguel@novell.com>
23928
23929         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
23930         LinkLabel.cs, PropertyGrid.cs: Implement the
23931         UseCompatibleTextRendering property for 2.x
23932
23933         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
23934
23935 2006-01-11  Jackson Harper  <jackson@ximian.com>
23936
23937         * TreeView.cs: Use the property for setting the selected node so
23938         the correct events get raised.
23939         * TreeNode.cs: Update the tree when the fore/back colours of a
23940         node are set.
23941
23942 2006-01-10  Jackson Harper  <jackson@ximian.com>
23943
23944         * TreeView.cs: Allow setting SelectedNode to null.
23945
23946 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
23947
23948         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
23949
23950 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
23951
23952         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
23953
23954 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
23955
23956         * PrintDialog.cs: Added attributes and set default property values.
23957
23958 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
23959
23960         * PrintControllerWithStatusDialog.cs: 
23961         Added PrintControllerWithStatusDialog.
23962
23963 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
23964
23965         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
23966         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
23967
23968 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
23969
23970         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
23971
23972 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
23973
23974         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
23975         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
23976
23977 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
23978
23979         * MimeIcon.cs: Added internal class SVGUtil.
23980
23981 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
23982
23983         * FileDialog.cs: Don't crash if there are two files with the
23984           same name but different locations.
23985
23986 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
23987
23988         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
23989         dates across multiple month grids. Used to not highlight entire 
23990         month, but does now.
23991         
23992 2006-01-06  Jackson Harper  <jackson@ximian.com>
23993
23994         * MonthCalendar.cs: Removed DoEvents call to prevent a running
23995         message loop. Change timer intervals to numbers that seem more
23996         natural.
23997
23998 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
23999
24000         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
24001           object for location info since screen object is now implemented.
24002
24003 2006-01-05  Jackson Harper  <jackson@ximian.com>
24004
24005         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
24006         * AsyncMethodResult.cs: We no longer use a WeakReference for the
24007         AsyncMethodResult, this is because we ALWAYS want the
24008         ManualResetEvent to get set.
24009         * Control.cs: When disposing use an async invoke to call shutdown
24010         code, so that thigns don't block on the finalizer thread.  Also
24011         check if we even have a message loop before trying to send
24012         messages, if we don't then don't bother sending messages.
24013         - No more weak references for async methods
24014         * XplatUIDriver.cs: No more weak references for async methods.
24015
24016 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
24017
24018         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
24019           returns two FontFamily with the same name
24020
24021 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
24022
24023         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
24024           drawing disabled text. Instead using the ColorGrayText color
24025
24026 2006-01-04  Jackson Harper  <jackson@ximian.com>
24027
24028         * TreeNode.cs: redraw the node when its image index is changed.
24029
24030 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
24031
24032         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
24033           time I checked there are no others like it.
24034
24035 2006-01-04  Jackson Harper  <jackson@ximian.com>
24036
24037         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
24038         this gives the behavoir I was looking for.
24039         * Control.cs: Special case Invoking EventHandlers, this matches MS
24040         and fixes part of bug #76326.
24041
24042 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
24043
24044         * ThemeClearlooks.cs, FileDialog.cs:
24045           - Reflect the latest Theme class changes
24046           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
24047             with DateTime
24048             
24049 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
24050
24051         * Theme.cs: Cache UI resource images and resize them if needed
24052
24053 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
24054
24055         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
24056           is called. This fixes the crash in Nexxia when setting the font
24057           attributes in the chat. [However, RTF needs a look-over to make sure
24058           that all SelectionXXX methods handle the special case that selection
24059           is empty and therefore the change must be applied to all text starting
24060           at the cursor/selection start]
24061
24062 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
24063
24064         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
24065           XplatUIOSX.cs: Added SendMessage and PostMessage methods
24066         * X11Keyboard.cs: Switched to new way of calling PostMessage
24067
24068 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
24069
24070         * Theme.cs: Added theme interface for images to allow the theme to
24071           control what images are used for things like FileDialog, MessageBox
24072           icons, etc.
24073         * MessageBox.cs: Now uses the new Theme icon/image interfaces
24074
24075 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
24076
24077         * FileDialog.cs:
24078           - Removed some dead code
24079           - Opening a recently used file does work now
24080           - Small UI enhancements
24081           - Refactoring
24082
24083 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
24084
24085         * FileDialog.cs: Forgot too add __MonoCS__
24086
24087 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
24088
24089         * FileDialog.cs: We are able to read recently used files now let's
24090           go on and write them.
24091
24092 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
24093
24094         * FileDialog.cs: Breathe some life into "last open"/"recently used"
24095           button
24096         * MimeIcon.cs: Do a check for the top level media type also
24097
24098 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
24099
24100         * ThemeClearlooks.cs:
24101           - Added CPDrawStringDisabled
24102           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
24103             some chars if the text doesn't fit into text_rect
24104           - DrawListViewItem: If View = View.LargeIcon center the image;
24105             rewrote the drawing of ListViewItem.Text if View = 
24106             View.LargeIcon
24107
24108 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
24109
24110         * MimeIcon.cs: Use default KDE icon theme if there is no
24111           "48x48" directory for the current icon theme, fixes #77114
24112         * Mime.cs: Disable not working and actually not used code. 
24113         * ThemeWin32Classic.cs:
24114           - Replace "new SolidBrush" in GetControlBackBrush and
24115             GetControlForeBrush with ResPool.GetSolidBrush
24116           - Changed DrawListViewItem from private to protected virtual
24117         * FileDialog.cs:
24118           - Added form.MaximizeBox = true
24119           - Don't throw an exception if there is a broken symbolic link
24120
24121 2005-12-23  Jackson Harper  <jackson@ximian.com>
24122
24123         * TabControl.cs: Give the panels focus, keyboard navigation is
24124         fixed so this works correctly now.
24125         - We need these key events also.
24126         * ToolBar.cs: Remove some of the poor mans double buffering.
24127         
24128 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
24129
24130         * ComboBox.cs: The internal TextBox now returns the focus.
24131
24132 2005-12-23  Jackson Harper  <jackson@ximian.com>
24133
24134         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
24135
24136 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
24137
24138         * Control.cs: Removed debug code
24139         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
24140           implicit children
24141
24142 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
24143
24144         * Control.cs: When creating the control, update the Z-order after
24145           all it's children are created, too. (Fixes nexxia not showing
24146           picturebox bug)
24147
24148 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
24149
24150         * Control.cs: Do not update the anchoring distances if layout is
24151           suspended, instead do it once layout is resumed
24152
24153 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
24154
24155         * Control.cs: 
24156           - After many hours of debugging, for both Jackson and
24157             myself, it turns out that it helps to set the parent of a control
24158             if you want to actually see it onscreen. In the spirit of that
24159             discovery, we're now setting the parent of the control and
24160             it's children when the control's handle is created. This fix
24161             will make Lutz Roeder's Reflector run happily. 
24162           - now just creating the handle instead of the whole control when
24163             getting a graphics context for the control.
24164
24165 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
24166
24167         * ScrollableControl.cs: When calculating the canvas, don't consider
24168           the scrollbar widths. Instead, predict if horizontal scrollbar
24169           will affect canvas when deciding on vertical display and vice versa.
24170
24171 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
24172
24173         * RichTextBox.cs: Set default RTF font for documents that don't
24174           have a font table (Fixes #77076)
24175
24176 2005-12-22  Jackson Harper  <jackson@ximian.com>
24177
24178         * TextBoxBase.cs: It's difficult to do, but you can have an empty
24179         clipboard. This prevents a NullRef in that case.
24180         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
24181         clipboard. PRIMARY is for the currently selected text only. (We
24182         should implement PRIMARY at some point.
24183
24184 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
24185
24186         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
24187           a Unicode function with a structure that was defined in Ansi way.
24188           This fixes #76942.
24189
24190 2005-12-21  Jackson Harper  <jackson@ximian.com>
24191
24192         * StatusBar.cs: Statusbar handles its fore/back colours on it's
24193         on. Because thats how it rolls. (and this avoids it using ambient
24194         colours).
24195         * ThemeWin32Classic.cs: Use the proper back color for filling.
24196         * Menu.cs: Use the system menu bar color for drawing menu
24197         bars. Using the window back color will bring ambient colours into
24198         the picture.
24199
24200 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
24201
24202         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
24203           Bitmaps were created and not disposed.
24204
24205 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
24206
24207         * Control.cs (CreateControl): Don't do anything if the control is
24208           already created, otherwise we'd fire the OnCreated event more than
24209           once
24210
24211 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
24212
24213         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
24214           will always match. Instead return -1. Fixes #76464.
24215
24216 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
24217
24218         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
24219           neither the beginning nor the end of the line (Fixes bug #76479)
24220
24221 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
24222
24223         * Control.cs:
24224           - ControlNativeWindow.ControlFromHandle(): Now handling situation
24225             where handle is invalid
24226           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
24227             instead of slower linear search
24228         * NativeWindow.cs: Don't remove the window from the hashtable until
24229           after the driver has destroyed it (since the driver might use
24230           Control.FromHandle to lookup the control object
24231         * Hwnd.cs: Added DestroyPending property to track if a window is 
24232           already destroyed as far as the driver is concerned and only hasn't
24233           yet notified the control
24234         * XplatUIX11.cs:
24235           - Activate(): Check if the window is still valid before using the 
24236             handle
24237           - Implemented DestroyChildWindow() method to mark child windows as
24238             destroyed when a window is destroyed. This prevents situations 
24239             where we might call an X method based on queued events for a
24240             window that already has been destroyed but we haven't yet pulled
24241             the destroy method from the queue.
24242           - Added a call to the new DestroyChildWindow() method to the drivers
24243             DestroyWindow code. Also now marking the destroyed window itself
24244             as pending
24245
24246 2005-12-20  Jackson Harper  <jackson@ximian.com>
24247
24248         * StatusBar.cs:
24249         * StatusBarPanel.cs: Don't calculate panel sizes on draw
24250         anymore. Just do them when needed, also track the rects of panels
24251         so that we can optimize refreshing more in the future.
24252
24253 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
24254
24255         * ColorDialog.cs: Fixed focus drawing in small color controls
24256
24257 2005-12-19  Jackson Harper  <jackson@ximian.com>
24258
24259         * InternalWindowManager.cs:
24260         * MdiWindowManager.cs: Cleanup some coordinate system changes so
24261         moving windows works properly.
24262
24263 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
24264
24265         * Control.cs: 
24266           - Removed call to InitLayout() from SetBoundsCore(); doc says
24267             it's only called when a control is added to a container
24268           - Split InitLayout logic, moved to separate UpdateDistances() method
24269             since we need to perform those calculations more often than just
24270             when adding the control to a container. (Needed to fix #77022)
24271           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
24272           - Reduced the OnBindingContextChanged events count, don't send them
24273             unless the control is created, we still aren't totally matching
24274             MS, but I can't quite figure out some of their rules
24275
24276 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
24277
24278         * ThemeClearlooks.cs: Corrected distance between ProgressBar
24279           stripes
24280
24281 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
24282
24283         * ThemeClearlooks.cs:
24284           - Updated ProgressBar drawing
24285           - Corrected drawing of ScrollBars and scroll buttons
24286           - Some temporary fixes for minor pixel artefacts
24287
24288 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
24289
24290         * Control.cs:
24291           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
24292             cause events to be sent in the same order as MS does.
24293           - Added ChangeParent() method to trigger various OnXXXChanged events
24294             that need to be fired when a parent changes (This is a reworking
24295             of the patch from r54254, with the X11 errors fixed)
24296           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
24297             since on MS we get OnLayoutChanged events when calling Clear()
24298           - Changed Enabled property to consider parent state as well, if a
24299             parent is not enabled, the control will not be either
24300           - Changed Parent property to simply call Controls.Add() since that
24301             now does all the work required, this way we avoid code duplication
24302           - Threw in a few OnBindingsContextChanged calls to try and match
24303             when MS sends them. We seem to send a few too many, though.
24304           - Added call to CreateControl when adding the control to a parent.
24305             We were never calling CreateControl. Still needs some work, in
24306             some places we treat HandleCreated and ControlCreated as equal, 
24307             which is wrong
24308           - Removed obsolete commented out code from UpdateZOrder()
24309
24310 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
24311
24312         * ThemeClearlooks.cs: Updated TrackBar drawing.
24313
24314 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
24315
24316         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
24317
24318 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
24319
24320         * FileDialog.cs: Add the Help button and the open readonly
24321           checkbox only if needed
24322
24323 2005-12-16  Jackson Harper  <jackson@ximian.com>
24324
24325         * Control.cs: Make sure we have an active menu before trying to
24326         process commands on it. Prevents menu-less forms from crashing
24327         when Alt is pressed.
24328         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
24329         Dieter Bremes.
24330         * RichTextBox.cs: Expand statement to help out gmcs and fix the
24331         2.0 build.
24332
24333 2005-12-16  Jackson Harper  <jackson@ximian.com>
24334
24335         * InternalWindowManager.cs: Don't translate tool windows screen
24336         coordinates. This fixes windows 'bouncing' around when being moved.
24337
24338 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
24339
24340         * TextBoxBase.cs:
24341           - MaxLength now treats 2^31-1 equal to unlimited length (this is
24342             not quite MS compatible, MS uses that number only for single line
24343             and 2^32-1 for multi-line, but I figure it won't hurt keeping
24344             the limit at 2GB)
24345           - Now enforcing the MaxLength limit when entering characters
24346           - Added argument to internal Paste() method to track if it's called
24347             from programatically or via keyboard, since keyboard driven pastes
24348             need to enforce max-length
24349           - Added logic to Paste to only paste as many chars as MaxLength 
24350             allows
24351         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
24352         * TextControl.cs:
24353           - Added Length property to return number of characters in document
24354           - Added private CharCount property which only tracks actual chars
24355             in the document (no linefeeds) and fires event when CharCount
24356             changes
24357           - Added tracking of character count to all methods that alter it
24358           - Added LengthChanged event to allow applications to subscribe
24359             to any changes to the document
24360
24361 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
24362
24363         * TextBox.cs: 
24364           - Removed local password_char field (moved to TextBoxBase)
24365           - Now setting the document's password var when password is
24366             set
24367         * TextBoxBase.cs:
24368           - Added password_char field (needed here so MultiLine can
24369             access it)
24370           - Added logic to MultiLine property setter to set the document's
24371             variable when password display is allowed
24372           - Removed debug code and made some debug code conditional
24373         * TextControl.cs:
24374           - Added RecalculatePasswordLine() method to handle special password
24375             char only lines
24376           - Added PasswordChar property, also added related tracking vars
24377           - Draw() method now uses local text var for grabbing text to draw,
24378             this var is set to line.text unless we're doing password display,
24379             then it is set to the pre-generated all-password-chars line
24380           - Added calling RecalculatePasswordLine() method for password lines
24381
24382 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
24383
24384         * Hwnd.cs: 
24385           - Added Reparented property to allow tracking of Window Manager
24386             reparenting actions (which affect X/Y calculations of toplevel 
24387             windows)
24388           - Made ToString() print window handles in hex
24389         * XplatUIX11.cs:
24390           - AddConfigureNotify(): Now uses reparented state off Hwnd to
24391             determine if X/Y needs offsetting
24392           - AddConfigureNotify(): Fixed offset calculations
24393           - Now adds ReparentNotify messages into the queue
24394           - Now processes ReparentNotify messages and causes a 
24395             WM_WINDOWPOSCHANGED message to be sent upstream if a window
24396             is reparented (as most likely it's X/Y coordinates are changed
24397             due to that)
24398
24399 2005-12-14  Jackson Harper  <jackson@ximian.com>
24400
24401         * XplatUIX11.cs: Tool windows still need to respek focus.
24402
24403 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
24404
24405         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
24406           have a working release
24407
24408 2005-12-13  Jackson Harper  <jackson@ximian.com>
24409
24410         * Form.cs: Update styles after setting the border style regardless
24411         of whether or not the window is using a window manager.
24412
24413 2005-12-13  Jackson Harper  <jackson@ximian.com>
24414
24415         * Form.cs: We now hook into an internal window manager instead of just an
24416         MDI subsystem, this is so we can have properly behaving tool windows.
24417         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
24418         * InternalWindowManager.cs: New internal class that acts as a
24419         window manager for tool windows and as a base for mdi windows.
24420         * MdiWindowManager.cs: New class that acts as a window manager for
24421         mdi windows.
24422
24423 2005-12-12  Jackson Harper  <jackson@ximian.com>
24424
24425         * Control.cs: Updates so we match behavoir for for implicit
24426         controls. Fixes explosions in MDI.
24427
24428 2005-12-12  Jackson Harper  <jackson@ximian.com>
24429
24430         * Control.cs: Implement Invalidate (Region).
24431
24432 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
24433
24434         * Control.cs: 
24435           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
24436             the same events as MS does. MS fires events for each property 
24437             except, for unknown reasons, Cursor, when the control is reparented. 
24438             I can't seem to totally match add/remove since MS also fires some 
24439             VisibleChanged events, which makes no sense. Consolidated the
24440             parenting code into a separate method so it can be called from
24441             both Add and Remove. set_Parent no longer needs any special logic
24442             as it calls the parent's add method which implicitly fires
24443             all events
24444           - Removed some obsolete code and debug output
24445           - Enabled state is inherited from parents, if this is enabled
24446
24447 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
24448
24449         * Form.cs: Removed commented out code
24450
24451 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
24452
24453         * Control.cs:
24454           - Added internal version of Invoke, with additional argument 
24455             indicating if we're calling it from a Dispose() handler. That
24456             way we can avoid BeginInvoke throwing an exception if we're
24457             calling for an already destroyed window.
24458           - Added a dispose argument to BeginInvokeInternal, and made the
24459             check if a valid window handle chain exists conditional on
24460             it not being a dispose call
24461           - Removed code in DestroyHandle to destroy our children. Since we
24462             now handle the WM_DESTROY message we will catch all our children
24463             being destroyed.
24464           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
24465         * Form.cs:
24466           - Added a field to track the application context of the form.
24467           - No need to set closing variable as response to WM_CLOSE, instead
24468             we destroy the window. We also call PostQuitMessage if the form
24469             has an application context (which makes it the main app form,
24470             which, when closed terminates the app)
24471         * XplatUI.cs:
24472           - Dropped Exit() method, it's naming was confusing
24473           - Added PostQuitMessage() which causes GetMessage to return false
24474             once the message queue is empty
24475         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
24476           PostQuitMessage()
24477         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
24478           no longer a valid XplatUI method, but left it in since it's used
24479           internally. Added empty PostQuitMessage() method.
24480         * MenuAPI.cs: Replaced call to Exit() with call to
24481           PostQuitMessage, even though this is probably no longer needed.
24482         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
24483         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
24484         * Application.cs:
24485           - Replaced call to XplatUI.Exit() with PostQuitMessage()
24486           - Removed old debug code that would call XplatUI for exception
24487             display, enabled standard exception handling (Still not enabled
24488             though, until NativeWindow's ExternalExceptionHandler define
24489             is removed
24490         * NativeWindow.cs:
24491           - Added internal method to allow control to update NativeWindow
24492             after a window has been destroyed
24493           - Added handling of already destroyed windows when calling i
24494             DestroyWindow
24495           - Added removal of handle from list on ReleaseHandle
24496         * XplatUIX11.cs:
24497           - Dropped GetMessageResult var and related code
24498           - Added PostQuitState to field to track if PostQuitMessage has been
24499             called
24500           - Dropped Exit() method
24501           - Added PostQuitMessage() method
24502           - GetMessage now will return false if PostQuitState is set and no
24503             more messages are in the queue.
24504           - Expose handler will no longer generate WM_PAINT messages if we are
24505             in PostQuitState since it's very likely any windows have already
24506             been destroyed, and since Hwnd won't get updated until we have
24507             processed the DestroyNotify we'd be causing X errors.
24508         
24509 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
24510
24511         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
24512           Thanks to Mike for pointing out the err of my ways.
24513
24514 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
24515
24516         * Control.cs(PreProcessMessage): Moved menu handling back, but
24517           after all other key handling, to match MS (who handles Menu in
24518           DefWndProc)
24519         * Menu.cs (WndProc): Removed my brainfart
24520
24521 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
24522
24523         * Control.cs(PreProcessMessage): Removed special menu handling 
24524         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
24525
24526 2005-12-07  Mike Kestner  <mkestner@novell.com>
24527
24528         * Control.cs : special case SYSKEYUP so that we can adjust keynav
24529         state according in tracker.
24530         * Menu.cs : promote tracker field to base class and provide a tracker
24531         lookup capability.  Add/Remove shortcuts dynamically if the top menu
24532         has a tracker. Unparent items that are removed from the collection.
24533         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
24534         * Theme*.cs: add always_show_hotkeys field to support configurability
24535         of mnemonic display.  win32 doesn't show mnemonics until Alt is
24536         pressed.
24537
24538 2005-12-07  Jackson Harper  <jackson@ximian.com>
24539
24540         * MdiChildContext.cs: Use Control.ResetCursor.
24541         * Control.cs: ResetCursor needs to set the property so that the
24542         correct XplatUI call gets made.
24543
24544 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
24545
24546         * Control.cs: More fixes to make our key events match MS. We
24547           were not setting the modifier state on KeyData, and we were
24548           not generating any events when Alt was pressed with a key
24549           since handling of WM_SYSxxx was missing for the OnKey methods.
24550
24551 2005-12-07  Jackson Harper  <jackson@ximian.com>
24552
24553         * MdiChildContext.cs: reenable the sizing code.
24554         - When the mouse leaves a window reset its cursor.
24555
24556 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
24557
24558         * ThemeClearlooks.cs: Reflect latest Hwnd changes
24559
24560 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
24561
24562         * Hwnd.cs: Now using the theme 3d bordersize to calculate
24563           widths of Fixed3D borders
24564
24565 2005-12-07  Jackson Harper  <jackson@ximian.com>
24566
24567         * MdiClient.cs: Fix warnings. Earn Mike's love.
24568
24569 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
24570
24571         * ThemeClearlooks.cs:
24572           - Adjusted mouse over button color
24573           - Added first parts of CheckBox drawing
24574           - Added correct color for selected text background
24575           - Fixed ComboBox drawing
24576           - Added CPDrawBorder3D and CPDrawBorder
24577
24578 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
24579
24580         * XplatUIX11.cs: Added call to XBell for AudibleAlert
24581
24582 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
24583
24584         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
24585           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
24586           alert users via sound. We could add an enum arg with different
24587           types of alerts in the future
24588
24589 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
24590
24591         * Control.cs: Fix behaviour problems pointed out by Mike
24592
24593 2005-12-05  Mike Kestner  <mkestner@novell.com>
24594
24595         * StatusBarPanel.cs: add Invalidate method and hook it into all the
24596         prop setters.  Calls parent.Refresh for now, but could be maybe be
24597         optimized with an internal method on StatusBar at some point.
24598         [Fixes #76513]
24599
24600 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
24601
24602         * RichTextBox.cs: Implemented get_SelectionColor
24603
24604 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
24605
24606         * ThemeClearlooks.cs:
24607           - Removed dead code
24608           - Draw black button border only if button is Form.AcceptButton
24609           - Draw correct button color for pressed RadioButton if the mouse 
24610             has entered the button
24611           - Updated ProgressBar drawing!
24612           - Updated CPDrawSizeGrip drawing
24613           - Updated StatusBarPanel drawing
24614
24615 2005-12-05  Mike Kestner  <mkestner@novell.com>
24616
24617         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
24618         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
24619
24620 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
24621
24622         * ThemeClearlooks.cs: Initial check-in, activate with
24623           export MONO_THEME=clearlooks
24624         * ThemeEngine.cs: Added ThemeClearlooks
24625
24626 2005-12-03  Mike Kestner  <mkestner@novell.com>
24627
24628         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
24629         [Fixes #76897]
24630
24631 2005-12-02  Jackson Harper  <jackson@ximian.com>
24632
24633         * Form.cs: If the child form has no menu the default main menu is
24634         used as the active menu.
24635
24636 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
24637
24638         * ListBox.cs: Check if any items exist before trying to resolve 
24639           coordinates into items
24640
24641 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
24642
24643         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
24644           as the second color for the background hatch
24645
24646 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
24647
24648         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
24649         * RichTextBox.cs: FormatText position arguments are 1-based, now making
24650           sure that what we pass to FormatText is always 1-based. Fixes #76885
24651
24652 2005-11-29  Miguel de Icaza  <miguel@novell.com>
24653
24654         * NumericUpDown.cs (EndInit): When we are done initializing,
24655         reflect any updates on the UI.
24656
24657 2005-12-02  Jackson Harper  <jackson@ximian.com>
24658
24659         * ImplicitHScrollBar.cs:
24660         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
24661         their container controls.
24662         * TreeView.cs: Use the new implicit scrollbars.
24663
24664 2005-12-02  Jackson Harper  <jackson@ximian.com>
24665
24666         * TreeView.cs: Make top_node internal so the TreeNodeCollections
24667         can play with it.
24668         * TreeNodeCollection.cs: If we remove the topnode we need to
24669         update topnode to the next node in line.
24670         - When clearing nodes go through the same process as removing
24671         them, so they get depareneted and checked if they are top node.
24672
24673 2005-12-01  Jackson Harper  <jackson@ximian.com>
24674
24675         * TreeView.cs: When imagelists are used the image area is
24676         selectable as well as the text.
24677         - If there are no selected nodes select the first one.
24678         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
24679         so don't do it more then we need to.
24680
24681 2005-12-01  Jackson Harper  <jackson@ximian.com>
24682
24683         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
24684         that arrows can be scaled.
24685
24686 2005-12-01  Jackson Harper  <jackson@ximian.com>
24687
24688         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
24689         fail. Patch by Dieter Bremes
24690
24691 2005-11-30  Jackson Harper  <jackson@ximian.com>
24692
24693         * Form.cs: Property is 2.0 only
24694         * PrintDialog.cs: Signature fix.
24695
24696 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
24697
24698         * TextControl.cs: 
24699           - No longer artificially moves text 2 pixels down (now that we have
24700             borders this is no longer needed)
24701           - Added calcs for left, hanging and right indent
24702
24703 2005-11-23  Mike Kestner  <mkestner@novell.com>
24704
24705         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
24706
24707 2005-11-30  Jackson Harper  <jackson@ximian.com>
24708
24709         * MdiChildContext.cs: Set the cloned menus forms, as these don't
24710         get cloned as part of CloneMenu ().
24711         * Menu.cs: Make sure the parent of the items get set correctly
24712         when they are added.  And the owners are notified of the changes.
24713         * Form.cs: Create an ActiveMenu property, so that when MDI is used
24714         we can change the menu being displayed/handled by the form without
24715         changing the menu assosciated with the form.
24716         - Don't let Mdi children draw/handle menus.
24717         
24718 2005-11-30  Jackson Harper  <jackson@ximian.com>
24719
24720         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
24721         a MenuChanged event. Just to make the API a little more
24722         consistent.
24723         * MainMenu.cs:
24724         * MenuItem.cs: Use the new OnMenuChanged
24725         * MdiChildContext.cs: Handle menu merging.
24726         * Form.cs: Implement MergedMenu.
24727         
24728 2005-11-30  Jackson Harper  <jackson@ximian.com>
24729
24730         * Menu.cs: We were misusing Add. Add goes behind the specified
24731         index according to the docs, and does not replace the specified
24732         index. So I added an Insert method.
24733
24734 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
24735
24736         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
24737           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
24738           is for Jackson
24739         * RichTextBox.cs: Added calls to base for DnD events
24740
24741 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
24742
24743         * TextControl.cs:
24744           - Fixed drag-selection related crash; style fixes
24745           - Implemented undo class
24746             o Implemented method to capture document state for specified
24747               range in document tree
24748             o Implemented method to restore captured document state
24749             o Implemented cursor tracking
24750             o Implemented basic undo stack
24751           - Added undo cursor tracking to methods altering cursor location
24752           - Added undo tracking to selection deletion (still missing
24753             other text-altering hookups)
24754         * RichTextBox.cs:
24755           - Added SelectionLength property
24756           - Implemented CanPaste()
24757           - Implemented Paste()
24758           - Added missing protected methods
24759           - Fixed RTF->Document conversion; now uses font index 0 and color 
24760             index 0 as the default font for the parsed text
24761           - Fixed RTF<->Document font size translation
24762           - Fixed RTF generation, now properly handles cross-tag boundaries
24763             for single line selection
24764           - No longer always appends blank line to generated RTF
24765           - Removed TODOs
24766           - Added missing attributes
24767           - Hooked up undo-related methods
24768         * TextBoxBase.cs:
24769           - Implemented Copy()
24770           - Implemented Paste()
24771           - Implemented Cut()
24772           - Fixed caret mis-behaviour on backspace across line-boundaries
24773
24774 2005-11-29  Jackson Harper  <jackson@ximian.com>
24775
24776         * MdiClient.cs: Add a method for activating mdi children. Very
24777         basic right now. I imagine someday it might need more girth.
24778         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
24779         children windows names are added to the menu item.
24780         * ThemeWin32Classic.cs: Draw the arrow if the item is an
24781         mdilist. This happens regardless of whether or not there are any
24782         mdi windows to see in the list, and according to my tests happens
24783         before the items are even added. Also happens if there isn't even
24784         an mdi client to get windows from.
24785
24786 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
24787
24788         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
24789         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
24790
24791 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
24792
24793         * DataGridTableStyle.cs:
24794           - Create always the styles for the missing columns even if they are
24795             provided by the user (not default table style)
24796         * DataGrid.cs:
24797           - Fixes bug 76770
24798           - Fixes SetDataBinding (always re-attach source)
24799           - Fixes SetNewDataSource (only clear styles if they are not for 
24800             this source)
24801          -  Expands OnTableStylesCollectionChanged to handle style refresh 
24802             and remove properly
24803
24804 2005-11-29  Jackson Harper  <jackson@ximian.com>
24805
24806         * FileDialog.cs: Implement missing bits, remove some dead
24807         code.
24808         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
24809         creation of the panel so that the options set on the dialog are
24810         seen when the panel is created.
24811         * TreeView.cs: raise a click when items are clicked.
24812         
24813 2005-11-29  Jackson Harper  <jackson@ximian.com>
24814
24815         * MdiClient.cs: Pass some signature methods through to base.
24816
24817 2005-11-28  Jackson Harper  <jackson@ximian.com>
24818
24819         * ListView.cs: Raise the click event when items are clicked.
24820
24821 2005-11-28  Jackson Harper  <jackson@ximian.com>
24822
24823         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
24824         a nullref.
24825
24826 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
24827
24828         * ThemeNice.cs: - Removed 1 pixel bitmaps
24829           - Use SmoothingMode.AntiAlias where it makes sense
24830             (ScrollButton arrow for example)
24831           - Enhanced Button focus drawing
24832           - Fixed ComboBox drawing (no artefacts anymore, focus
24833             rectangle is back again, reduced size of ComboButton, etc.)
24834           - Fixed RadioButton focus drawing for Appearence.Button
24835           - Slight ScrollButton redesign
24836           - Some LinearGradientBrush size fixes
24837           - GroupBoxes have now rounded edges
24838           - Fixed StatusBar drawing
24839
24840 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
24841
24842         * ThemeNice.cs: - Remove dead code
24843           - use correct background colors for menus, etc.
24844           - Fake pixel drawing with 1 pixel bitmaps
24845
24846 2005-11-24  Jackson Harper  <jackson@ximian.com>
24847
24848         * MdiClient.cs: Size the scrollbars when resizing the window.
24849         - Resize the maximized windows when the client is resized
24850         * Form.cs: Make the child context available
24851         
24852 2005-11-23  Jackson Harper  <jackson@ximian.com>
24853
24854         * MdiChildContext.cs: Don't size windows if they are maximized.
24855
24856 2005-11-23  Mike Kestner  <mkestner@novell.com>
24857
24858         * ContextMenu.cs: use MenuTracker.
24859         * Control.cs: remove menu handle usage.
24860         * Form.cs: remove menu handle usage.
24861         * Hwnd.cs: remove menu handle usage.
24862         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
24863         motion and clicks to the new Tracker handlers.
24864         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
24865         and handle usage.
24866         * MenuAPI.cs: refactored to combine popup and menubar event handling.
24867         Killed the MENU and MENUITEM data types and associated collections
24868         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
24869         MenuTracker class that exposes the leftovers from the old MenuAPI
24870         static methods. Restructured Capture handling so that only one grab is
24871         done for the entire menu hierarchy instead of handing off grabs to
24872         submenus. Tracker now has an invisible control to Capture when active.
24873         * MenuItem.cs: add sizing accessors, kill Create
24874         and handle usage.
24875         * Theme.cs: remove menu handle and MENU(ITEM) usage.
24876         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
24877         MENU(ITEM). remove menu handle usage, use Menu directly.
24878         * XplatUIDriver.cs: remove menu handle usage.
24879         * XplatUIOSX.cs: remove menu handle usage.
24880         * XplatUIWin32.cs: remove menu handle usage.
24881         * XplatUIX11.cs: remove menu handle usage.
24882
24883 2005-11-22  Jackson Harper  <jackson@ximian.com>
24884
24885         * Hwnd.cs: Don't compute the menu size for
24886         DefaultClientRectangle.
24887         - Reenable menu sizes being computed for GetClienRectangle.
24888         * Form.cs: Remove comment of trechery
24889         
24890 2005-11-22  Jackson Harper  <jackson@ximian.com>
24891
24892         * Hwnd.cs: The adjustments for the menu bar are made when it is
24893         attached to the form.
24894
24895 2005-11-19  Jackson Harper  <jackson@ximian.com>
24896
24897         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
24898         (just like on windows).
24899
24900 2005-11-19  Jackson Harper  <jackson@ximian.com>
24901
24902         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
24903         use real buttons anymore because they are in non client area. The
24904         one TODO here is that I need to somehow invalidate a section of
24905         the non client area.
24906
24907 2005-11-18  Jackson Harper  <jackson@ximian.com>
24908
24909         * Control.cs: Put the enum check back in now that MDI doesnt have
24910         to use this to set border styles.
24911         * Form.cs: Only set mdi child windows borders if the handle has
24912         been created.
24913         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
24914         this directly on to the driver.
24915         - Get the move start position before adjusting for the titlebar
24916         height, this fixes the windows "skipping" when they are first
24917         moved.
24918
24919 2005-11-18  Jackson Harper  <jackson@ximian.com>
24920
24921         * XplatUIX11.cs: Just compute the mdi borders separately as they
24922         don't totally match up with normal form borders.
24923
24924 2005-11-18  Jackson Harper  <jackson@ximian.com>
24925
24926         * Control.cs: Set WS_ styles for borders, so that the driver does
24927         not have to retrieve the control instance to figure out what kind
24928         of borders it should have.
24929         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
24930         driver can know its an mdi child easily.
24931         * XplatUIX11.cs: Get the border styles and whether the window is
24932         MDI from the Styles and ExStyles params instead of having to get a
24933         control. This prevents a chicken and egg problem.       
24934
24935 2005-11-18  Jackson Harper  <jackson@ximian.com>
24936
24937         * MdiClient.cs: Fix typo so scrollbars show up correctly.
24938
24939 2005-11-18  Jackson Harper  <jackson@ximian.com>
24940
24941         * MdiClient.cs: Calculate when to add and remove scrollbars
24942         correctly.
24943         * MdiChildContext.cs: Adjust the y position to take the titlebar
24944         into account.
24945         - No height for FormBorderStyle.None
24946
24947 2005-11-18  Jackson Harper  <jackson@ximian.com>
24948
24949         * Control.cs: Allow non enum values to be used for
24950         InternalBorderStyle.  MDI does this to set a special border style.
24951         - New utility methods for converting points to/from client coords
24952         - Add the newly created control to the Controls collection before
24953         updating its style. This way UpdateStyle can walk the control
24954         heirarchy to find the control if needed.
24955         so I don't need to create a new Point object all the time.
24956         * Form.cs: Let MDI windows handle their border styles.
24957         - Set styles on MDI windows so the correct title style is derived.
24958         * MdiChildContext.cs: Move all the painting and window handling
24959         into the non client area.
24960         - Use correct sizing and put correct buttons on frames based on
24961         the FormBorderStyle.
24962         - Notify the mdi client about scrolling
24963         - Need to handle the buttons ourselves now, because they are all
24964         in non client areas and we can't add controls there.
24965         * MdiClient.cs: Halfway to scrolling, this implementation is
24966         somewhat broken though, we need to check to make sure other
24967         windows aren't causing scrolling before removing the bars. Also
24968         the bars need to be drawn on top, maybe I can switch implicit
24969         controls to be on top.
24970         * Hwnd.cs: caption_height and tool_caption_height are now
24971         properties of an hwnd, this way they can be set by the driver
24972         based on the type of window they are.  In X11 the window manager
24973         handles the decorations so caption_height is zero unless its an
24974         MDI window.
24975         - Add 3 pixel borders for MDI windows (0xFFFF).
24976         - Get rid of some code duplication, have DefaultClientRectanle
24977         just call GetClientRectangle.
24978         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
24979         Hwnd now.
24980         - Set border styles differently for mdi windows.
24981         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
24982         Hwnd now.
24983         
24984 2005-11-15  Mike Kestner  <mkestner@novell.com>
24985
24986         * Menu.cs: when adding an item to the collection, if item is already 
24987         parented, remove it from the parent.
24988
24989 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
24990
24991         * X11DesktopColors.cs: Added KDE support
24992
24993 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
24994
24995         * XplatUIWin32.cs: 
24996           - Clipboard methods now can translate Rtf format
24997           - No longer removes clipboard contents whenever a new format is added
24998             to allow placing multiple formats on the clipboard
24999         * Clipboard.cs: Clipboard now supports getting a IDataObject and
25000           will place all formats contained in it onto the clipboard. Also
25001           now cleans the clipboard before placing a new object onto it
25002         * RichTextBox.cs:
25003           - Implemented set_Rtf
25004           - Implemented set_SelectedRtf
25005           - Created InsertRTFFromStream() method to allow single code base
25006             for all properties and methods that insert RTF into document
25007           - Removed debug output
25008         * TextControl.cs:
25009           - Fixed Delete(int) to fix up line numbers
25010           - Fixed ReplaceSelection to combine start and end line
25011           - Fixed serious DeleteChars bug that would leave the document tree
25012             broken
25013           - Improved DumpTree with several logic checks to detect broken
25014             document trees
25015           - Removed debug lines
25016           - Fixed Caret.WordForward/WordBack moving code, now always also 
25017             updates caret.tag (fixes crash when word-selecting across tag
25018             boundaries via keyboard)
25019           - Added Insert() method for inserting multiline text into documents
25020           - Fixed DeleteChars() calculation errors that would cause a broken
25021             tag chain with multiple tag lines
25022           - DeleteChars() no longer crashes on multi-tag lines if not all tags
25023           - Split() no longer moves caret if split is at caret location
25024           - ReplaceSelection() now updates the cursor and re-displays it
25025           - ReplaceSelection() now uses new Insert() method to avoid code
25026             duplication
25027           - FormatText() can now handle formatting partial lines
25028         * TextBoxBase.cs:
25029           - Append now uses new TextControl.Insert() method (this avoids 
25030             duplicate code)
25031           - Implemented Ctrl-X (Cut) (
25032           - Implemented Ctrl-C (Copy)
25033           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
25034             regeneration when pasting text; roundtripping Copy&Paste within
25035             edit control still fails due to some calculation bugs in GenerateRTF)
25036           - The Delete key will now remove the current selection if it is visible
25037         * TextBox.cs: Removed debug lines
25038         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
25039           driver to be initialized and can't therefore be done via a static ctor)
25040
25041 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
25042
25043         * TextControl.cs: Added backend code for finding char arrays and strings
25044         * TextBoxBase.cs:
25045           - Added mouse wheel scroll support
25046           - Added support for VScroll and HScroll events
25047         * RichTextBox.cs:
25048           - Implemented all seven Find() variants
25049           - Implemented GetCharFromPosition()
25050           - Implemented GetCharIndexFromPosition()
25051           - Implemented GetLineFromIndex()
25052           - Implemented GetPositionFromCharIndex();
25053           - Implemented SaveFile for PlainText and UnicodeText
25054           - Fixed set_Font, now setting a new font applies that font to
25055             the whole document
25056           - Implemented generic Document to RTF converter
25057           - Implemented SaveFile for RichText format (still missing unicode
25058             conversion for non-ansi chars)
25059           - Implemented get_Rtf
25060           - Implemented get_SelectedRtf
25061
25062 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
25063
25064         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
25065           to allow any captures to be released before triggering OnClick. This
25066           way a click handler may capture the mouse without interference.
25067         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
25068           This way we send them even though X may not allow a grab (if the window
25069           isn't visible, for example)
25070
25071 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
25072
25073         * DataGridViewRowEventArgs.cs: DataGridView implementation
25074         * DataGridViewElement.cs: DataGridView implementation
25075         * DataGridViewComboBoxCell.cs: DataGridView implementation
25076         * DataGridViewDataErrorContexts.cs: DataGridView implementation
25077         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
25078         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
25079         * ImageLayout.cs: DataGridView implementation
25080         * DataGridViewComboBoxColumn.cs: DataGridView implementation
25081         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
25082         * DataGridViewSelectionMode.cs: DataGridView implementation
25083         * IDataGridViewEditingControl.cs: DataGridView implementation
25084         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
25085         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
25086         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
25087         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
25088         * DataGridViewColumnSortMode.cs: DataGridView implementation
25089         * DataGridView.cs: DataGridView implementation
25090         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
25091         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
25092         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
25093         * Padding.cs: DataGridView implementation
25094         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
25095         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
25096         * DataGridViewRowEventHandler.cs: DataGridView implementation
25097         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
25098         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
25099         * DataGridViewButtonCell.cs: DataGridView implementation
25100         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
25101         * DataGridViewEditMode.cs: DataGridView implementation
25102         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
25103         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
25104         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
25105         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
25106         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
25107         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
25108         * DataGridViewCellEventHandler.cs: DataGridView implementation
25109         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
25110         * DataGridViewCellStyleConverter.cs: DataGridView implementation
25111         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
25112         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
25113         * DataGridViewColumnEventArgs.cs: DataGridView implementation
25114         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
25115         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
25116         * QuestionEventArgs.cs: DataGridView implementation
25117         * IDataGridViewEditingCell.cs: DataGridView implementation
25118         * DataGridViewTriState.cs: DataGridView implementation
25119         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
25120         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
25121         * DataGridViewColumnCollection.cs: DataGridView implementation
25122         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
25123         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
25124         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
25125         * DataGridViewColumn.cs: DataGridView implementation
25126         * DataGridViewCellBorderStyle.cs: DataGridView implementation
25127         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
25128         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
25129         * DataGridViewRow.cs: DataGridView implementation
25130         * DataGridViewImageCellLayout.cs: DataGridView implementation
25131         * DataGridViewImageCell.cs: DataGridView implementation
25132         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
25133         * DataGridViewCheckBoxCell.cs: DataGridView implementation
25134         * DataGridViewHeaderCell.cs: DataGridView implementation
25135         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
25136         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
25137         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
25138         * DataGridViewTextBoxColumn.cs: DataGridView implementation
25139         * QuestionEventHandler.cs: DataGridView implementation
25140         * DataGridViewCellStyleScopes.cs: DataGridView implementation
25141         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
25142         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
25143         * DataGridViewCell.cs: DataGridView implementation
25144         * DataGridViewCellEventArgs.cs: DataGridView implementation
25145         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
25146         * DataGridViewCellStyle.cs: DataGridView implementation
25147         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
25148         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
25149         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
25150         * TextFormatFlags.cs: DataGridView implementation
25151         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
25152         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
25153         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
25154         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
25155         * DataGridViewButtonColumn.cs: DataGridView implementation
25156         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
25157         * HandledMouseEventArgs.cs: DataGridView implementation
25158         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
25159         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
25160         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
25161         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
25162         * DataGridViewRowCollection.cs: DataGridView implementation
25163         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
25164         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
25165         * DataGridViewHitTestType.cs: DataGridView implementation
25166         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
25167         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
25168         * DataGridViewColumnEventHandler.cs: DataGridView implementation
25169         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
25170         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
25171         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
25172         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
25173         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
25174         * DataGridViewContentAlignment.cs: DataGridView implementation
25175         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
25176         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
25177         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
25178         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
25179         * DataGridViewPaintParts.cs: DataGridView implementation
25180         * DataGridViewCellCollection.cs: DataGridView implementation
25181         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
25182         * DataGridViewImageColumn.cs: DataGridView implementation
25183         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
25184         * DataGridViewElementStates.cs: DataGridView implementation
25185         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
25186         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
25187         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
25188         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
25189         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
25190         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
25191         * DataGridViewRowHeaderCell.cs: DataGridView implementation
25192         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
25193         * DataGridViewTextBoxCell.cs: DataGridView implementation
25194         * DataGridViewBand.cs: DataGridView implementation
25195         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
25196         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
25197         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
25198         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
25199         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
25200         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
25201         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
25202         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
25203         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
25204         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
25205         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
25206
25207 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
25208
25209         * ThemeWin32Classic.cs: 
25210           - Draw the outside focus rectangle around buttons
25211           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
25212             doesn't use end caps for every dash of a line anymore. This
25213             workaround ignores the forecolor.
25214
25215 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
25216
25217         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
25218           endian safe.
25219
25220 2005-11-07  Jackson Harper  <jackson@ximian.com>
25221
25222         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
25223
25224 2005-11-07  Jackson Harper  <jackson@ximian.com>
25225
25226         * ScrollableControl.cs: Calculate the maximum and change vars
25227         (more) correctly so that scrollbars appear as a sensible size.
25228
25229 2005-11-04  Jackson Harper  <jackson@ximian.com>
25230
25231         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
25232         collection.
25233         * TreeView.cs: When the tree is sorted null out the top_node so
25234         that it is recalculated.
25235         - Use dotted lines instead of dashed lines to match MS better.
25236
25237 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
25238
25239         * ListView.cs: 
25240           - Implements key search for items. Useful when browsing files with FileDialog
25241           - When changing view mode or when clear the items reset scrollbar positions
25242
25243 2005-11-04  Jackson Harper  <jackson@ximian.com>
25244
25245         * CurrencyManager.cs: Implement the MetaDataChanged event, the
25246         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
25247         as to what the method may do as there is no real way of creating a
25248         derived CurrencyManager and calling the method. 
25249
25250 2005-11-03  Jackson Harper  <jackson@ximian.com>
25251
25252         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
25253         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
25254         method which seems to just be used internally to refresh the tabs.
25255
25256 2005-11-03  Jackson Harper  <jackson@ximian.com>
25257
25258         * TabControl.cs: Implement the remove method. Fix some broken
25259         comments.
25260
25261 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
25262
25263         * DateTimePicker.cs:
25264           - Added missing DateTimePickerAccessibleObject class
25265           - Added missing events
25266           - Added OnFontChanged method
25267         * Form.cs: Added missing attributes
25268         * TreeView.cs: Added missing attributes
25269
25270 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
25271
25272         * GridItemCollection.cs: Fix signatures
25273
25274 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
25275
25276         * XplatUI.cs: Updated build rev/date
25277         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
25278           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
25279         * Application.cs: Trigger context-specific ExitThread events
25280
25281 2005-11-03  Jackson Harper  <jackson@ximian.com>
25282
25283         * Menu.cs:
25284         * MainMenu.cs:
25285         * GridTableStylesCollection.cs:
25286         * Timer.cs:
25287         * TabPage.cs:
25288         * HelpProvider.cs:
25289         * StatusBar.cs:
25290         * MonthCalendar.cs: Signature fixes
25291
25292 2005-11-03  Jackson Harper  <jackson@ximian.com>
25293
25294         * TreeNodeCollection.cs: Remove should not be virtual.
25295         * TreeView.cs: Implement the last of the missing methods.
25296
25297 2005-11-03  Jackson Harper  <jackson@ximian.com>
25298
25299         * TreeNodeConverter.cs: Implement to get off my class-status back.
25300
25301 2005-11-03  Jackson Harper  <jackson@ximian.com>
25302
25303         * TreeView.cs: Hookup the bits for drag and drop.
25304         * TreeNode.cs: Don't cache the tree_view or index anymore, now
25305         that nodes can be moved from tree to tree easily this just causes
25306         all sorts of problems.
25307         * TreeNodeCollection: Don't need to give treenodes an index and
25308         treeview anymore when they are added, these are computed on the
25309         fly. Also make sure to remove a node before its added.
25310
25311 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
25312
25313         * TextControl.cs:
25314           - Added CaretSelection enum
25315           - Added comparison methods to Marker struct, makes selection code
25316             more readable
25317           - Added SelectionStart and SelectionEnd as 'moveable' location for
25318             the CaretDirection enum and handler
25319           - Added selection_prev variable to track optimized invalidation for
25320             word and line selection
25321           - Added SelectionVisible property (returns true if there is a valid 
25322             selection)
25323           - Switched CaretHasFocus to only display the caret if there is no
25324             visible selection
25325           - Avoiding StringBuilder.ToString to retrieve a single char, instead
25326             using the direct character index; should be much faster
25327           - Added various conditional debug statements
25328           - Fixed invalidation calculation for selection ranges
25329           - Added ExpandSelection() method to support word and line selection
25330           - Switched SetSelectionToCaret to use new Marker compare overloads
25331           - Added central IsWordSeparator() method to determine word 
25332             separators/whitespace and FindWordSeparator() to streamline common
25333             usage of IsWordSeparator()
25334         * TextBoxBase.cs:
25335           - Removed unneeded grabbed variable, it was just mirroring
25336             Control.Capture
25337           - No longer firing OnTextChanged event when Text setter is called,
25338             since the base will fire the event for us
25339           - Added handling of Ctrl-Up/Down selection
25340           - Added handling of Shift-Cursorkey selection
25341           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
25342             words
25343           - Added handling of Shift and Ctrl-Shift-Home/End selection
25344           - Removed some debug output
25345           - Added handling for single/double/tripple-click to place caret/
25346             select word/select line respectively (Fixes bug #76031)
25347           - Added support for drag expansion of word/line selection
25348         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
25349           current selection
25350
25351 2005-11-02  Jackson Harper  <jackson@ximian.com>
25352
25353         * X11Dnd.cs: If the drag is going to and from a MWF window just
25354         copy the data instead of sending it out through the X Selection
25355         mechanism.
25356
25357 2005-11-02  Jackson Harper  <jackson@ximian.com>
25358
25359         * X11Dnd.cs:
25360         * XplatUIX11.cs: When in a drag we don't want motion notify
25361         messages to get passed on to the other controls. This prevents
25362         mouse move messages from showing up in the drag source.
25363
25364 2005-11-02  Jackson Harper  <jackson@ximian.com>
25365
25366         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
25367         the correct button is release to end a drag.
25368         * XplatUIX11.cs: Make the button state internal so the drag system
25369         can access it.  Dragging needs to know about all button releases,
25370         not just left button.
25371
25372 2005-11-02  Miguel de Icaza  <miguel@novell.com>
25373
25374         * Form.cs (Icon): If the icon is null, reset the icon to the
25375         default value. 
25376
25377         * Cursor.cs: When writing the AND-mask bitmap do not include the
25378         number of colors, but hardcode those to two (black and white),
25379         fixes the loading of color cursors (Paint Dot Net).
25380
25381         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
25382         turn off autoscaling.
25383
25384         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
25385
25386 2005-11-02  Jackson Harper  <jackson@ximian.com>
25387
25388         * X11Dnd.cs: Make sure to send a status message if the pointer
25389         enters a control that can not accept a drop, otherwise the cursor
25390         isn't updated correctly. Also tried to compress the lines of code
25391         a bit.
25392
25393 2005-11-02  Jackson Harper  <jackson@ximian.com>
25394
25395         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
25396         set actions correctly.  This isn't perfect as XDND and win32 have
25397         some differences on how you allow actions. I'll clear this up by
25398         adding a path for drag from MWF to MWF windows.
25399         * XplatUIX11.cs: Hook into the dnd system.
25400
25401 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
25402
25403         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
25404         previously shown but they are no longer need it. Very obvious when 
25405         browsing files with FileDialog.
25406
25407 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
25408
25409         * Control.cs: We always need to call OnPaintBackground. We pretty much
25410           ignore AllPaintingInWmPaint and always do the painting there, whether 
25411           it's set or not, since we always ignore the WM_ERASEBKGND message 
25412           (which we don't generate on X11). This fixes #76616.
25413         * Panel.cs: Removed unneeded background painting. This happens properly
25414           in Control.cs already
25415
25416 2005-10-31  Mike Kestner  <mkestner@novell.com>
25417
25418         * Menu.cs: Add items to collection before setting their index.
25419         * MenuItem.cs : add range checking with ArgumentException like MS.
25420         [Fixes #76510]
25421
25422 2005-10-31  Jackson Harper  <jackson@ximian.com>
25423
25424         * ListBox.cs: Invalidate if the area is visible at all not just
25425         contained in the visible rect. Fixes unselection of semi visible
25426         items.
25427
25428 2005-10-31  Jackson Harper  <jackson@ximian.com>
25429
25430         * Control.cs: Consistently name the dnd methods. Make them
25431         internal so we can override them to match some MS behavoir
25432         internally.
25433         * Win32DnD.cs: Use the new consistent names.
25434
25435 2005-10-31  Jackson Harper  <jackson@ximian.com>
25436
25437         * TreeView.cs: Don't draw the selected node when we lose focus.
25438
25439 2005-10-31  Jackson Harper  <jackson@ximian.com>
25440
25441         * X11Dnd.cs: We still need to reset the state even though a full
25442         reset isn't being done, otherwise status's still get sent all over
25443         the place.
25444
25445 2005-10-31  Jackson Harper  <jackson@ximian.com>
25446
25447         * Control.cs: Make the dnd_aware flag internal so the dnd
25448         subsystem can check it. Catch exceptions thrown in dnd handlers to
25449         match MS behavoir.
25450         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
25451         * X11Dnd.cs: Handle null data in the converters. Set the XDND
25452         version when sending a XdndEnter. Use the control/hwnd dnd_aware
25453         flags to reduce the number of dnd enters/status's sent.
25454
25455 2005-10-31  Jackson Harper  <jackson@ximian.com>
25456
25457         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
25458
25459 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
25460
25461         * PictureBox.cs: Fixes 76512
25462
25463 2005-10-28  Jackson Harper  <jackson@ximian.com>
25464
25465         * X11Dnd.cs: Early implementation to support winforms being a drag
25466         source for data on X11. Also restructured the converters so they
25467         can go both ways now.
25468         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
25469         
25470 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
25471
25472         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
25473           clipboard requests
25474
25475 2005-10-27  Jackson Harper  <jackson@ximian.com>
25476
25477         * TreeNode.cs: Implement serialization so my DnD examples will work.
25478
25479 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
25480
25481         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
25482           TreeView.cs: Don't dispose objects that are not owned.
25483           
25484 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
25485
25486         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
25487           should retrieve the current cursor and report that, but XplatUI
25488           doesn't (yet) have an interface for that (and I'm not sure I even
25489           can, on X11)
25490         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
25491           until any message loop processing is done (and the WM_SETCURSOR
25492           replaces the cursor to the proper one)
25493         * XplatUIX11.cs: 
25494           - Fixed override behaviour, we can't set the cursor globally on X11, 
25495             just for our windows.
25496           - Invalidating the System.Drawing X11 display handle when we are
25497             shutting down
25498         * Control.cs: Fix to make csc happy
25499
25500 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
25501
25502         * TextBoxBase.cs: 
25503           - get_Text: Add last line (without trailing newline) to returned
25504             value (Fixes 76212)
25505           - get_TextLength: Count last line in returned length
25506           - ToString: Call Text property instead of duplicating code
25507
25508 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
25509
25510         * ImageList.cs: Dispose ImageAttributes objects.
25511
25512 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
25513
25514         * ImageList.cs: Use attribute constructors with less arguments where
25515           possible.
25516
25517 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
25518
25519         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
25520           Use typeof instead of strings when assembly is referenced. Added
25521           some more comments.
25522
25523 2005-10-21  Jackson Harper  <jackson@ximian.com>
25524
25525         * ListView.cs: Raise a double click event. Also tried to somewhat
25526         fix when the selectedindexchanged event is raised. Its still
25527         broken though.
25528
25529 2005-10-21  Jackson Harper  <jackson@ximian.com>
25530
25531         * TreeView.cs: New method to invalidate the plus minus area of a
25532         node without invalidating the whole node (maybe this can be used
25533         in some more places).
25534         * TreeNodeCollection.cs: When adding to an empty node we need to
25535         invalidate its plus minus area so the little block shows up.
25536         
25537 2005-10-21  Jackson Harper  <jackson@ximian.com>
25538
25539         * TreeView.cs: Make sure that when we invalidate a node the bounds
25540         are big enough to cover the selected box and the focus
25541         rectangle. Use a different colour for the lines connecting nodes
25542         so they show up with all themes.
25543
25544 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
25545
25546         * NativeWindow.cs: Don't call anything that could call into the driver,
25547           we might be on a different thread.
25548
25549 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
25550
25551         * Control.cs(Dispose): Since Dispose might run on a different thread,
25552           make sure that we call methods that could call into the driver via
25553           invoke, to avoid thread issues
25554
25555 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
25556
25557         * XplatUI.cs: Removed finalizer
25558         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
25559           not allowing to be called on the finalizer thread.
25560
25561 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
25562
25563         * ImageList.cs:
25564           - Reverted r51889 and r51891.
25565           - Added ImageListItem class that stores unmodified image items and image
25566             properties required to create list images until handle is created.
25567           - Added AddItem and moved image creation logic to AddItemInternal.
25568           - Added CreateHandle method that creates images based on unmodified items.
25569           - Added DestroyHandle that changes state to store unmodified items.
25570           - Add and AddStrip methods no more create handle.
25571           - ReduceColorDepth has no return value.
25572           - Dispose destroys handle.
25573           - Modified other methods to reflect the above changes.
25574           - Implemented key support.
25575           - Added profile 2.0 members and attributes.
25576           - Added private Reset and ShouldSerialize methods that provide the same
25577             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
25578             them as they are private.
25579           - Added some more comments about implementation details.
25580
25581 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
25582
25583         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
25584
25585 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
25586
25587         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
25588
25589 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
25590
25591         * DataGridDrawingLogic.cs: Fixes column hit calcultation
25592         * DataGridColumnStyle.cs: Remove debug message
25593
25594 2005-10-20  Jackson Harper  <jackson@ximian.com>
25595
25596         * TreeView.cs: We can always get input keys regardless of whether
25597         or not editing is enabled. They are used for navigation.
25598
25599 2005-10-20  Jackson Harper  <jackson@ximian.com>
25600
25601         * TreeNode.cs: Use the viewport rect for determining if a node
25602         needs to be moved for visibility. Don't use Begin/End edit. This
25603         calls a full refresh when its done.
25604         * TreeView.cs: New SetBottom works correctly.  Make the viewport
25605         rect property internal so the treenodes can see it. When clicking
25606         on a node we need to ensure that its visible because it might just
25607         be partly visible when clicked.
25608
25609 2005-10-20  Jackson Harper  <jackson@ximian.com>
25610
25611         * TreeNodeCollection.cs: Remove debug code.
25612
25613 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
25614
25615         * Datagrid.cs: Implements column sorting in Datagrid
25616         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
25617
25618 2005-10-20  Jackson Harper  <jackson@ximian.com>
25619
25620         * TreeNodeCollection.cs: Remove items properly. Update the correct
25621         area after removing them.
25622
25623 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
25624
25625         * Datagrid.cs: Should not call base.OnPaintBackground
25626
25627 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
25628
25629         * XplatUIX11.cs (GetMessage):
25630           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
25631             window instead of client window
25632           - Now properly calculates NC_xBUTTONUP message coordinates
25633           - ScreenToMenu now properly calculates it's coordinates of whole 
25634             window, since menus are in the whole window, not in the client
25635             window
25636           - Added WholeToScreen coordinate translation method
25637
25638 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
25639
25640         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
25641           want to return a message, loop back to the beginning of the function
25642           and grab the next real message to process instead.
25643
25644 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
25645
25646         * Splitter.cs: Properly set limits if no filler control is used
25647
25648 2005-10-19  Jackson Harper  <jackson@ximian.com>
25649
25650         * ColorDialog.cs: Don't show the help button if it is not enabled
25651         instead of disabling it (this is what MS does). Don't create the
25652         panel until the dialog is run, otherwise the vars (such as
25653         ShowHelp) are not set yet.
25654
25655 2005-10-19  Jackson Harper  <jackson@ximian.com>
25656
25657         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
25658         are reduced when adding nodes.
25659         * TreeNode.cs:
25660         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
25661         tree.
25662         
25663 2005-10-19  Jackson Harper  <jackson@ximian.com>
25664
25665         * FolderBrowserDialog.cs: End editing our treeview so the window
25666         actually gets refreshed.
25667
25668 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
25669
25670         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
25671           Obsoleted handling of WM_ERASEBKGND, now always draws our background
25672           inside of WM_PAINT
25673
25674 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
25675
25676         * MenuAPI.cs: Returns after Hidding window
25677         * XplatUIX11.cs: Added TODO found while debugging menu issues
25678
25679 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
25680
25681         * XplatUIX11.cs: Do not re-map the whole window when it's size
25682           becomes non-zero unless it's supposed to be actually visible
25683
25684 2005-10-18  Jackson Harper  <jackson@ximian.com>
25685
25686         * TreeView.cs: We don't need to keep a count anymore.
25687         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
25688         use the Grow method.
25689
25690 2005-10-18  Jackson Harper  <jackson@ximian.com>
25691
25692         * TreeNodeCollection.cs: Insert is not supported on arrays, so
25693         implement it manually here.
25694
25695 2005-10-18  Jackson Harper  <jackson@ximian.com>
25696
25697         * ImageList.cs: Dont kill the list when the colour depth is
25698         changed, just change the colour depth of all the images.
25699         - Same goes for setting the image size. Just resize them all
25700         instead of killing the list softly.
25701
25702 2005-10-18  Jackson Harper  <jackson@ximian.com>
25703
25704         * Control.cs: Don't invalidate empty rectangles.
25705
25706 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
25707
25708         * ListViewItem.cs:
25709           - Adds checked item to the Checked/Item lists (where empty before)
25710           - Do not add items to the Selected lists if they are already present
25711         * ListView.cs:
25712           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
25713           - When deleting items make sure that we delete them for the Selected
25714           and Checked list also.
25715
25716 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
25717
25718         * Label.cs: Dispose objects no longer used
25719         * ThemeWin32Classic.cs: Dispose objects no longer used
25720
25721 2005-10-18  Jackson Harper  <jackson@ximian.com>
25722
25723         * TabControl.cs: Don't refresh the whole control when the tabs are
25724         scrolled, we just need to refresh the tab area.
25725
25726 2005-10-17  Jackson Harper  <jackson@ximian.com>
25727
25728         * XplatUIX11.cs: Compress code a little bit. Only calculate the
25729         after handle when we need it.
25730
25731 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
25732
25733         * Control.cs: When the parent size changes, recalculate anchor 
25734           positions. Partial fix for #76462
25735
25736 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
25737
25738         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
25739           drawn. Fixes #76462
25740
25741 2005-10-17  Jackson Harper  <jackson@ximian.com>
25742
25743         * MonthCalendar.cs: Don't create the numeric up down until our
25744         handle is created. Otherwise our handle is created in the
25745         constructor and we don't know if we are a WS_CHILD or WS_POPUP
25746         yet.
25747
25748 2005-10-17  Jackson Harper  <jackson@ximian.com>
25749
25750         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
25751         correctly.
25752
25753 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
25754         * TreeNode.cs : small logical fix (was using local var instead of field)
25755         
25756 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
25757
25758         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
25759
25760 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
25761
25762         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
25763
25764 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
25765
25766         * Control.cs: 
25767           - Re-implemented anchoring code. My first version was really broken.
25768             This fixes bug #76033. Unlike the previous implementation we will
25769             no longer have round errors since all numbers are calculated from
25770             scratch every time. Removed various anchor-related obsolete vars.
25771           - InitLayout no longer causes layout event firing and layout to be 
25772             performed
25773
25774 2005-10-16  Jackson Harper  <jackson@ximian.com>
25775
25776         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
25777         which was broken).
25778
25779 2005-10-16  Jackson Harper  <jackson@ximian.com>
25780
25781         * TabControl.cs: Remove debug code.
25782
25783 2005-10-16  Jackson Harper  <jackson@ximian.com>
25784
25785         * XEventQueue.cs: Increase the default queue size (very simple
25786         apps needed to grow the queue).
25787         * Hwnd.cs: No finalizer so we don't need to suppress
25788         finalization. Compute the invalid area manually so a new rectangle
25789         does not newto be created.
25790         * ScrollableControl.cs: Don't set any params (otherwise visibility
25791         isn't set correctly).
25792         * MdiChildContext.cs: New constructor takes the mdi parent so it
25793         doesn't have to be computed and avoids a crash on windows. Draw
25794         the window icon properly, and allow the text to be seen.
25795         * Form.cs: Use new MdiChildContext constructor. Make sure the
25796         child context isn't null in wndproc.
25797         * TabControl.cs: Don't set focus, this is muddling keyboard
25798         behavoir. Expand the tab rows when a window size increase will
25799         allow extra tabs to be seen. Don't allow tabs smaller than the
25800         width of a window to be scrolled out of view.
25801         * TreeNode.cs:
25802         * TreeView.cs: Use measure string to calculate a nodes width, the
25803         width is cached and only updated when the text or the font is
25804         changed. Don't check for expand/collapse clicks on the first level
25805         nodes if root lines are disabled.
25806         
25807 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
25808
25809         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
25810
25811 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
25812
25813         * DataGridBoolColumn.cs: fixes warning
25814
25815 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
25816
25817         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
25818         to match more to match more precisely the MS Net behavior
25819
25820 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
25821
25822         * Hwnd.cs: Added field to track if window is mapped
25823         * XplatUIX11.cs: 
25824           - Unmap windows if they become 0-size, re-map when 
25825             they are >0 again; fixes #76035
25826           - Re-set our error handler after initializing X11Desktop
25827             to override any error handlers Gtk or whatever was called
25828             may have set.
25829
25830 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
25831
25832         * CheckedListBox.cs: Removed unused vars
25833         * ListView.cs: Fixed signatures
25834         * RichTextBox.cs: Removed unused vars
25835         * TextBoxBase.cs: Removed unused vars
25836         * XplatUIWin32.cs: Removed unused vars
25837         * XplatUIX11.cs: Removed unused vars
25838         * XplatUI.cs: Updated version and date to latest published
25839
25840 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
25841
25842         * Cursor.cs: Added private .ctor to work around a bug in
25843           resourceset (Thanks to Geoff Norton for the help on this)
25844         * SplitterEventArgs.cs: Made fields accessible so we don't
25845           waste boatloads of objects and can reuse the same one
25846           in Splitter
25847         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
25848           any captions and borders when generating screen coordinates
25849         * Splitter.cs: Reimplemented control, now fully complete, uses
25850           rubberband drawing, supports and obeys all properties, has
25851           proper cursors
25852
25853 2005-10-13  Miguel de Icaza  <miguel@novell.com>
25854
25855         * Form.cs (Form): Setup default values for autoscale and
25856         autoscale_base_size;  Make these instance variables, not static
25857         variables. 
25858
25859         (OnLoad): on the first load, adjust the size of the form.
25860
25861 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
25862
25863         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
25864           width argument to DrawReversibleRectangle()
25865         * XplatUIWin32.cs, XplatUIX11.cs: 
25866           - Implemented width for DrawReversibleRectangle()
25867           - Added logic to DrawReversibleRectangle that recognizes a zero
25868             width or height and only draws a line in that situation
25869         
25870 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
25871
25872         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
25873         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
25874         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
25875           method (it uses our FosterParent window to get a graphics context)
25876
25877 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
25878
25879         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
25880           and SetWindowBackground methods
25881         * Control.cs:
25882           - Setting proper ControlStyles
25883           - We no longer call XplatUI.SetWindowBackground and XplatUI.
25884             EraseWindowBackground, instead we draw the window background
25885             ourselves in PaintControlBackground. This behaviour is
25886             required to match MS, where, when OnPaintBackground is not
25887             called, the background is not drawn.
25888           - Removed unneeded Refresh() in set_Text
25889         * Hwnd.cs: Dropped the ErasePending support. No longer needed
25890         * XplatUIX11.cs:
25891           - Created DeriveStyles method to translate from CreateParams to
25892             FormBorderStyle and TitleStyle, also handles BorderStyle (which
25893             matches FormBorderStyle enum values)
25894           - Consolidated SetHwndStyles and CalculateWindowRect border/title
25895             style calculations into single DeriveStyles method
25896           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
25897             from redrawing the whole window on any resize or expose.
25898           - Fixed CreateWindow usage of SetWindowValuemask. Before not
25899             all styles were applied to our whole/client window appropriately
25900           - Removed EraseWindowBackground() and SetWindowBackground() methods
25901           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
25902             no longer clear/redraw the background through X
25903           - Removed handling of erase_pending bit, we have no use for it (or
25904             so it seems)
25905         * XplatUIOSX.cs:
25906           - Removed generation and handling of WM_ERASEBKGND message
25907           - Removed EraseWindowBackground() and SetWindowBackground() methods
25908           - Removed handling of hwnd.ErasePending flag
25909         * XplatUIWin32.cs:
25910           - Removed EraseWindowBackground() and SetWindowBackground() methods
25911           - We no longer call EraseWindowBackground on PaintEventStart, we 
25912             ignore the fErase flag, erasing is handled in Control in the
25913             background handler
25914         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
25915           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
25916           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
25917           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
25918           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
25919           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
25920           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
25921
25922 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
25923
25924         * PropertyGrids.cs: Get sub properties
25925         * PropertyGridView.cs: Fix drawing code
25926
25927 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
25928
25929         * ListBox.cs: Fixes 76383
25930
25931 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
25932
25933         * DataGridTextBoxColumn.cs: Sets location and size before attachment
25934         * ThemeWin32Classic.cs: Fixes border drawing and calculations
25935         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
25936
25937
25938 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
25939
25940         * ComboBox.cs: Fixes border drawing
25941
25942 2005-10-10  Miguel de Icaza  <miguel@novell.com>
25943
25944         * MimeIcon.cs: Ignore errors if the file can not be read.
25945
25946 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
25947
25948         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
25949          - Fixed border calculations
25950          - Fixed horizontal scrolling in single column listboxes
25951          - Fixed drawing issues
25952
25953 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
25954
25955         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
25956           FormBorderStyle enum
25957         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
25958           code to determine FormBorderStyles from CreateParams
25959         * Form.cs:
25960           - Fixed bug where we'd set the wrong window styles if we were
25961             not creating an MDI window
25962           - Added call to XplatUI.SetBorderStyle when form borders are set
25963         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
25964         * Hwnd.cs:
25965           - Removed obsolete edge style
25966           - Switched from BorderStyle to FormBorderStyle
25967         
25968 2005-10-10  Jackson Harper  <jackson@ximian.com>
25969
25970         * Form.cs: Use the property to get the window handle instead of
25971         accessing it directly. Prevents a null reference exception.
25972
25973 2005-10-10  Jackson Harper  <jackson@ximian.com>
25974
25975         * TreeView.cs: Don't adjust the rect given to DrawString now that
25976         our libgdiplus draws correctly.
25977
25978 2005-10-08  Jackson Harper  <jackson@ximian.com>
25979
25980         * TreeView.cs: Don't try to find the clicked on node if there are
25981         no nodes in the tree.
25982
25983 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
25984
25985         * RichTextBox.cs:
25986
25987           restore
25988
25989 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
25990
25991         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
25992           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
25993           ErrorProvider.cs:
25994           Use ResPool for brushes and dispose System.Drawing objects that
25995           are not used anymore.
25996
25997 2005-10-07  Jackson Harper  <jackson@ximian.com>
25998
25999         * MdiChildContext.cs: Use the new borders instead of drawing them
26000         ourselves.
26001
26002 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
26003
26004         * Calling UpdateBounds after changing the window's BorderStyle 
26005         since the style can change the ClientSize
26006
26007 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
26008
26009         * Control.cs: Made PaintControlBackground virtual
26010         * Panel.cs: Overriding PaintControlBackground instead of using paint
26011           event; paint event method was interfering with 'real' users of the
26012           event.
26013
26014 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
26015
26016         * ThemeWin32Classic.cs: remove border drawing since it is handled
26017         by the base control class now and was causing double border drawing.
26018
26019 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
26020
26021         * Panel.cs: Redraw our background on paint. Not a pretty solution,
26022           but it does seem to match MS behaviour. This fixes bug #75324
26023
26024 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
26025
26026         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
26027           somewhat hackish looking
26028
26029 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
26030
26031         * TextBoxBase.cs:
26032           - We now accept Enter even if AcceptEnter is false, if the containing
26033             form does not have an AcceptButton configured (fixes bug #76355)
26034           - Calculations are now fixed to no longer use Width/Height, but
26035             ClientSize.Width/Height, since we now support borders (this was
26036             a result of fixing borders and therefore bug #76166)
26037           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
26038             true (fixes bug #76354)
26039         
26040 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
26041
26042         * Control.cs: 
26043           - Defaulting BorderStyle and setting it in XplatUI when our window 
26044             is created
26045           - Added enum check to InternalBorderStyle setter
26046         * XplatUIX11.cs: 
26047           - Added drawing of window borders
26048           - Now properly calculates WM decorations offset for toplevel 
26049             windows (fixes bug #74763)
26050         * XplatUIWin32.cs: 
26051           - Implemented BorderStyles for windows (we're letting win32 draw 
26052             the border for us)
26053           - Fixed the signature for SetWindowLong
26054         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
26055           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
26056           setting borders
26057         * UpDownBase.cs: Remove drawing of borders, this is handled by
26058           the driver, outside the client area
26059         * ListView.cs: Removed bogus border calculations. The control should
26060           be oblivious to borders, since those are not part of the client
26061           area. 
26062         * X11DesktopColors.cs: Commented out (currently) unneeded variables
26063         * ThemeWin32Classic.cs: Removed border calculations from ListView 
26064           drawing code
26065
26066 2005-10-06  Jackson Harper  <jackson@ximian.com>
26067
26068         * MdiChildContext.cs: Clear out the old virtual position remove
26069         all the unneeded calls to CreateGraphics.
26070
26071 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
26072
26073         * TextControl.cs: Use proper color for highlighted text; fixes #76350
26074
26075 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
26076
26077         * Form.cs: 
26078           - Added loading and setting of our new default icon
26079           - Only set icon if window is already created
26080
26081 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
26082
26083         * Label.cs:
26084           - Do not explicitly set the foreground and background colors, to
26085             allow inheriting from parents (fixes #76302)
26086           - Use Control's InternalBorderStyle property to deal with borders
26087
26088 2005-10-06  Jackson Harper  <jackson@ximian.com>
26089
26090         * MdiChildContext.cs: Use the new xplatui function to draw a
26091         reversible rect.
26092
26093 2005-10-06  Jackson Harper  <jackson@ximian.com>
26094
26095         * Form.cs: Add the parent before creating the child context cause
26096         we need the parent when setting up the child.
26097
26098 2005-10-06  Jackson Harper  <jackson@ximian.com>
26099
26100         * FolderBrowserDialog.cs: redo the tree population code so a
26101         second thread isn't used. Should be a lot faster and more stable
26102         now.
26103
26104 2005-10-05  Jackson Harper  <jackson@ximian.com>
26105
26106         * TreeView.cs: There are no expand/collapse boxes if the node has
26107         no children.
26108
26109 2005-10-05  Jackson Harper  <jackson@ximian.com>
26110
26111         * X11DesktopColors.cs: Get menu colours for the gtk theme.
26112
26113 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
26114
26115         * FileDialog.cs: Fix InitialDirectory
26116
26117 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
26118
26119         * ComboBox.cs:
26120                 - Fixes changing between styles
26121                 - Fixes simple mode
26122                 - Fixes last item crashing when navigating with keyboard
26123
26124 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
26125
26126         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
26127
26128 2005-10-05  Jackson Harper  <jackson@ximian.com>
26129
26130         * TreeView.cs: If updating the root node do a full refresh.
26131         * TreeNode.cs: The root node should be expanded by default. Also
26132         added a utility prop to tell if we are the root node.
26133         * TreeNodeCollection.cs: Only refresh if the node we are being
26134         added to is expanded. Also added a comment on a potential
26135         optimization.
26136         
26137 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
26138
26139         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
26140           in dispose method. Fixes #76330
26141
26142 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
26143
26144         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
26145
26146                 - Implements vertical and horizontal scrolling using XplatUI
26147                 - Fixes keyboard navagation
26148                 - Fixes EnsureVisible
26149                 - Drawing fixes
26150                 - Handles and draws focus properly
26151
26152
26153 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
26154
26155         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
26156           Create handle. NET_2_0: Destroy handle when value is null.
26157
26158 2005-10-03  Jackson Harper  <jackson@ximian.com>
26159
26160         * ScrollBar.cs: My last scrollbar patch was broken. This is a
26161         revert and a new patch to prevent the thumb from refreshing so
26162         much.
26163
26164 2005-10-02  Jackson Harper  <jackson@ximian.com>
26165
26166         * ScrollBar.cs: Don't update position if it hasn't actually
26167         changed. This occurs when you hold down the increment/decrement
26168         buttons and the thumb gets to the max/min.
26169
26170 2005-10-01  Jackson Harper  <jackson@ximian.com>
26171
26172         * Form.cs:
26173         * MdiChildContext.cs:
26174         * MdiClient.cs: Implement ActiveMdiChild in Form.
26175
26176 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
26177
26178         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
26179
26180 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
26181
26182         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
26183           be found
26184
26185 2005-09-30  Jackson Harper  <jackson@ximian.com>
26186
26187         * ListBox.cs: Don't do a full refresh unless some data has
26188         actually changed.
26189
26190 2005-09-30  Jackson Harper  <jackson@ximian.com>
26191
26192         * TreeView.cs: Make sure that the checkboxes size is factored in
26193         even when not visible.
26194
26195 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
26196
26197         * FileDialog.cs: Fix Jordi's build break
26198
26199 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
26200
26201         * FileDialog.cs: 
26202                 - Use standard the Windows colours for the combobox as espected
26203                 - Dispose objects that use resouces when no longer need them
26204
26205 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
26206
26207         * X11DesktopColors.cs: Initial incomplete implementation
26208         * XplatUIX11.cs: Added call to initialize X11DesktopColors
26209
26210 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
26211
26212         * Theme.cs: 
26213           - Switched Theme color names to match the names defined in 
26214             System.Drawing.KnownColors. Life's hard enough, no need to make 
26215             it harder.
26216           - Added setters to all theme color properties so themes can set
26217             their color schemes. The setters also propagate the color changes
26218             to System.Drawing.KnownColors via reflection
26219         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
26220           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
26221           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
26222           use the new, more logical theme color names
26223         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
26224           post-NT colors
26225         * ThemeWin32Classic.cs:
26226           - Removed code to set the old classic Windows colors. Instead it
26227             now relies on the colors returned by System.Drawing.KnownColors
26228             which will be either modern static colors (Unix) or colors
26229             read from the user's configuration (Win32)
26230           - Updated to use the new, more logical theme color names
26231           - Switched DataGrid drawing code to use only Theme colors instead of
26232             a mix of System.Drawing.KnownColors and Theme colors
26233           - DrawFrameControl(): Removed code that fills the button area, the
26234             fill would overwrite any previous fill done by a control. This
26235             fixes bug #75338 
26236           - Added DrawReversibleRectangle() stub
26237         * ScrollableControl.cs: Set visible state to false when scrollbars
26238           are removed (pdn fix)
26239         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
26240           DrawReversibleRectangle() method to allow drawing primitive 
26241           'rubber bands'
26242         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
26243
26244 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
26245
26246         * ImageList.cs: Add(Icon): Create handle.
26247
26248 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
26249
26250         * ListView.cs:
26251         * ThemeWin32Classic.cs:
26252                 - Fixes detail mode
26253                 - Sets clippings
26254                 - Issues with drawing
26255
26256 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
26257
26258         * ImageList.cs: Moved RecreateHandle back to ImageList as event
26259           source has to be the ImageList.
26260
26261 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
26262
26263         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
26264
26265 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
26266
26267         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
26268
26269 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
26270
26271         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
26272
26273 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
26274         * GridItem.cs: Fixed TODOs
26275         * GridItemCollection.cs: Added ICollection interface
26276
26277 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
26278
26279         * ImageList.cs: Resize icons when needed.
26280
26281 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
26282
26283         * ListViewItem.cs
26284                 - Fixes GetBounds and returns on screen rects
26285         * ListView.cs:
26286                 - Fixes vertical and horzintal scrolling of items
26287         * ThemeWin32Classic.cs:
26288                 - Fixes drawing
26289                 
26290 2005-09-29  Raja R Harinath  <harinath@gmail.com>
26291
26292         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
26293
26294 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
26295
26296         * ImageList.cs: Added comments about handle creation. Moved Handle,
26297           HandleCreated and OnRecreateHandle implementations to ImageCollection.
26298           Handle is created in Add methods.
26299
26300 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
26301          
26302         * DataGridDrawingLogic.cs: 
26303                 - Takes rows into account on Colum calculations
26304                 - Returns the column when clickig
26305         * DataGrid.cs:
26306                 - Fixes default HitTestInfo values
26307                 - Fixes HitTestInfo.ToString
26308                 - Fixes ResetBackColor          
26309         
26310 2005-09-28  Jackson Harper  <jackson@ximian.com>
26311
26312         * MdiChildContext.cs: Obey rules for fixed sized windows (no
26313         sizing or cursor changes). Also added some temp code to draw the
26314         titlebars text (Makes dev a little easier).
26315
26316 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
26317
26318         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
26319
26320 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
26321          
26322         * ListBox.cs: Fixes bug 76253
26323
26324 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
26325
26326         * ImageList.cs: Added comments about the current implementation. Added
26327           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
26328           Format32bppArgb to preserve transparency and can use Graphics.FromImage
26329           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
26330           with Bitmap.LockBits for better performance. Revised the whole file to
26331           match MS.NET behaviour and provide better performance. Non-public
26332           interface members are calling public members even when they throw
26333           NotSupportedException for better maintainability. Moved ColorDepth,
26334           ImageSize, ImageStream and TransparentColor implementations to
26335           ImageCollection for better performance as these properties are not used
26336           by ImageList.
26337         * ImageListStreamer.cs: Added a new internal constructor that takes an
26338           ImageList.ImageCollection and serializes Images based on
26339           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
26340           match ImageList property name.
26341
26342 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
26343
26344         * ListBox.cs: Fixes IndexFromPoint for last item
26345
26346 2005-09-27  Jackson Harper  <jackson@ximian.com>
26347
26348         * Form.cs: Set the position of new mdi children correctly.
26349
26350 2005-09-27  Jackson Harper  <jackson@ximian.com>
26351
26352         * MdiClient.cs: New mdi children need to be added to the back of
26353         the controls collection so the zorder is set correctly. Also add a
26354         count of all the child windows that have been created.
26355
26356 2005-09-27  Jackson Harper  <jackson@ximian.com>
26357
26358         * Form.cs (CreateParams): Setup MDI forms correctly.
26359
26360 2005-09-27  Jackson Harper  <jackson@ximian.com>
26361
26362         * MdiChildContext.cs:
26363         * MonthCalendar.cs:
26364         * UpDownBase.cs:
26365         * ListBox.cs:
26366         * ListView.cs:
26367         * TextBoxBase.cs:
26368         * TreeView.cs:
26369         * ScrollableControl.cs:
26370         * ComboBox.cs: Add implicit controls using the new implict control
26371         functionality in ControlCollection. Also try to block multiple
26372         control add in a suspend/resume layout to save some cycles.
26373         
26374 2005-09-27  Jackson Harper  <jackson@ximian.com>
26375
26376         * Control.cs: Add functionality to the controls collection to add
26377         'implicit controls' these are controls that are created by the
26378         containing control but should not be exposed to the user. Such as
26379         scrollbars in the treeview.
26380         * Form.cs: The list var of the ControlsCollection is no longer
26381         available because of the potential of implicit controls getting
26382         ignored by someone accessing the list directly.
26383
26384 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
26385
26386         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
26387           loose it's parent. (Fixed bug introduced in r49103 when we added
26388           setting the child parent to null on Remove)
26389
26390 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
26391
26392         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
26393         * Splitter.cs: Added missing attributes for BorderStyle property.
26394         * TextBoxBase.cs: Marked Calculate* methods internal.
26395         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
26396         MS.NET.
26397
26398 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
26399          
26400         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
26401
26402 2005-09-25  Jackson Harper  <jackson@ximian.com>
26403
26404         * TreeView.cs: Update the node bounds correctly regardless of
26405         whether the node is visible.
26406
26407 2005-09-25  Jackson Harper  <jackson@ximian.com>
26408
26409         * ImageList.cs: Don't dispose the image after it is added to the
26410         image list. Only reformat images that need to be resized.
26411
26412 2005-09-25  Jackson Harper  <jackson@ximian.com>
26413
26414         * ImageList.cs: Don't set the format when changing the image.
26415
26416 2005-09-25  Jackson Harper  <jackson@ximian.com>
26417
26418         * TreeView.cs: We can't just assume the node has a font. Use the
26419         treeviews font if no node font is available.
26420
26421 2005-09-25  Jackson Harper  <jackson@ximian.com>
26422
26423         * TreeView.cs: Allow the scrollbars to be reset with negative
26424         values.
26425         - Don't add scrollbars to negative sized windows.
26426
26427 2005-09-23  Jackson Harper  <jackson@ximian.com>
26428
26429         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
26430         old Mono.Posix. Also remove some stray code that shouldn't have
26431         been committed.
26432
26433 2005-09-23  Jackson Harper  <jackson@ximian.com>
26434
26435         * TreeView.cs: Attempt at proper sizing of the horizontal
26436         scrollbar. Also don't resize the scrollbars unless they are
26437         visible.
26438
26439 2005-09-23  Jackson Harper  <jackson@ximian.com>
26440
26441         * TreeView.cs: We don't need to expand the invalid area when the
26442         selection changes, as this is all drawn in the node's bounding
26443         box. The area needs to be expanded (previous typo was contracting
26444         it) when the focus rect moves.
26445
26446 2005-09-23  Jackson Harper  <jackson@ximian.com>
26447
26448         * TreeView.cs: Display the selection box under the correct
26449         circumstances. We were rendering white text with no selection box
26450         before.
26451
26452 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
26453
26454         * TextControl.cs(Split): Now updates selection start/end if it points 
26455           into a line that's being split. Fixes a FIXME and bug #75258
26456
26457 2005-09-23  Jackson Harper  <jackson@ximian.com>
26458
26459         * Binding.cs:
26460         * ListControl.cs: Don't use the path when retrieving binding
26461         managers from the binding context. My bat sense tells me that the
26462         path is only used on insertion.
26463
26464 2005-09-22  Jackson Harper  <jackson@ximian.com>
26465
26466         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
26467
26468 2005-09-22  Jackson Harper  <jackson@ximian.com>
26469
26470         * Splitter.cs: There are special cursors used for splitting.
26471         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
26472
26473 2005-09-22  Jackson Harper  <jackson@ximian.com>
26474
26475         * Splitter.cs: Change the cursor appropriately when the splitter
26476         is moused over, so the user actually knows there is a splitter
26477         there.
26478
26479 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
26480
26481        * Label.cs : Fix ToString method to give same output as MS.NET
26482
26483 2005-09-22  Jackson Harper  <jackson@ximian.com>
26484
26485         * TreeView.cs: Create the scrollbars when the handle is created
26486         and add them right away, just make them invisble. Also account for
26487         the window being shrunk vertically to the point that the vert
26488         scrollbar needs to be added.
26489         - Remove some 0.5 adjustments to get around anti aliasing issues.
26490         
26491 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
26492          
26493         * MainMenu.cs: Fixes default value
26494         * MenuItem.cs: Fixes default value
26495
26496 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
26497
26498         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
26499
26500 2005-09-21  Jackson Harper  <jackson@ximian.com>
26501
26502         * Control.cs: Don't try to set the border style on the window if
26503         it hasn't been created. When the window is created the border
26504         style will be used.
26505
26506 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
26507
26508         * Control.cs (Update): Don't call XplatUI if we don't have a
26509           window handle yet
26510
26511 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
26512
26513         * ContainerControl.cs: Instead of throwing an exception, print
26514           a one-time warning about Validate not being implemented
26515         * XplatUIWin32.cs: Removed debug output
26516
26517 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
26518
26519         * Control.cs: Only set XplatUI background if we expect the windowing
26520           system to handle the background. This stops controls that draw their
26521           own background from flickering
26522
26523         * XplatUIX11.cs: Support custom visuals and colormaps for window 
26524           creation. This allows, amongst other things, using MWF X11 windows 
26525           with OpenGL.
26526
26527 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
26528
26529         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
26530           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
26531           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
26532           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
26533           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
26534           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
26535           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
26536           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
26537           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
26538           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
26539           GridColumnStylesCollection.cs, 
26540           IDataGridColumnStyleEditingNotificationService.cs,
26541           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
26542           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
26543           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
26544           TreeNodeCollection.cs, AmbientProperties.cs, 
26545           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
26546           DataObject.cs, ErrorProvider.cs, Splitter.cs,
26547           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
26548           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
26549           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
26550           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
26551           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
26552           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
26553           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
26554           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
26555           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
26556           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
26557           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
26558           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
26559           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
26560           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
26561           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
26562           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
26563           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
26564           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
26565           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
26566           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
26567           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
26568           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
26569           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
26570           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
26571           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
26572           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
26573           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
26574           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
26575           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
26576           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
26577           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
26578           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
26579           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
26580           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
26581           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
26582
26583 2005-09-21  Jackson Harper  <jackson@ximian.com>
26584
26585         * TreeNode.cs: Call Before/After Expand not Collapse when
26586         expanding.
26587
26588 2005-09-20  Jackson Harper  <jackson@ximian.com>
26589         
26590         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
26591
26592 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
26593          
26594         * ListViewItem.cs:
26595                 - Fixes bug 76120
26596                 - Fixes proper storing of subitems
26597                 - Fixes not updated items
26598
26599 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
26600
26601         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
26602           things if our window handle isn't created yet. Also disabled 
26603           debug for TextBoxBase
26604
26605 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
26606
26607         * MenuAPI.cs: Remove filtering of events to allow menu usage
26608
26609 2005-09-20  Miguel de Icaza  <miguel@novell.com>
26610
26611         * Cursor.cs: Allow null to be passed to Cursor.Current.
26612
26613 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
26614
26615         * ThemeWin32Classic.cs:
26616           - Change some private methods/fields to protected virtual so that 
26617             they can be accessed and overriden in derived classes
26618           - First refactoring of some methods. Derived themes now don't 
26619             need to duplicate the complete code from ThemeWin32Classic
26620         * ThemeNice.cs:
26621           - Added nice StatusBar
26622           - Derive from ThemeWin32Classic and not Theme
26623           - Removed duplicate ThemeWin32Classic code
26624
26625 2005-09-20  Miguel de Icaza  <miguel@novell.com>
26626
26627         * Control.cs (ControlCollection.Add): If the value null is passed
26628         the control is ignored. 
26629
26630         Optimize this loop.
26631
26632 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
26633
26634         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
26635           PostQuitMessage state.
26636         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
26637
26638 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
26639
26640         * Application.cs: Our constructor will never get called, move 
26641           initialization to fields; fixes bug #75933
26642
26643 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
26644
26645         * FileDialog.cs :
26646                 - Allow files to be selected properly using file name
26647                 combo box.
26648                 - Add ability to change diretory (absolute / relative)
26649                 using file name combo box.
26650
26651 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
26652          
26653         * ListBox.cs: 
26654                 - Fixes Multicolumn listboxes item wrong calculations
26655                 - Allows to click when only one item is in the listbox
26656                 - Fixes crash when no items using keyboard navigation
26657
26658 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
26659
26660         * ComboBox.cs: Reverted almost everything from the latest patch which
26661           broke ComboBox
26662
26663 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
26664         
26665         * ToolTip.cs:
26666                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
26667         * ComboBox.cs:
26668                 - When DropDownStyle is Simple, it does not show scrollbar 
26669                 to the last item of the list.
26670                 - When DropDownStyle is Simple, it crashed when the list was 
26671                 scrolled down with the down cursor key.
26672                 - Fixed a bug that when DropDownStyle is DropDownList, the 
26673                 selected item was not shown.
26674                 - The position of the selected item was not preserved when 
26675                 the next dropdown happened.
26676         * ThemeWin32Classic.cs:
26677                 - Items were wrapped at the right end.
26678         * CheckedListBox.cs:
26679                 - Fixed Add method
26680         * ListBox.cs:
26681                 - Items should be fully shown.
26682                 - When resizing and vertical scrollbar disappeared, the item 
26683                 of index 0 should be on the top of the list.
26684                 - GetItemRectangle should consider the size of ver. scrollbar
26685         * StatusBar.cs:
26686                 - SizingGrip area should not be allocated when it is not 
26687                 displayed.
26688                 - Now it reflects MinWidth of the containing panel and 
26689                 fixed a crash that happens when its width becomes so small.
26690
26691 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
26692
26693         * CheckedListBox.cs: Fixes bug 76028
26694         * ListBox.cs: Fixes bug 76028
26695
26696 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
26697
26698         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
26699         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
26700
26701 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
26702
26703         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
26704
26705 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
26706
26707         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
26708
26709 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
26710
26711         * IRootGridEntry.cs: Added
26712         * PropertyGridCommands.cs: Added
26713         * PropertiesTab.cs: Added missing methods and property
26714         * PropertyGridView.cs: Made class internal
26715         * PropertyGridTextBox.cs: Made class internal
26716
26717 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
26718
26719         * MimeIcon.cs: Try to check some other environment variables
26720           if "DESKTOP_SESSION" returns "default"
26721
26722 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
26723
26724         * ThemeNice.cs: Corrected background colors (e.g. menus)
26725         * ColorDialog.cs: Use correct background colors for controls
26726
26727 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
26728
26729         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
26730
26731 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
26732
26733         * RichTextBox.cs: Added initial implementation
26734         * lang.cs: Removed. Was accidentally checked in long time ago
26735         * TODO: Removed. Contents were obsolete
26736
26737 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
26738                                                                                 
26739         * PropertiesTab.cs : Added
26740
26741 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
26742                                                                                 
26743         * PropertyGrid.cs : Update
26744         * PropertyGridView.cs : Update
26745         * System.Windows.Forms.resx : Added images and strings
26746
26747 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
26748
26749         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
26750  
26751 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
26752
26753         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
26754           a busy loop right after the Ungrab the X11 display is otherwise 
26755           blocked
26756
26757 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
26758
26759         * ThemeWin32Classic.cs: Optimise the use of clipping
26760
26761 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
26762
26763         * DataGrid.cs: fixes recursion bug
26764
26765 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
26766
26767         * ThemeNice.cs: 
26768           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
26769           - Cleanup
26770
26771 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
26772
26773         * ThemeNice.cs: Draw nice ProgressBars
26774
26775 2005-09-01  Miguel de Icaza  <miguel@novell.com>
26776
26777         * VScrollBar.cs: Another buglet found by Aaron's tool. 
26778
26779         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
26780         bug finder.
26781
26782 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
26783
26784         * ThemeNice.cs:
26785           - Added nicer menu drawing
26786           - Updated DrawTab
26787           - some refactoring
26788
26789 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
26790
26791         * CreateParams.cs (ToString): Made output match MS
26792         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
26793             handle is already created (to avoid forcing window creation)
26794         * XplatUIX11.cs: Set window text to caption after creating window,
26795           in case Text was set before window was created
26796         * Form.cs: Use this.Text instead of a static string as caption
26797
26798 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
26799
26800         * NotifyIcon.cs: Don't set the window to visible; this screws
26801           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
26802           OnPaint without a bitmap)
26803         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
26804           happen very often anyway; we could add the check to the WM_PAINT 
26805           event generation code
26806
26807 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
26808
26809         * NotifyIcon.cs: Fill the icon area with a background color, to 
26810           avoid 'residue' when transparent icons are drawn
26811         * XplatUIX11.cs:
26812           - Handle whole_window == client_window when destroying windows
26813           - SystrayAdd(): Set client_window to whole_window value to
26814             get mouse and other events passed to NotifyIcon
26815
26816 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
26817
26818         * Form.cs: Set proper default for Opacity property
26819         * NotifyIcon.cs:
26820           - ShowSystray(): Don't bother creating telling the OS
26821             about the systray item if no icon is provided
26822           - Now handles WM_NCPAINT message to deal with whole/client window
26823             split
26824           - Create window as visible to not get caught by Expose optimization
26825         * Hwnd.cs: Removed debug message
26826         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
26827           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
26828             PaintEventStart/End to use new client argument
26829         * TextBoxBase.cs:
26830           - Commented out debug messages
26831           - Switched PaintEventStart/End to use new client argument
26832         * XplatUI.cs: Added client window bool to PaintEventStart()/
26833           PaintEventEnd() calls, to support drawing in non-client areas
26834         * XplatUIDriver.cs: 
26835           - Added client window bool to PaintEventStart()/PaintEventEnd() 
26836             calls, to support drawing in non-client areas
26837           - Added conditional compile to allow using MWF BeginInvoke 
26838             on MS runtime
26839         * XplatUIX11.cs:
26840           - Added some conditional debug output
26841           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
26842             whole/client window split
26843           - Implemented handling of client argument to PaintEventStart()/End()
26844         * Control.cs:
26845           - Throw exception if BeginInvoke() is called and the window handle
26846             or one of the window's parent handles is not created
26847           - Added conditional compile to allow using MWF BeginInvoke on
26848             MS runtime
26849           - get_Parent(): Only sets parent if handle is created. This avoids
26850             forcing window handle creation when parent is set.
26851           - Now fires Layout and Parent changed events in proper order
26852           - Switched to use Handle instead of window.Handle for Z-Order setting,
26853             the get_Parent() patch above causes us to possibly get null for 'window'
26854           - Implemented handling of client argument to PaintEventStart()/End()
26855           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
26856             default handling)
26857           - Now sends a Refresh() to all child windows when Refresh() is called
26858
26859 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
26860
26861         * Form.cs: Added (non-functional) Opacity property
26862         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
26863
26864 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
26865         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
26866           use export MONO_THEME=nice to activate it.
26867           Currently supported controls:
26868           - Button
26869           - ComboBox
26870           - ScrollBar
26871           - TabControl (TabAlignment.Top only, other will follow)
26872         * ThemeEngine.cs: Add theme nice
26873         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
26874           if enabled
26875
26876 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
26877
26878         * Splitter.cs: Resize docked control and its neighbor.
26879
26880 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
26881         -- Making Windows with Menus layout correctly --
26882         * Form.cs : The first leg of the fix
26883                 Menu setter - adjust Client Size as needed to make space for the menu
26884                 SetClientSizeCore - doesn't call base version to be able to pass the 
26885                         menu handle to XplatUI.CalculateWindowRect
26886         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
26887         * XplatUIX11.cs: The critical second leg of the fix
26888                 GetWindowPos needs to use a recalculated client_rect
26889                 so that resizing the window doesn't break layout of child controls. 
26890                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
26891                 Lots of \t\n killed
26892
26893 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
26894
26895         * Label.cs: Now properly recalculates width and height on Font and Text
26896           changes if AutoSize is set
26897
26898 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
26899         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
26900
26901 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
26902
26903         * ImageList.cs: Makes ToString method compatible with MS
26904
26905 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
26906
26907         * MenuAPI.cs: fixes bug 75716
26908
26909 2005-08-11 Umadevi S <sumadevi@novell.com>
26910         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
26911
26912 2005-08-11 Umadevi S <sumadevi@novell.com>
26913         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
26914
26915 2005-08-10  Umadevi S <sumadevi@novell.com>
26916         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
26917
26918 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
26919
26920         * Menu.cs: fixes bug 75700
26921         * MenuAPI.cs: fixes navigation issues
26922
26923 2005-08-09  Umadevi S <sumadevi@novell.com>
26924         * CheckedListBox.cs - simple fix for GetItemChecked.
26925
26926 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
26927
26928         * ComboBox.cs: Serveral fixes
26929         * ListBox.cs: Serveral fixes
26930
26931 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
26932
26933         * ComboBox.cs: Fixes FindString methods and GetItemHeight
26934         * ListBox.cs: Fixes FindString methods
26935
26936 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
26937
26938         * DataGrid.cs: fixes bugs exposed by new tests
26939
26940 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
26941
26942         * Mime.cs: Compile Mono assembly references only if compiling
26943           with Mono (Allows to build with VS.Net again)
26944
26945 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
26946
26947         * Control.cs (PaintControlBackground): Draw background image
26948         corrrectly.
26949         (CheckForIllegalCrossThreadCalls): Stubbed.
26950         
26951         * Form.cs (OnCreateControl): Center when should be centered.
26952         
26953         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
26954
26955 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
26956
26957         * Binding.cs: Binding to properties should be case unsensitive
26958
26959 2005-07-18 vlindos@nucleusys.com
26960
26961         * DataGrid.cs: fixes setmember order
26962
26963 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
26964
26965         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
26966         * FileDialog.cs: FileDialog is now resizable and uses the new
26967           MimeIconEngine
26968
26969 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
26970
26971         * DataGridTextBoxColumn.cs: default value
26972         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
26973         * GridTableStylesCollection.cs: fixes checking MappingName
26974         * DataGridDrawingLogic.cs: fixes drawing logic issues
26975         * DataSourceHelper.cs: rewritten to make compatible with more data sources
26976         * DataGrid.cs: fixes    
26977
26978 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
26979
26980         * MimeGenerated.cs: Use case sensitive comparer for
26981           NameValueCollections
26982
26983 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
26984
26985         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
26986         * ThemeWin32Classic.cs: bug fixes, code refactoring
26987         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
26988         * DataGrid.cs: bug fixes, code refactoring
26989         * DataGridTextBox.cs: bug fixes, code refactoring
26990         * DataGridColumnStyle.cs:  bug fixes, code refactoring
26991         * Theme.cs:  bug fixes, code refactoring
26992
26993 2005-07-01  Peter Bartok  <pbartok@novell.com> 
26994
26995         * TextControl.cs: Quick fix for the reported crash on ColorDialog
26996           and other text box usage
26997
26998 2005-07-01  Jackson Harper  <jackson@ximian.com>
26999
27000         * TabControl.cs: Make sure the bottom of the tab covers the pages
27001         border.
27002
27003 2005-06-30  Peter Bartok  <pbartok@novell.com> 
27004
27005         * Form.cs (ShowDialog): Assign owner of the dialog
27006         * TextBoxBase.cs: Always refresh caret size when deleting, caret
27007           might have been moved to a tag with different height
27008
27009 2005-06-30  Jackson Harper  <jackson@ximian.com>
27010
27011         * Form.cs: Don't create an infinite loop when setting focus
27012         * MenuItem.cs: Don't dirty the parents if we don't have any
27013
27014 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
27015
27016         * LibSupport.cs: Rename
27017
27018 2005-06-29  Peter Bartok  <pbartok@novell.com>
27019
27020         * TextBoxBase.cs: Re-align caret after deleting a character
27021         * TextControl.cs:
27022           - DeleteChars(): Ensure that tag covers the provided position
27023           - StreamLine(): Drop reference for dropped tag
27024
27025 2005-06-29  Peter Bartok  <pbartok@novell.com> 
27026
27027         * TextControl.cs: 
27028           - Selections now work properly, anchoring at the initial location
27029             and properly extending in either direction (SetSelectionToCaret(),
27030             SetSelectionStart() and SetSelectionEnd())
27031           - No longer redraws the whole control on selection change, now
27032             calculates delta between previous and new selection and only
27033             invalidates/redraws that area
27034           - Fixed FindPos() math off-by-one errors
27035           - Changed DeleteChars() to verify the provided tag covers the
27036             provided position, selections may have a tag that doesn't cover
27037             the position if the selection is at a tag border
27038           - Fixed off-by-one errors in DeleteChars()
27039           - Added missing streamlining check in DeleteChars() to remove
27040             zero-length tags
27041           - Implemented Invalidate() method, now properly calculates exposures
27042             between two given lines/positions
27043           - Implemented SetSelection()
27044           - Obsoleted and removed FixupSelection()
27045           - Improved RecalculateDocument() logic, removing code duplication
27046
27047 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27048
27049         * LibSupport.cs: changes to match different input/output arguments.
27050
27051 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27052
27053         * LibSupport.cs: added libsupport.so init routine.
27054
27055 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
27056         
27057         * ControlBindingsCollection.cs
27058                 - Throws an exception on null datasource when adding
27059                 - Checks for duplicated bindings when adding
27060
27061 2005-06-28  Jackson Harper  <jackson@ximian.com>
27062
27063         * TreeView.cs (OnKeyDown): Support left and right properly
27064         (navigates as well as expanding and collapsing.
27065         - Add support for Multiply, this expands all the selected nodes
27066         children.
27067         - Fix some tabbing.
27068
27069 2005-06-28  Jackson Harper  <jackson@ximian.com>
27070
27071         * TreeView.cs: Implement keyboard navigation, currently supports,
27072         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
27073         support for toggling checkboxes with the space bar.
27074
27075 2005-06-28  Jackson Harper  <jackson@ximian.com>
27076
27077         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
27078         tree.
27079
27080 2005-06-28  Jackson Harper  <jackson@ximian.com>
27081
27082         * TreeView.cs: Add missing event.
27083
27084 2005-06-27  Peter Bartok  <pbartok@novell.com> 
27085
27086         * TextControl.cs:
27087           - Made line ending size configurable (now allows for counting 
27088             lineendings as \n or \r\n)
27089           - Added margin to viewport to keep caret visible on right side
27090           - Fixed translation routines for line/pos to documentpos to consider
27091             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
27092           - Fixed some line-endings to be unix style
27093           - Fixed Document.FormatText to perform it's calculations 1-based
27094           - Added descriptions for a few methods that might otherwise get 
27095             used wrong
27096           - Added NOTE section with some basic conventions to remember at 
27097             the top of the file
27098           - Major fixup for RichTextBox selection drawing:
27099             * Fixed crashes when multiple tags on a single line were selected
27100             * fixed selection box drawing not overlaying text
27101             * fixed bogus offset calculation for tags not starting at index 1
27102             * Switched behaviour from using multiple Substrings of a 
27103               StringBuilder.ToString() to using multiple 
27104               StringBuilder.ToString(start, length) statements, hoping this is
27105               faster (kept original version commented out in the code, in case
27106               original version was faster)
27107         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
27108           alignment != Left
27109         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
27110           call it as well
27111
27112 2005-06-27  Jackson Harper  <jackson@ximian.com>
27113
27114         * TabControl.cs: Move to the left and right with the arrow
27115         keys. These keys don't cycle beyond first and last like
27116         tab. Refresh all the tabs when scrolling them to the left or
27117         right.
27118
27119 2005-06-27  Jackson Harper  <jackson@ximian.com>
27120
27121         * TabControl.cs:
27122           - ToString: Added method
27123           - CreateParams: Remove TODO and comment
27124           - OnKeyDown: Cycle through bounds properly.
27125           - SelectedIndex: Scroll to the right or left if we need to
27126           display the newly selected tab.
27127
27128 2005-06-23  Jackson Harper  <jackson@ximian.com>
27129
27130         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
27131         set.
27132
27133 2005-06-23  Jackson Harper  <jackson@ximian.com>
27134
27135         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
27136         CTRL-SHIFT-TAB, and HOME, END are there any others?
27137
27138 2005-06-23  Jackson Harper  <jackson@ximian.com>
27139
27140         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
27141
27142 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
27143         
27144         * DataGridTextBoxColumn.cs: fixes and enhancements
27145         * ThemeWin32Classic.cs: fixes and enhancements
27146         * DataGridBoolColumn.cs:  fixes and enhancements
27147         * DataGridDrawingLogic.cs:  fixes and enhancements
27148         * CurrencyManager.cs: fixes and enhancements
27149         * DataGrid.cs: fixes and enhancements
27150         * DataGridColumnStyle.cs:  fixes and enhancements
27151
27152 2005-06-22  Jackson Harper  <jackson@ximian.com>
27153
27154         * TabControl.cs: Add some missing methods that just call into the
27155         base. Make the TabPageCollection's IList interface behave in the
27156         same manner as the MS implementation.
27157
27158 2005-06-22  Peter Bartok  <pbartok@novell.com> 
27159
27160         * TextControl.cs: Added sanity check
27161         * TextBoxBase.cs: 
27162           - Fixed wrapping behaviour, don't set wrap on single line controls
27163             (this fixes the breakage of colordialog introduced in an earlier
27164              checkin)
27165           - Added rudimentary support for autoscrolling right-aligned controls
27166             (still needs fixing, also, center alignment scroll is missing)
27167
27168 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
27169         
27170         * ScrollBar.cs: Fixes thumbpos on Maximum values
27171
27172 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
27173         
27174         * PropertyGridView.cs: Pass context information to UITypeEditors 
27175
27176 2005-06-21  Peter Bartok  <pbartok@novell.com> 
27177
27178         * TextBoxBase.cs:
27179           - Now calling PositionCaret with absolute space coordinates
27180           - Enabled vertical scrolling
27181           - Better tracking of scrollbar changes, tied into WidthChange
27182             event
27183           - Improved cursor tracking
27184           - Removed debug output
27185         * TextControl.cs:
27186           - PositionCaret coordinates are now works in absolute space, not 
27187             the canvas
27188           - Improved tracking of document size
27189           - Added events for width and height changes
27190
27191 2005-06-21  Peter Bartok  <pbartok@novell.com>
27192
27193         * Form.cs: Set focus to active control when form is activated
27194         * TextControl.cs: 
27195           - Added word-wrap functionality to RecalculateLine() 
27196           - Added some short function descriptions for VS.Net to aid in
27197             writing dependent controls
27198           - Added Caret property, returning the current coords of the caret
27199           - Added ViewPortWidth and ViewPortHeight properties
27200           - Added Wrap property
27201           - Added CaretMoved event
27202           - Removed some old debug code
27203           - Split() can now create soft splits
27204           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
27205           - Added method to format existing text
27206           - Fixed size/alignment calculations to use viewport
27207           - RecalculateDocument now can handle changing line-numbers while
27208             calculating lines
27209
27210         * TextBox.cs:
27211           - Added some wrap logic, we don't wrap if alignment is not left
27212           - Added casts for scrollbar var, base class switched types to
27213             also support RichTextBoxA
27214           - Implemented handling of scrollbar visibility flags
27215
27216         * TextBoxBase.cs:
27217           - Switched scrollbars type to RichTextBoxScrollBars to support
27218             RichTextBox
27219           - Added tracking of canvas width/height
27220           - Switched scrollbars to be not selectable (to keep focus on text)
27221           - Added central CalculateDocument() method to handle all redraw
27222             requirements
27223           - Added ReadOnly support
27224           - Added WordWrap support
27225           - Fixed handling of Enter key (we now treat it as a DialogKey)
27226           - Fixed caret positioning when h or v scroll is not zero
27227           - Fixed placing/generation of vertical scrollbar
27228           - Added CalculateScrollBars() method to allow updating scrollbar
27229             limits and visibility
27230           - Fixed handling of horizontal scroll
27231           - Added handling of vertical scroll
27232           - Implemented auto-'jump' when caret moves to close to a left or
27233             right border and there is text to be scrolled into view (currently
27234             there's the potential for a stack overflow, until a bug in
27235             scrollbar is fixed)
27236
27237 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
27238         
27239         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
27240
27241 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
27242
27243         * Mime.cs:
27244         - added inodes.
27245         - return application/x-zerosize for files with size zero
27246           (if no extension pattern matches).
27247         - check matches collection for strings too.
27248         - return only the first mime type if the name value
27249           collection has more than one mime type.
27250
27251 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
27252         
27253         * PropertyGrid.cs: Cleaned up some TODOs
27254         * PropertyGridView.cs: Added support for UITypeEditors
27255
27256 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
27257         
27258         * DataGrid.cs: clears cached value
27259
27260 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
27261
27262         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
27263         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
27264         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
27265         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
27266         
27267 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
27268
27269         * ThemeWin32Classic.cs: fixes colour
27270
27271 2005-06-15  Peter Bartok  <pbartok@novell.com>
27272
27273         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
27274         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
27275         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
27276         * Control.cs: Added some MWFCategory and MWFDescription attributes
27277         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
27278
27279 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
27280
27281         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
27282         usage
27283
27284 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
27285
27286         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
27287         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
27288         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
27289         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
27290         * DataGrid.cs: default datagrid settings for Default Styles, fixes
27291         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
27292
27293 2005-06-13  Jackson Harper  <jackson@ximian.com>
27294
27295         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
27296         isn't printed when the user enables dropping. (X11 does accept
27297         drops).
27298         
27299 2005-06-13  Jackson Harper  <jackson@ximian.com>
27300
27301         * TreeView.cs: Remove some TODOS.
27302
27303 2005-06-13  Jackson Harper  <jackson@ximian.com>
27304
27305         * Form.cs: Hook into the mdi framework.
27306         * MdiClient.cs: Use the base control collections add method so
27307         parents get setup correctly. Set the default back colour and dock
27308         style.
27309         * MdiChildContext.cs: New class, this bad actor handles an
27310         instance of an MDI window. Right now there is only basic
27311         support. You can drag, close, and resize windows. Minimize and
27312         Maximize are partially implemented.
27313
27314 2005-06-13  Jackson Harper  <jackson@ximian.com>
27315
27316         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
27317         freaky when both vals are negative. NOTE: There are probably other
27318         places in XplatUIX11 that this needs to be done.
27319
27320 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
27321
27322         * DataGrid.cs: implement missing methods, move KeyboardNavigation
27323         * DataGridColumnStyle.cs: fixes signature
27324
27325 2005-06-12  Jackson Harper  <jackson@ximian.com>
27326
27327         * XplatUIX11.cs: Use sizing cursors similar to the ones on
27328         windows.
27329
27330 2005-06-11  Jackson Harper  <jackson@ximian.com>
27331
27332         * StatusBarPanel.cs: Signature cleanups. Implement
27333         BeginInit/EndInit.
27334
27335 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
27336
27337         * DataGridTextBoxColumn.cs: Honors aligment
27338         * GridColumnStylesCollection.cs: Contains is case unsensitive
27339         * GridTableStylesCollection.cs: several fixes
27340         * DataGridTableStyle.cs: default column creation
27341         * DataGridDrawingLogic.cs: fixes
27342         * CurrencyManager.cs: ListName property
27343         * DataGrid.cs: multiple styles support
27344         * DataGridColumnStyle.cs: fixes
27345         
27346
27347 2005-06-10  Peter Bartok  <pbartok@novell.com>
27348
27349         * Control.cs(Select): Moved SetFocus call to avoid potential
27350           loops if controls change the active control when getting focus
27351         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
27352           the up/down buttons
27353
27354 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
27355
27356         * ImageListConverter.cs: Implemented
27357
27358 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
27359
27360         * MonthCalendar.cs: Wired in NumericUpDown control for year
27361
27362 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
27363
27364         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
27365           DoubleClick events, since they are not meant to be fired.
27366
27367 2005-06-09  Peter Bartok  <pbartok@novell.com>
27368
27369         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
27370           Jonathan's standalone controls into MWF, implemented missing
27371           events, attributes and methods; added xxxAccessible classes
27372         * AccessibleObject.cs: Made fields internal so other classes
27373           can change them if needed
27374
27375 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
27376
27377         * UpDownBase.cs: Complete implementation
27378         * NumericUpDown.cs: Complete implementation
27379         * DomainUpDown.cs: Complete implementation
27380
27381 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
27382
27383         * DataGridTextBoxColumn.cs: drawing fixes
27384         * DataGridCell.cs: fixes ToString method to match MSNet
27385         * DataGridTableStyle.cs: fixes
27386         * DataGridBoolColumn.cs: fixes, drawing
27387         * DataGridDrawingLogic.cs: fixes, new methods
27388         * DataGridTextBox.cs: Keyboard and fixes
27389         * DataGrid.cs:
27390                 - Keyboard navigation
27391                 - Scrolling fixes
27392                 - Row selection (single, multiple, deletion, etc)
27393                 - Lots of fixes
27394         
27395 2005-06-07  Jackson Harper  <jackson@ximian.com>
27396
27397         * ThemeWin32Classic.cs: Clear the background area when drawing
27398         buttons.
27399
27400 2005-06-06  Peter Bartok  <pbartok@novell.com>
27401
27402         * ImageListStreamer.cs: Fixed signature for GetData
27403         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
27404         * ComboBox.cs:
27405           - Added missing ChildAccessibleObject class
27406           - Added missing OnXXXFocus overrides, switched to using those
27407             instead of the event handler
27408         * Control.cs:
27409           - Added Parent property for ControlAccessibleObject
27410           - Fixed signatures
27411           - Fixed attributes
27412           - Added ResetBindings()
27413         * ListBindingConverter.cs: Implemented some methods
27414         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
27415         * ImageList.cs: Implemented basic handle scheme, removed TODOs
27416         * ContainerControl.cs: Fixed signature, now subscribing to the
27417           ControlRemoved event instead of overriding the handler, LAMESPEC
27418         * CurrencyManager.cs: Added missing attribute
27419         * MonthCalendar.cs: Added missing properties
27420
27421 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
27422
27423         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
27424         
27425 2005-06-06  Gaurav Vaish and Ankit Jain
27426
27427         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
27428         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
27429         
27430 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
27431
27432         * Control.cs: fixes CreateParams Width / Height.
27433
27434 2005-06-05  Peter Bartok  <pbartok@novell.com>
27435
27436         * Win32DnD.cs: Removed compilation warnings
27437
27438 2005-06-05  Peter Bartok  <pbartok@novell.com>
27439
27440         * Control.cs (CreateParams): Since we don't know if one of the
27441           properties we use is overridden, lets make sure if we fail accessing
27442           we continue with a backup plan
27443
27444 2005-06-05  Peter Bartok  <pbartok@novell.com>
27445
27446         * Win32DnD.cs:
27447           - Removed debug output
27448           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
27449             struct
27450           - Plugged resource leak
27451         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
27452           MS size
27453
27454 2005-06-05  Peter Bartok  <pbartok@novell.com>
27455
27456         * XplatUIWin32.cs: Removed DnD code
27457         * Win32DnD.cs: Implemented drop source and drop target functionality
27458
27459 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27460
27461         * UpDownBase.cs: remove duplicate addition of event, enable some code
27462         that was commented out.
27463         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
27464         Validate input when a key is pressed. It works fine now for every
27465         combination of Hexadecimal. Only missing some drawing love when sharing
27466         space with other controls.
27467
27468 2005-06-04  Peter Bartok  <pbartok@novell.com>
27469
27470         * Control.cs:
27471           - We need to pass a window for DragDrop, so enable callback events
27472           - Added DnD callback events when being a DragSource
27473         * XplatUI.cs (StartDrag): Added window handle argument
27474         * XplatUIDriver.cs (StartDrag): Added window handle argument
27475         * QueryContinueDragEventArgs: Made fields internally accessible so
27476           drivers can set them
27477         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
27478           can set them
27479
27480 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
27481
27482         * DataGridTextBoxColumn.cs: column text editing
27483         * DataGridTableStyle.cs: Respect columns styles created by the user
27484         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
27485         * DataGridBoolColumn.cs: bool column editing
27486         * DataGrid.cs: fixes to scrolling, properties, etc
27487         * DataGridTextBox.cs: handle keyboard
27488         * DataGridColumnStyle.cs: fixes
27489
27490 2005-06-02  Jackson Harper  <jackson@ximian.com>
27491
27492         * ImageListStreamer.cs: Somewhat broken implementation of
27493         GetObjectData. The RLE needs some work to match MS properly.
27494
27495 2005-06-02  Jackson Harper  <jackson@ximian.com>
27496
27497         * X11Dnd.cs: Attempting to keep at least one file in MWF
27498         monostyled.
27499
27500 2005-06-02  Peter Bartok  <pbartok@novell.com>
27501
27502         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
27503           that way
27504
27505 2005-06-02  Peter Bartok  <pbartok@novell.com>
27506
27507         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
27508         * XplatUI.cs: Added DoDragDrop() method
27509         * XplatUIDriver.cs: Added DoDragDrop() method
27510
27511 2005-06-02  Jackson Harper  <jackson@ximian.com>
27512
27513         * Splitter.cs: Implement BorderStyle.
27514
27515 2005-06-02  Jackson Harper  <jackson@ximian.com>
27516
27517         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
27518         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
27519         X11 using XDND.
27520
27521 2005-06-02  Peter Bartok  <pbartok@novell.com>
27522
27523         * DataObject.cs:
27524           - Added Data setter
27525           - Fixed broken insertion code for SetData, now also
27526             overwrites any existing entry of the same format name
27527         * Hwnd.cs: Added list of pointers that automatically gets
27528           freed when the window is disposed
27529         * XplatUI.cs: Call driver initialization method when loading
27530           a driver
27531         * Control.cs:
27532           - OnDragLeave takes EventArgs, not DragEventArgs
27533           - Added setting of WS_EX_ACCEPTFILES style when dropping is
27534             supported
27535           - Forces style update when drop state changes
27536         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
27537           not perfect since we cannot (yet) call the IDataObject.GetData()
27538           method, we keep getting 0x80004005 error, dunno why)
27539
27540 2005-06-02  Peter Bartok  <pbartok@novell.com>
27541
27542         * DragEventArgs.cs: Make fields internal so we can cache the
27543           object and re-set the fields from XplatUI
27544
27545 2005-06-02  Jackson Harper  <jackson@ximian.com>
27546
27547         * Control.cs: Add some internal methods so the DnD subsystem can
27548         raise DnD events. Also call into the driver when AllowDrop is set.
27549         * XplatUI.cs:
27550         * XplatUIDriver.cs: New method for setting whether or not a window
27551         is allowed to accept drag and drop messages.
27552                 
27553 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
27554         
27555         * ScrollBar.cs: Make sure that values sent in Scroll events
27556         are always between Maximum and Minimum.
27557
27558 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
27559
27560         * Menu.cs: Call MenuChanged when menuitem visibility has been
27561         changed.
27562         * MenuItem.cs: Rebuild menu when item is (not) visible.
27563         * MainMenu.cs: MainMenu has special MenuChanged.
27564         * Theme.cs: Caption and FrameBorderSize are not fixed.
27565         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
27566         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
27567         * XplatUIX11.cs,
27568         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
27569         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
27570
27571 2005-05-30  Jackson Harper  <jackson@ximian.com>
27572
27573         * DataFormat.cs: We can't statically initialize this stuff because
27574         it calls into the xplatui and could create a loop. So we lazy init
27575         it.
27576
27577 2005-05-28  Jackson Harper  <jackson@ximian.com>
27578
27579         * Control.cs: Proper implementation of Product(Name/Version).
27580
27581 2005-05-27  Jackson Harper  <jackson@ximian.com>
27582
27583         * DataObject.cs: Dont crash if no data is found.
27584
27585 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
27586         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
27587                 as per status page, guessing it should be set to true
27588
27589 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
27590
27591         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
27592         * DataGridTableStyle.cs: set proper formatting text, def header text
27593         * ThemeWin32Classic.cs: new themable paramaters
27594         * DataGridBoolColumn.cs: paint check box, get data, fixes
27595         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
27596         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
27597         * DataGridColumnStyle.cs: fixes
27598         * Theme.cs: new themable paramaters
27599                 
27600 2005-05-26  Peter Bartok  <pbartok@novell.com>
27601
27602         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
27603
27604 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
27605         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
27606
27607 2005-05-24  Peter Bartok  <pbartok@novell.com>
27608
27609         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
27610           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
27611           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
27612           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
27613           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
27614           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
27615           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
27616           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
27617           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
27618           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
27619           missing attributes, etc
27620         * DataGridPreferredColumnWidthTypeConverter.cs: Added
27621
27622 2005-05-24  Peter Bartok  <pbartok@novell.com>
27623
27624         * Help.cs: Added, implemented trivial functions, throws up MessageBox
27625           when user tries to get help
27626         * DataObject.cs, DataFormats.cs, LinkArea.cs,
27627           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
27628           to suppress warnings
27629         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
27630           avoid unreachable code warning
27631
27632 2005-05-20  Peter Bartok  <pbartok@novell.com>
27633
27634         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
27635
27636 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
27637
27638         * DataGridTextBoxColumn.cs: Basic painting methods
27639         * DataGridTableStyle.cs: Set table style in the column
27640         * ThemeWin32Classic.cs: Use Theme for colors
27641         * DataGridDrawingLogic.cs: Implement more drawing
27642         * DataGrid.cs: drawing, theming, enhacements, fixes
27643         * DataGridColumnStyle.cs: fixes, drawing
27644         * Theme.cs: theming for Datagrid
27645
27646 2005-05-20  Peter Bartok  <pbartok@novell.com>
27647
27648         * Cursor.cs: Implemented GetObjectData() method
27649
27650 2005-05-20  Peter Bartok  <pbartok@novell.com>
27651
27652         * Cursors.cs: Added setting of cursor name
27653         * Cursor.cs:
27654           - Implemented constructors
27655           - Implemented Draw and DrawStretched
27656           - Implemented Current property
27657           - Implemented == and != operators
27658           - Implemented Dispose()
27659           - Implemented ToString
27660           - Added missing attributes
27661         * XplatUIX11.cs:
27662           - Added missing reset for OverrideCursor when DoEvents is called
27663           - Fixed creation of cursor, logic was wrong
27664         * XplatUIWin32.cs:
27665           - Added missing reset for OverrideCursor when DoEvents is called
27666           - Fixed creation of cursor, bit arrays were swapped
27667         * Clipboard.cs: Removed obsolete MonoTODO attribute
27668
27669 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
27670
27671         * ComboBox.cs: fixes OnSelectedItemChanged
27672         * ControlBindingsCollection.cs: fixes item range check
27673
27674 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
27675
27676         * UpDownBase.cs:
27677                 - Calc preferred height properly
27678                 - Implement missing properties
27679                 
27680         * NumericUpDown.cs: Implement missing events
27681
27682 2005-05-19  Jackson Harper  <jackson@ximian.com>
27683
27684         * TabControl.cs: New method that resizes the tab pages before
27685         redrawing them. This as needed as the control is double buffered
27686         and sizing will not be recalculated unless ResizeTabPages is
27687         called.
27688         * TabPage.cs: Set base.Text instead of Text in the constructor so
27689         that UpdateOwner does not get called. Use the new Redraw method of
27690         TabControl instead of Refresh so the sizing is recalculated.
27691         * ThemeWin32Classic.cs: Draw the text for button tabs.
27692
27693 2005-05-19  Jackson Harper  <jackson@ximian.com>
27694
27695         * Control.cs: Paint control background images. Fix typo where
27696         PaintControlBackground was not getting called correctly.
27697
27698 2005-05-19  Peter Bartok  <pbartok@novell.com>
27699
27700         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
27701           I can investigate, apparently I broke FileDialog
27702
27703 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
27704
27705         * AxHost.cs: Some simple properties.
27706         * Control.cs: window must be accessible after ctor.
27707         * Form.cs: Added TransparencyKey property.
27708         * TextBoxBase.cs: Implemented Clear. Text property can be null.
27709         * XplatUIWin32.cs: SetBorderStyle implemented.
27710
27711 2005-05-18  Peter Bartok  <pbartok@novell.com>
27712
27713         * DataObject.cs: Entries are not global but particular to the
27714           DataObject, now it behaves that way
27715         * XplatUIWin32.cs: Implemented Clipboard methods
27716         * Clipboard.cs: Implemented
27717         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
27718         * XplatUIOSX.cs: Updated to final clipboard prototypes
27719         * XplatUIX11.cs: Implemented Clipboard methods
27720         * XplatUIDriver.cs: Updated to final clipboard prototypes
27721         * XplatUIStructs.cs:
27722           - Added BITMAPINFOHEADER struct
27723           - Added ClipboardFormats enum
27724         * X11Structs.cs:
27725           - Added ClipboardStruct
27726           - Added Atom enum items for clipboard types
27727           - Fixed atom types for Selection event structures
27728         * DataFormats.cs:
27729           - Added internal properties and methods for drivers to enumerate
27730             all known formats
27731           - Switched initialization method to allow drivers to assign their
27732             own IDs even for the MS predefined clipboard IDs
27733         * XplatUI.cs: Updated to final clipboard interface
27734
27735 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
27736         * PropertyGridView.cs: Fixed compiler warnings.
27737
27738 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
27739         * PropertyGrid.cs: Added some event calls
27740         * PropertyGridView.cs: Change drawing code to use double buffering
27741         * PropertyGridTextBox.cs: Changed Text property name
27742         * GridItem.cs: Added Bounds property.
27743         * GridEntry.cs: Added Bounds property.
27744
27745 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
27746
27747         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
27748         since GetType() may not return the correct type if the object is
27749         a remoting proxy.
27750
27751 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
27752
27753         * TreeNodeCollection.cs: fixes get/set item ranges
27754         
27755 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
27756
27757         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
27758                 
27759 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
27760
27761         * ComboBox.cs: Fix item range comparation
27762         * ListView.cs: Fix item range comparation
27763
27764 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
27765
27766         * FontDialog.cs:
27767           - Clear example panel when OnPaint is called
27768           - Better solution for displaying the example panel text
27769           - Select default indexes in the ListBoxes
27770
27771 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
27772
27773         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
27774
27775 2005-05-11  Peter Bartok  <pbartok@novell.com>
27776
27777         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
27778         * SelectionRangeConverter.cs: Implemented
27779         * PropertyGrid.cs: Fixed attribute value
27780         * Control.cs:
27781           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
27782           - Added Sebastien Pouliot's CAS Stack Propagation fixes
27783         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
27784           that's common to all drivers. First methods to go there are
27785           Sebastien Pouliot's CAS Stack Propagation helper methods
27786         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
27787           Sebastien Pouliot for CAS Stack Propagation
27788
27789 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
27790
27791         * OSXStructs.cs:
27792           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
27793
27794 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
27795
27796         * DataGridTextBoxColumn.cs: fixed some members
27797         * GridColumnStylesCollection.cs: indexed column is case insensitive
27798         * DataGridTableStyle.cs: fixes
27799         * ThemeWin32Classic.cs: add new theme parameter
27800         * Theme.cs: add new theme parameter
27801         * DataGridDrawingLogic.cs: Datagrid's drawing logic
27802         * DataGrid.cs: fixes, new internal properties, etc.
27803         * DataGridColumnStyle.cs: allows to set grid value
27804         *
27805
27806 2005-05-10  Peter Bartok  <pbartok@novell.com>
27807
27808         * AccessibleObject.cs:
27809           - Removed MonoTODO attribute on help, method is correct
27810           - Fixed Bounds property
27811         * AxHost.cs: Moved MonoTODO
27812         * ButtonBase.cs: Now setting AccessibleObject properties
27813         * RadioButton.cs: Setting proper AccessibleObject role
27814         * CheckBox.cs: Setting proper AccessibleObject role
27815         * ControlBindingsCollection.cs: Added properties, methods and attributes
27816         * DataFormats.cs: Fixed awkward internal API, and changed to enable
27817           userdefined DataFormats.Format items as well
27818         * ListControl.cs: Removed data_member from the public eye
27819         * OpenFileDialog.cs:
27820           - Made class sealed
27821           - Added missing attributes
27822         * SaveFileDialog.cs: Added missing attributes
27823         * ImageListStreamer.cs: Fixed code that caused warnings
27824         * LinkLabel.cs: Removed unreachable code
27825         * TreeView.cs: Fixed code that caused warnings
27826         * PropertyGridView.cs: Fixed code that caused warnings
27827         * GridColumnStylesCollection.cs: Added missing attributes
27828         * GridTableStylesCollection: Added missing attribute
27829         * PropertyManager: Added .ctor
27830         * SecurityIDType: Added
27831         * DataObject.cs: Implemented class
27832         * LinkArea.cs: Added missing attribute
27833
27834 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
27835
27836         * RadioButton.cs: call base method to allow to fire OnClick event
27837         * UpDownBase.cs: OnMouseUp call base method
27838         * CheckedListBox.cs: call base method before returning
27839         * TrackBar.cs: call base method before returning
27840         
27841
27842 2005-05-10  Peter Bartok  <pbartok@novell.com>
27843
27844         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
27845           for messages
27846
27847 2005-05-10  Peter Bartok  <pbartok@novell.com>
27848
27849         * DataFormats.cs: Implemented
27850         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
27851           XplatUIX11.cs: Added Clipboard APIs
27852         * XplatUIWin32.cs: Implemented Clipboard APIs
27853         * FolderBrowserDialog.cs: Added missing event, attributes
27854
27855 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
27856
27857         * CheckBox.cs: call base method to allow to fire OnClick event
27858
27859 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
27860
27861         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
27862
27863 2005-05-06  Peter Bartok  <pbartok@novell.com>
27864
27865         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
27866         * Screen.cs: Implemented
27867         * HelpNavigator.cs: Added
27868         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
27869           property
27870         * HelpProvider.cs: Implemented all we can do until we have a CHM
27871           help library (which means that "What's This" does work now)
27872
27873 2005-05-06  Jackson Harper  <jackson@ximian.com>
27874
27875         * XplatUIX11.cs: Fix waking up the main loop.
27876                 
27877 2005-05-05  Peter Bartok  <pbartok@novell.com>
27878
27879         * XplatUI.cs: Updated revision
27880         * Form.cs: Removed enless loop
27881         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
27882         * Label.cs (OnPaint): Added call to base.OnPaint()
27883         * ToolTip.cs: Made ToolTipWindow reusable for other controls
27884         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
27885         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
27886         * AxHost.cs: Added
27887         * ButtonBase.cs: Moved base.OnPaint() call to end of method
27888         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
27889           to ToolTip.ToolTipWindow for drawing and size methods; this allows
27890           reuse of ToolTipWindow by other controls
27891         * SizeGrip.cs: Moved base.OnPaint() call to end of method
27892         * XplatUIX11.cs: Now clipping drawing area (experimental)
27893         * PictureBox.cs: Moved base.OnPaint() call to end of method
27894         * Theme.cs: Fixed ToolTip abstracts to match new format
27895         * ErrorProvider.cs: Implemented
27896
27897 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
27898
27899         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
27900         * LinkLabel.cs:
27901                 - Adds cursors
27902                 - Handles focus
27903                 - Implements LinkBehavior
27904                 - Fixes many issues
27905
27906 2005-05-03  Jackson Harper  <jackson@ximian.com>
27907
27908         * ListView.cs: Calculate the scrollbar positioning on resize and
27909         paint, so they get put in the correct place.
27910
27911 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
27912
27913         * ColorDialogs.cs: The small color panels are now handled by
27914           SmallColorControl. This fixes drawing of the focus rectangle
27915           and adds a 3D border.
27916
27917 2005-05-03  Peter Bartok  <pbartok@novell.com>
27918
27919         * Control.cs: Modified version of Jonathan Chamber's fix for
27920           double-buffering
27921
27922 2005-05-03  Jackson Harper  <jackson@ximian.com>
27923
27924         * ListView.cs: Remove redraw variable. Control now handles whether
27925         or not a redraw needs to be done, and will only raise the paint
27926         event if redrawing is needed.
27927
27928 2005-05-03  Jackson Harper  <jackson@ximian.com>
27929
27930         * Splitter.cs: No decorations for the splitter form. Cache the
27931         hatch brush.
27932
27933 2005-05-03  Jackson Harper  <jackson@ximian.com>
27934
27935         * TreeView.cs: Use dashed lines to connect nodes. Use the
27936         ControlPaint method for drawing the focus rect instead of doing
27937         that in treeview.
27938
27939 2005-05-02  Peter Bartok  <pbartok@novell.com>
27940
27941         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
27942
27943 2005-04-29  Jackson Harper  <jackson@ximian.com>
27944
27945         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
27946         entire image buffer. Just clear the clipping rectangle.
27947
27948 2005-04-29  Jackson Harper  <jackson@ximian.com>
27949
27950         * ThemeWin32Classic.cs: Don't draw list view items that are
27951         outside the clipping rectangle.
27952
27953 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
27954
27955         * ListBox.cs: added horizontal item scroll
27956
27957 2005-04-29  Jackson Harper  <jackson@ximian.com>
27958
27959         * ThemeWin32Classic.cs: Remove some old debug code that was
27960         causing flicker with the new double buffering code.
27961
27962 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
27963
27964         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
27965         behave like combobox and comboboxlist (still not sure if this is
27966         correct though).
27967
27968 2005-04-28  Jackson Harper  <jackson@ximian.com>
27969
27970         * ThemeWin32Classic.cs: Don't fill the middle of progress
27971         bars. This fills areas outside of the clip bounds that don't need
27972         to be filled.
27973
27974 2005-04-28  Jackson Harper  <jackson@ximian.com>
27975
27976         * Control.cs: Don't expose functionality to touch the image buffers.
27977         * ProgressBar.cs:
27978         * ListView.cs: We do not need to (and no longer can) manipulate
27979         the image buffers directly. All of this is handled by Control.
27980
27981 2005-04-28  Peter Bartok  <pbartok@novell.com>
27982
27983         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
27984           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
27985           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
27986
27987 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
27988
27989         * Combobox:
27990                 - Adjust control's height for non-simple comboboxes (bug fix)
27991                 - Remove dead code
27992         * MenuAPI.cs: remove unused var
27993         * ScrollBar.cs: remove unsed var
27994                  
27995         * ListBox.cs: unselect items when clearing
27996
27997 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
27998
27999         * ListControl.cs: honors OnPositionChanged and default Selected Item
28000         * ListBox.cs: unselect items when clearing
28001
28002 2005-04-27  Jackson Harper  <jackson@ximian.com>
28003
28004         * X11Keyboard.cs: Initialize a default keyboard and give a warning
28005         if a "correct" keyboard is not found. This will make us not crash,
28006         but might give some users bad keyboard layouts...seems to be the
28007         same thing rewind does.
28008
28009 2005-04-27  Jackson Harper  <jackson@ximian.com>
28010
28011         * BindingManagerBase.cs: Attach the current/position changed
28012         handlers to their respective events.
28013
28014 2005-04-27  Jackson Harper  <jackson@ximian.com>
28015
28016         * Control.cs: Make sure that the first WM_PAINT does a full draw,
28017         not just a blit.
28018         * ThemeWin32Classic.cs: Don't fill the background for picture
28019         boxes. This could overright user drawing.
28020         * ComboBox.cs: Just fill the clipping rect not the entire client
28021         rect when drawing the background. This prevents pieces of the
28022         image buffer from getting overwritten and is theoretically faster.
28023
28024 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
28025
28026         * ComboBox.cs: Databinding support fixes, fire missing events
28027         * ListControl.cs: implement missing methods and properties, fixes
28028         * ThemeWin32Classic.cs: Databiding support on Drawing
28029         * CheckedListBox.cs: Databinding support fixes, fire missing events
28030         * ListBox.cs: Databinding support fixes, fire missing events
28031         
28032 2005-04-25  Peter Bartok  <pbartok@novell.com>
28033
28034         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
28035
28036 2005-04-25  Jackson Harper  <jackson@ximian.com>
28037
28038         * TreeView.cs: Use the horizontal scrollbars height not width when
28039         determining how much of the client area is available.
28040
28041 2005-04-25  Jackson Harper  <jackson@ximian.com>
28042
28043         * Control.cs: Double buffering is handled differently now. As per
28044         the spec, the extra buffer is created in the WM_PAINT message and
28045         passed down to the control's drawing code.
28046         * GroupBox.cs:
28047         * Label.cs:
28048         * CheckBox.cs:
28049         * ProgressBar.cs:
28050         * RadioButton.cs:
28051         * ColorDialog.cs:
28052         * ComboBox.cs:
28053         * PropertyGridView.cs:
28054         * UpDownBase.cs:
28055         * MessageBox.cs:
28056         * MenuAPI.cs:
28057         * ListView.cs:
28058         * ButtonBase.cs:
28059         * SizeGrip.cs:
28060         * ScrollBar.cs:
28061         * ListBox.cs:
28062         * TrackBar.cs:
28063         * ToolBar.cs:
28064         * PictureBox.cs:
28065         * DateTimePicker.cs:
28066         * StatusBar.cs:
28067         * TreeView.cs: Update to new double buffering system.
28068         * MonthCalendar.cs: Uncomment block, as Capture is now
28069         working. Update to new double buffering
28070         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
28071         * PaintEventArgs.cs: New internal method allows us to set the
28072         graphics object. This is used for double buffering.
28073         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
28074         rectangle. The internal paint_area var has been removed from
28075         StatusBar. The clipping rect should be used instead.
28076         * Theme.cs: Give the PictureBox drawing method a clipping rect.
28077         * TabPage.cs: The RefreshTabs method was removed, so just call the
28078         tab controls Refresh method now.
28079         * TabControl.cs: Update to new double buffering. Make sure the
28080         handle is created before sizing the tab pages, otherwise we will
28081         get stuck in a loop.
28082
28083 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
28084
28085         * LinkLabel.cs: Fix typo, bug #74719; patch
28086           from Borja Sanchez Zamorano
28087
28088 2005-04-22  Jackson Harper  <jackson@ximian.com>
28089
28090         * TreeNode.cs: Implement Handle stuff.
28091         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
28092
28093 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
28094
28095         * DataGridTextBoxColumn.cs: call base constructors, fixes
28096         * GridColumnStylesCollection.cs: missing events, methods, and functionality
28097         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
28098         * DataGridTableStyle.cs: implements create default column styles
28099         * DataGridBoolColumn.cs: which types can handle
28100         * DataGrid.cs: missing methods, fixes, new functionality
28101         * DataGridColumnStyle.cs: fixes
28102
28103 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
28104         * FolderBrowserDialog.cs:
28105         - Use a thread to fill the TreeView
28106         - Adjusted some sizes
28107
28108 2005-04-19  Peter Bartok  <pbartok@novell.com>
28109
28110         * LinkLabel.cs: (Re-)create the pieces when setting the Text
28111           property. Fixes #74360.
28112
28113 2005-04-19  Jackson Harper  <jackson@ximian.com>
28114
28115         * XEventQueue.cs: Lock when getting the lockqueue size.
28116         * PictureBox.cs: Call base OnPaint
28117         
28118 2005-04-19  Peter Bartok  <pbartok@novell.com>
28119
28120         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
28121           messages were no longer being processed (this broke BeginInvoke)
28122
28123           
28124 2005-04-18  Jackson Harper  <jackson@ximian.com>
28125
28126         * TreeView.cs: buglet that caused node images to get drawn
28127         regardless of whether or not they were in the clipping rectangle.
28128
28129 2005-04-18  Jackson Harper  <jackson@ximian.com>
28130
28131         * CurrencyManager.cs: There are four rules for GetItemProperties:
28132         - If the type is an array use the element type of the array
28133         - If the type is a typed list, use the type
28134         - If the list contains an Item property that is not an object, use
28135         that property
28136         - use the first element of the list if there are any elements in
28137         the list.
28138         
28139 2005-04-17  Jackson Harper  <jackson@ximian.oom>
28140
28141         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
28142         click. This handles offsets for scrolling properly and reduces
28143         memory. Also fixed GetNode to not offset now that TopNode works
28144         properly.
28145         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
28146         
28147 2005-04-17  Jackson Harper  <jackson@ximian.com>
28148
28149         * CursorConverter.cs: Initial implementation.
28150
28151 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
28152
28153         * ListControl.cs: work towards complex data binding support on ListControl
28154         * CurrencyManager.cs: work towards complex data binding support on ListControl
28155         * ListBox.cs: work towards complex data binding support on ListControl
28156
28157
28158 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
28159
28160         * GridTableStylesCollection.cs: fixes name and constructor
28161         * DataGridTableStyle.cs: fixes
28162         * DataGridBoolColumn.cs: fixes names and constructors
28163         * DataGrid.cs: define methods and properties. Some init implementations
28164         * DataGridCell.cs: define methods and properties. Some init implementations
28165         * GridTablesFactory.cs: Define methods and properties
28166
28167 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
28168
28169         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
28170         graphics port changes.  We still want the coordinates in global screen
28171         coordinates.
28172
28173 2005-04-14  Jackson Harper  <jackson@ximian.com>
28174
28175         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
28176         check plus minus or checkbox clicks unless those features are enabled.
28177
28178 2005-04-14  Jackson Harper  <jackson@ximian.com>
28179
28180         * TreeView.cs: Add methods for setting the top and bottom visible
28181         nodes. TreeNode::EnsureVisible uses these methods.
28182         * TreeNode.cs: Implement EnsureVisible
28183
28184 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
28185
28186         * Form.cs: Pospone menu assignation if the window has not been created yet
28187         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
28188         size and position
28189
28190 2005-04-12  Jackson Harper  <jackson@ximian.com>
28191
28192         * TreeView.cs: Set the TopNode properly when scrolling
28193         occurs. This has the added benifit of reducing the amount of
28194         walking that needs to be done when drawing. Also removed an old
28195         misleading TODO.
28196         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
28197         
28198 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
28199
28200         * Timer.cs: fixes interval setting when the timer is already enabled
28201         
28202 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
28203
28204         * FolderBrowserDialog.cs: First approach
28205
28206 2005-04-09  Peter Bartok  <pbartok@novell.com>
28207
28208         * FolderBrowserDialog: Added
28209
28210 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
28211
28212         * LinkLabel.cs: move drawing code into the theme
28213         * ThemeWin32Classic.cs: drawing code and painting background bugfix
28214         * Theme.cs: define DrawLinkLabel method
28215
28216 2005-04-05  Jackson Harper  <jackson@ximian.com>
28217
28218         * BindingContext.cs: Use weak references so these bad actors don't
28219         stay alive longer then they need to.
28220
28221 2005-04-05  Jackson Harper  <jackson@ximian.com>
28222
28223         * ListControl.cs: Basic implementation of complex databinding.
28224         * ComboBox.cs:
28225         * ListBox.cs: Add calls to ListControl databinding methods.
28226
28227 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
28228
28229         * FileDialog.cs:
28230           - Don't change PopupButtonState to Normal when the
28231             PopupButton gets pressed several times.
28232           - Renamed ButtonPanel to PopupButtonPanel
28233
28234 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
28235
28236         * ColorDialog.cs: Use cached objects instead of creating them
28237         * LinkLabel.cs: Use cached objects instead of creating them
28238         * Splitter.cs: Use cached objects instead of creating them
28239         * FontDialog.cs: Use cached objects instead of creating them
28240         * PropertyGridView.cs: Use cached objects instead of creating them
28241         * MessageBox.cs: Use cached objects instead of creating them
28242         * FileDialog.cs: Use cached objects instead of creating them
28243         * ThemeWin32Classic.cs: Use cached objects instead of creating them
28244         * TreeView.cs: Use cached objects instead of creating them
28245         
28246 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
28247
28248         * Control.cs: use Equals to compare the font since no == op
28249         * ScrollBar.cs: use Equals to compare the font since no == op
28250
28251 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
28252
28253         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
28254
28255 2005-04-01  Jackson Harper  <jackson@ximian.com>
28256
28257         * Binding.cs: Implement IsBinding.
28258         * BindingManagerBase.cs:
28259         * PropertyManager.cs:
28260         * CurrencyManager.cs: Add IsSuspended property.
28261
28262 2005-04-01  Jackson Harper  <jackson@ximian.com>
28263
28264         * Binding.cs: Had some IsAssignableFrom calls backwards.
28265
28266 2005-04-01  Jackson Harper  <jackson@ximian.com>
28267
28268         * Binding.cs: Handle null data members when pulling data.
28269         * PropertyManager.cs: Handle the data member being a property that
28270         does not exist.
28271
28272 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
28273
28274         * DataGridTextBoxColumn.cs: fixes signature
28275         * DataGrid.cs: calls right constructor
28276
28277 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
28278
28279         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
28280         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
28281         * GridTableStylesCollection.cs: implements GridTableStylesCollection
28282         * DataGridTableStyle.cs: implements DataGridTableStyle
28283         * DataGridBoolColumn.cs: implements DataGridBoolColumn
28284         * DataGridTextBox.cs: implements DataGridTextBox
28285         * DataGridColumnStyle.cs: implements DataGridColumnStyle
28286
28287 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
28288
28289         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
28290
28291 2005-03-29  Peter Bartok  <pbartok@novell.com>
28292
28293         * Application.cs:
28294           - Properly implemented CompanyName property
28295           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
28296             returns a path that includes CompanyName, ProductName and
28297             Version (fixes bug #70330)
28298
28299 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
28300
28301         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
28302           fixes bug #72588.
28303
28304 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
28305
28306         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
28307         
28308           - Added ReadOnly CheckBox
28309           - Further refactoring: moved some code from Open-/SaveFileDialog
28310             to FileDialog
28311
28312 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
28313
28314         * OpenFileDialog.cs: Fixed CheckFileExists
28315         * FileDialog.cs:
28316           Moved FileView and DirComboBox outside FileDialog class.
28317           They can now be used outside FileDialog
28318
28319 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
28320
28321         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
28322         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
28323
28324 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
28325
28326         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
28327           - Added missing CreatePrompt property in SaveDialog
28328           - Overall SaveDialog handling should be better now
28329           - Added non standard ShowHiddenFiles property
28330           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
28331           - Added InitialDirectory and RestoreDirectory support
28332
28333 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
28334
28335         * FileDialog.cs: Made dirComboBox usable
28336
28337 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
28338
28339         * FileDialog.cs: Added Filter support (case sensitiv)
28340
28341 2005-03-24  Jackson Harper  <jackson@ximian.com>
28342
28343         * TabControl.cs: Need a couple more pixels for the lines.
28344
28345 2005-03-23  Jackson Harper  <jackson@ximian.com>
28346
28347         * TabControl.cs: Give the tab page focus when it is selected.
28348
28349 2005-03-23  Jackson Harper  <jackson@ximian.com>
28350
28351         * TabControl.cs: Account for the drawing of tabs borders when
28352         invalidating. If the slider was clicked dont do click detection on
28353         the tabs.
28354
28355 2005-03-23  Jackson Harper  <jackson@ximian.com>
28356
28357         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
28358
28359 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
28360
28361         * CategoryGridEntry.cs: Added
28362         * GridItem.cs: Added helper properties
28363         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
28364         * GridEntry.cs: Updated code for collection
28365         * PropertyGrid.cs: Cleaned up some formatting
28366         * PropertyGridView.cs: Added drop down functionality for enums.
28367         * GridItemCollection.cs: Added enumerator logic
28368         * PropertyGridEntry.cs: Added
28369
28370 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
28371
28372         * FileDialog.cs:
28373           - Removed unnecessary commented code
28374           - Fixed handling for entering the filename manually in the combobox
28375
28376 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
28377
28378         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
28379
28380 2005-03-18  Peter Bartok  <pbartok@novell.com>
28381
28382         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
28383           them being touching the border
28384
28385 2005-03-18  Peter Bartok  <pbartok@novell.com>
28386
28387         * TextControl.cs: Quick hack to center text better
28388
28389 2005-03-18  Peter Bartok  <pbartok@novell.com>
28390
28391         * ControlPaint.cs:
28392           - Don't throw NotImplemented exceptions, just print a notice once
28393             instead (requested by Miguel). This makes running existing SWF
28394             apps a bit easier
28395         * Control.cs:
28396           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
28397           - Added context menu trigger on right click
28398         * Panel.cs: Trigger invalidate on resize
28399         * StatusBar.cs:
28400           - Removed old double-buffer drawing
28401           - Added ResizeRedraw style to force proper update of statusbar
28402         * ListView.cs:
28403           - Removed debug output
28404         * ThemeWin32Classic.cs:
28405           - Fixed drawing of status bar, now draws Text property if there
28406             are no defined panels
28407
28408 2005-03-18  Jackson Harper  <jackson@ximian.com>
28409
28410         * ImageList.cs: When the image stream is set pull all the images
28411         from it.
28412         * ImageListStreamer.cs: Implement reading image list streams.
28413
28414 2005-03-18  Peter Bartok  <pbartok@novell.com>
28415
28416         * ThemeWin32Classic.cs (DrawPictureBox):
28417           - Fixed calculations for centered drawing
28418           - Fixed drawing for normal mode, not scaling the image on normal
28419
28420 2005-03-18  Peter Bartok  <pbartok@novell.com>
28421
28422         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
28423           textbox
28424         * FileDialog.cs:
28425           - Made Open/Save button the accept button for FileDialog
28426           - Tied the cancel button to the IButtonControl cancel button
28427           - Save/Open now properly builds the pathname
28428           - Now handles user-entered text
28429           - Preventing crash on right-click if no item is selected
28430           - Fixed Text property, now uses contents of textbox
28431           - Fixed SelectedText property, now just returns the text part that
28432             is selected in the text box
28433
28434 2005-03-18  Jackson Harper  <jackson@ximian.com>
28435
28436         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
28437         rect, make sure to de-adjust the interior rect after drawing the
28438         tab text.
28439
28440 2005-03-18  Peter Bartok  <pbartok@novell.com>
28441
28442         * MenuAPI.cs: Remove menu *before* executing selected action to
28443           prevent the menu from 'hanging around'
28444           
28445 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
28446
28447         * XplatUIOSX.cs: Implemented WorkingArea property
28448
28449 2005-03-17  Peter Bartok  <pbartok@novell.com>
28450
28451         * XplatUIX11.cs: Fixed menu coord calculations
28452         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
28453           for calculating offsets
28454
28455 2005-03-17  Peter Bartok  <pbartok@novell.com>
28456
28457         * Hwnd.cs: Do not consider menu presence for default client
28458           rectangle location/size
28459         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
28460           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
28461           translation functions
28462         * FileDialog.cs: Fixed (what I presume is a) typo
28463
28464 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
28465
28466         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
28467           X access (avoids X-Async errors)
28468
28469 2005-03-16  Jackson Harper  <jackson@ximian.com>
28470
28471         * TabControl.cs: Raise the SelectedIndexChanged event.
28472
28473 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
28474
28475         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
28476           - Removed vertical ToolBar and replaced it with a custom panel
28477             (desktop and home button already work)
28478           - Added Help button (some controls get resized or relocated then)
28479           - Draw correct text depending on Open or Save.
28480           - Fixed some typos...
28481
28482 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
28483
28484         * ScrollBar.cs:
28485           - Only change Maximum and Minimum when need it (bug fix)
28486
28487 2005-03-15  Peter Bartok  <pbartok@novell.com>
28488
28489         * Form.cs: Use Handle for icon, to trigger creation if
28490           the window does not yet exist
28491         * Control.cs:
28492           - CanSelect: Slight performance improvement
28493           - Focus(): Preventing possible recursion
28494           - Invalidate(): Removed ControlStyle based clear flag setting
28495           - WM_PAINT: fixed logic for calling OnPaintBackground
28496           - WM_ERASEBKGND: Fixed logic, added call to new driver method
28497             EraseWindowBackground if the control doesn't paint background
28498         * XplatUIWin32.cs:
28499           - Moved EraseWindowBackground() method to internal methods
28500           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
28501             is sent via SendMessage on BeginPaint call on Win32
28502         * XplatUIX11.cs:
28503           - Added EraseWindowBackground() method
28504           - No longer sends WM_ERASEBKGND on .Expose, but on call to
28505             PaintEventStart, which more closely matches Win32 behaviour
28506           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
28507           - Fixed SetFocus() to properly deal with client and whole windows
28508         * Hwnd.cs: Added ErasePending property
28509         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
28510         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
28511
28512 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
28513
28514         * XplatUIOSX.cs:
28515           - Fix hard loop when timers exist.
28516           - Fix bugs with middle and right click for 3 button mice.
28517
28518 2005-03-11  Peter Bartok  <pbartok@novell.com>
28519
28520         * XplatUIX11.cs:
28521           - get_WorkingArea: Need to call X directly, GetWindowPos only
28522             returns cached data now
28523           - Added sanity check to GetWindowPos hwnd usage
28524
28525 2005-03-11  Jackson Harper  <jackson@ximian.com>
28526
28527         * BindingManagerBase.cs: This method isn't used anymore as
28528         PullData now updates the data in the control.
28529
28530 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
28531
28532         * Form.cs: fixes menu drawing on X11
28533         * MenuAPI.cs:  fixes menu drawing on X11
28534
28535 2005-03-11  Peter Bartok  <pbartok@novell.com>
28536
28537         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
28538           from Jonathan Gilbert; should fix bug #73606
28539         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
28540           in Screen coordinates. Thanks, Jordi.
28541         * Form.cs: Added missing attribute
28542
28543 2005-03-11  Peter Bartok  <pbartok@novell.com>
28544
28545         * Form.cs:
28546           - Rudimentary Mdi support
28547           - Removed outdated FormParent code
28548           - Implemented lots of missing properties and methods, still missing
28549             transparency support
28550           - Added missing attributes
28551           - Implemented support for MaximumBounds
28552           - Added firing of various events
28553         * XplatUI.cs: Added SetIcon() method
28554         * XplatUIDriver.cs: Added SetIcon() abstract
28555         * XplatUIOSX.cs: Stubbed out SetIcon() method
28556         * XplatUIX11.cs:
28557           - Implemented SetIcon() support
28558           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
28559           - Switched to unix line endings
28560         * XplatUIWin32.cs:
28561           - Made POINT internal so for can access it as part of MINMAX
28562           - Implemented SetIcon() support
28563           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
28564             native Mdi support again, might have to go managed)
28565         * Control.cs: Now fires the StyleChanged event
28566         * MdiClient.cs: Added; still mostly empty
28567
28568 2005-03-10  Peter Bartok  <pbartok@novell.com>
28569
28570         * SaveFileDialog.cs: Added emtpy file
28571
28572 2005-03-08  Peter Bartok  <pbartok@novell.com>
28573
28574         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
28575           in turn triggers OnCreateContro) when creating a handle for the
28576           first time.
28577         * TextControl.cs: Fixed endless loop in certain cases when
28578           replacing the current selection
28579
28580 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
28581
28582         * ScrollBar.cs:
28583           - Honors NewValue changes in Scroll events allowing apps to change it
28584           - Adds First and Last Scroll events
28585           - Fixes Thumb events
28586
28587 2005-03-07  Peter Bartok  <pbartok@novell.com>
28588
28589         * Hwnd.cs: Added DefaultClientRectangle property
28590         * XplatUI.cs: Now using the X11 driver Where() method, which provides
28591           more detailed debug information
28592         * XplatUIX11.cs:
28593           - Fixed size-change feedback loop, where we would pull an old size
28594             off the queue and mistakenly change our window's size to an
28595             earlier value
28596           - Now compressing ConfigureNotify events, to reduce looping and
28597             redraw issues
28598         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
28599           is called
28600
28601 2005-03-07  Jackson Harper  <jackson@ximian.com>
28602
28603         * Binding.cs: Push data pushes from data -> property. Check if the
28604         property is readonly when attempting to set it.
28605
28606 2005-03-07  Jackson Harper  <jackson@ximian.com>
28607
28608         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
28609         instead of IsSubclassOf. Pulling data now sets the value on the
28610         control.
28611         * PropertyManager.cs:
28612         * CurrencyManager.cs: Just need to pull data when updating now,
28613         because PullData will set the value on the control.
28614
28615 2005-03-04  Jackson Harper  <jackson@ximian.com>
28616
28617         * Binding.cs: Implement data type parsing and converting on pulled
28618         data. TODO: Are there more ways the data can be converted?
28619
28620 2005-03-04  Jackson Harper  <jackson@ximian.com>
28621
28622         * Binding.cs: Support <Property>IsNull checks. Also bind to the
28623         controls Validating method so we can repull the data when the
28624         control loses focus.
28625
28626 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
28627
28628         * ColumnHeader.cs:
28629           - Fixes null string format
28630           
28631         * ListView.cs:
28632           - Adds enum type checks
28633           - Fixes redrawing and recalc need after changing some properties
28634           - Fixes on focus_item set after the event
28635           - Fixes adding columns after the control has been created
28636           
28637         * ThemeWin32Classic.cs:
28638           - Fixes CheckBox focus rectangle
28639           - Fixes ColumnHeader drawing
28640
28641
28642 2005-03-03  Jackson Harper  <jackson@ximian.com>
28643
28644         * Binding.cs: Bind to <Property>Changed events so we can detect
28645         when properties are changed and update the data.
28646
28647 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
28648
28649         * ImageList.cs:
28650           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
28651           - Fixes ImageList constructor with ImageList container
28652           - Fixes image scaling (wrong parameters at DrawImage)
28653
28654 2005-02-02  Jackson Harper  <jackson@ximian.com>
28655
28656         * Binding.cs: Make property searches case-insensitive. Eliminate
28657         some duplicated code.
28658
28659 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
28660
28661         * ComboBox.cs:
28662                 - Handle focus event
28663                 - Fix scrollbar events
28664                 - Discard highlighted item if remove it
28665                 - Fixes SelectedItem with strings
28666
28667 2005-03-01  Peter Bartok  <pbartok@novell.com>
28668
28669         * Control.cs:
28670           - Fixed Visible property, now follows (once again) parent chain
28671             to return false if any control in the chain is visible=false
28672           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
28673           - Fixed several places where is_visible instead of Visible was used
28674           - Implemented FIXME related to focus selection when setting focused
28675             control to be invisible
28676
28677         * XplatUIWin32.cs: Now using proper method to find out if window is
28678           visible. Thanks to Jordi for pointing it out
28679
28680 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
28681
28682         * ComboBox.cs: show/hide scrollbar instead of creating it
28683
28684 2005-02-27  Jackson Harper  <jackson@ximian.com>
28685
28686         * CurrencyManager.cs: Add PositionChanged stuff.
28687
28688 2005-02-27  Peter Bartok  <pbartok@novell.com>
28689
28690         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
28691         * XplatUIOSX.cs: Added GetMenuOrigin() stub
28692         * XplatUIWin32.cs: Implemented GetMenuOrigin()
28693         * XplatUIX11.cs:
28694           - Implemented GetMenuDC()
28695           - Implemented GetMenuOrigin()
28696           - Implemented ReleaseMenuDC()
28697           - Implemented generation of WM_NCPAINT message
28698           - Implemented generation and handling of WM_NCCALCSIZE message
28699         * Form.cs: Added debug helper message for Jordi's menu work
28700         * Hwnd.cs:
28701           - Modified ClientRect property; added setter, fixed getter to handle
28702             setting of ClientRect
28703           - Added MenuOrigin property
28704
28705 2005-02-26  Peter Bartok  <pbartok@novell.com>
28706
28707         * XplatUIX11.cs:
28708           - Destroys the caret if a window that's being destroyed contains it
28709           - Ignores expose events coming from the X11 queue for windows that
28710             already are destroyed
28711           - Now uses the proper variable for handling DestroyNotify, before we
28712             marked the wrong window as destroyed
28713           - Improved/added some debug output
28714
28715 2005-02-26  Peter Bartok  <pbartok@novell.com>
28716
28717         * X11Keyboard.cs: Fixes to work on 64bit systems
28718
28719 2005-02-26  Peter Bartok  <pbartok@novell.com>
28720
28721         * Control.cs:
28722           - Now calling OnHandleDestroyed from DestroyHandle()
28723             instead of Dispose()
28724           - Removed bogus call to controls.Remove() from DestroyHandle()
28725
28726 2005-02-26  Peter Bartok  <pbartok@novell.com>
28727
28728         * Control.cs: Properly destroy child windows when our handle is
28729           destroyed
28730
28731 2005-02-25  Peter Bartok  <pbartok@novell.com>
28732
28733         * XplatUI.cs:
28734           - Added 'DriverDebug' define to allow tracing XplatUI API calls
28735           - Alphabetized Static Methods and Subclasses
28736
28737         * XplatUIX11.cs:
28738           - Added XException class to allow custom handling of X11 exceptions
28739           - Created custom X11 error handler, tied into XException class
28740           - Added support for MONO_XEXCEPTIONS env var to allow the user
28741             to either throw an exception on X errors or continue running
28742             after displaying the error
28743           - Added handling of DestroyNotify message
28744           - Added handler for CreateNotify message (still disabled)
28745           - Improved (tried to at least) Where method to provide file and lineno
28746         * X11Structs.cs:
28747           - Added XErrorHandler delegate
28748           - Added XRequest enumeration (to suppor translation of errors)
28749
28750 2005-02-25  Jackson Harper  <jackson@ximian.com>
28751
28752         * PropertyManager.cs: Implement editing features
28753         * CurrencyManager.cs:
28754         * Binding.cs: First attempt at UpdateIsBinding
28755         * BindingManagerBase.cs: Call UpdateIsBinding before
28756         pushing/pulling data.
28757
28758 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
28759
28760         * MenuAPI.cs: Respect disabled items
28761         * ThemeWin32Classic.cs
28762                 - Caches ImageAttributes creation for DrawImageDisabled
28763                 - Fixes vertical menu line drawing
28764                 - Draws disabled arrows in disable menu items
28765
28766 2005-02-24  Peter Bartok  <pbartok@novell.com>
28767
28768         * Hwnd.cs:
28769           - Added UserData property to allow associating arbitrary objects
28770             with the handle
28771           - Fixed leak; now removing Hwnd references from static windows array
28772         * XplatUIWin32.cs:
28773           - Fixed Graphics leak in PaintEventEnd
28774           - Removed usage of HandleData, switched over to Hwnd class
28775         * HandleData.cs: Removed, obsoleted by Hwnd.cs
28776
28777 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
28778
28779         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
28780         * ScrollBar.cs: Fixes bug
28781         * TrackBar.cs: removes death code, clipping, mimize refreshes,
28782          keyboard navigation enhancements
28783
28784 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
28785
28786         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
28787         * GroupBox.cs: Add control styles
28788         * Label.cs: Add control styles
28789         * UpDownBase.cs: Add control styles
28790         * ListBox.cs: Add control styles
28791         * XplatUIWin32.cs: Fixes wrong parameter order
28792
28793
28794 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
28795
28796         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
28797
28798 2005-02-23  Jackson Harper  <jackson@ximian.com>
28799
28800         * PropertyManager.cs: Implement property binding. This doesn't
28801         seem to work yet though as (I think) there are some bugs in
28802         System.ComponentModel.PropertyDescriptor.
28803         * BindingContext.cs: Use new PropertyManager constructor.
28804
28805 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
28806
28807         * ProgressBar.cs: use clip region in ProgressBar
28808         * ThemeWin32Classic.cs: use clip region in ProgressBar
28809
28810 2004-02-22  Jackson Harper  <jackson@ximian.com>
28811
28812         * BindingsCollection.cs: Remove some debug code.
28813
28814 2005-02-22  Jackson Harper  <jackson@ximian.com>
28815
28816         * BindingContext.cs:
28817         * ControlBindingsCollection.cs:
28818         * CurrencyManager.cs:
28819         * Binding.cs:
28820         * BindingManagerBase.cs: Initial implementation
28821         * BindingsCollection.cs: Add an internal contains method that the
28822         BindingManagerBase uses to ensure bindings aren't added twice to
28823         the collection.
28824         * PropertyManager.cs: Stubbed out.
28825         * Control.cs:
28826         * ContainerControl.cs: Hook up databinding
28827         
28828 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
28829
28830         * XplatUIOSX.cs:
28831           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
28832           Fixed Invalidate/Update chain.
28833           Fixed tons of other minor bugs (this is almost a complete rewrite).
28834
28835 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
28836
28837         * ComboBox.cs: do subcontrol creation when the control is created
28838
28839 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
28840
28841         * Label.cs: fixes image drawing (image and imagelist)
28842         * ThemeWin32Classic.cs: cache brushes
28843         
28844 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
28845
28846         * Form.cs: Move menu drawing code to Theme class
28847         * ComboBox.cs: Move ComboBox drawing code to Theme class
28848         * MenuItem.cs: Move menu drawing code to Theme class
28849         * MenuAPI.cs: Move menu drawing code to Theme class
28850         * ThemeWin32Classic.cs: New methods
28851         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
28852         * ListBox.cs: Move Listbox drawing code to Theme class
28853         * Theme.cs: New methods
28854
28855 2005-02-20  Peter Bartok  <pbartok@novell.com>
28856
28857         * Control.cs:
28858           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
28859             only process mnemonics on those)
28860           - Fixed event sequence for key handling; first calling
28861             ProcessKeyEventArgs now
28862         * TextBoxBase.cs:
28863           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
28864             for processing non-character keys
28865           - Fixed WM_CHAR to generate proper event sequence before processing
28866         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
28867           generation
28868
28869 2005-02-19  Peter Bartok  <pbartok@novell.com>
28870
28871         * UserControl.cs: Added TextChanged event; added attributes
28872         * SizeGrip.cs: Implemented resizing and optional display of grip
28873         * Form.cs: Fixed attribute
28874         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
28875           Changed meaning of ScrollWindow bool argument; instead of the
28876           clear attribute (which will be true usually anyway), it gives the
28877           option of moving child controls as well.
28878         * XplatUIX11.cs:
28879           - Changed to match new ScrollWindow argument
28880           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
28881             now handles the implicit parent window a WM puts around us
28882         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
28883           to work)
28884         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
28885         * TreeView.cs: Adjusted to new ScrollWindow arguments
28886
28887 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
28888
28889         * Form.cs: Menu integration with non-client area
28890         * MenuItem.cs: Menu integration with non-client area
28891         * MenuAPI.cs: Menu integration with non-client area
28892
28893 2005-02-18  Peter Bartok  <pbartok@novell.com>
28894
28895         * MethodInvoker.cs: Added
28896         * MdiLayout.cs: Added
28897         * SendKeys.cs: Started implementation
28898         * ErrorIconAlignment.cs: Added
28899
28900 2005-02-18  Peter Bartok  <pbartok@novell.com>
28901
28902         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
28903         * Form.cs: Added handling for Menu-related Non-client messages
28904
28905 2005-02-17  Peter Bartok  <pbartok@novell.com>
28906
28907         * UpDownBase.cs: Fixed typo, compilation errors
28908         * DomainUpDown.cs: Fixed attribute value
28909
28910 2005-02-16  Miguel de Icaza  <miguel@novell.com>
28911
28912         * UpDownBase.cs: Attach entry events.
28913         Propagate events.
28914         Add ForeColor property, Focused, InterceptArrowKeys (interception
28915         does not work yet).
28916
28917 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
28918
28919         * Form.cs:
28920                 - Redraw non client are on Setmenu
28921                 - Calc proper menu starting point
28922
28923 2005-02-17  Peter Bartok  <pbartok@novell.com>
28924
28925         * Application.cs: Fixed message_filter check
28926
28927 2005-02-17  Peter Bartok  <pbartok@novell.com>
28928
28929         * Application.cs: Now calls registered message filters
28930         * DockStyle.cs: Fixed attribute
28931         * Form.cs: Fixed attribute
28932         * Menu.cs: Fixed attribute
28933         * ToolTip.cs: Fixed attribute
28934         * TreeNode.cs: Added missing attributes and arranged in regions
28935         * PropertyGrid.cs: Fixed signatures
28936         * TreeNodeCollection.cs: Added attributes
28937         * Splitter.cs: Added missing attributes; arranged into regions
28938         * TabPage.cs: Added missing attributes; arranged into regions
28939         * TextBoxBase.cs: Added missing attributes
28940         * TextBox.cs: Added missing attributes
28941         * ArrangeDirection.cs: Added missing attributes
28942         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
28943         * ToolBarButton.cs: Fixed attributes
28944         * AnchorStyles.cs: Fixed attribute
28945         * TrackBar.cs: Fixed attributes
28946         * TabControl.cs: Added missing attributes and arranged into regions
28947         * ToolBar.cs: Fixed attribute
28948         * StatusBar.cs: Fixed signature, organized into regions and added
28949           attributes
28950         * StatusBarPanel.cs: Fixed attributes
28951         * ContentsResizedEventArgs.cs: Implemented
28952         * ContentsResizedEventHandler.cs: Implemented
28953         * DateBoldEventArgs.cs: Implemented
28954         * DateBoldEventHandler.cs: Implemented
28955         * UpDownEventArgs.cs: Implemented
28956         * UpDownEventHandler.cs: Implemented
28957         
28958 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
28959
28960         * Form.cs: first Menu NC refactoring
28961         * MenuAPI.cs: first Menu NC refactoring
28962         
28963 2005-02-16  Peter Bartok  <pbartok@novell.com>
28964
28965         * ImeMode.cs: Added missing attributes
28966         * Menu.cs: Fixed attribute
28967         * GroupBox.cs: Fixed attribute
28968         * Label.cs: Fixed attribute
28969         * ColorDialog.cs (RunDialog): Removed TODO attribute
28970         * ComboBox.cs: Fixed attributes
28971         * ListControl.cs: Added missing attributes
28972         * PropertyGrid.cs: Fixed attributes
28973         * Control.cs: Fixed attributes
28974         * ListViewItem.cs: Added TypeConverter attribute
28975         * NotifyIcon.cs: Fixed attributes
28976         * ListView.cs: Fixed attributes
28977         * ButtonBase.cs: Fixed attribute
28978         * ImageList.cs: Added missing attributes
28979         * ContainerControl.cs: Fixed signature
28980         * CheckedListBox.cs: Fixed attribute; added missing attributes
28981         * Panel.cs: Fixed attributes
28982         * PropertyTabChangedEventArgs.cs: Added missing attribute
28983         * PropertyValueChangedEventArgs.cs: Added missing attribute
28984         * Binding.cs: Fixed attribute
28985         * ListViewItemConverter: Implemented ListViewSubItemConverter class
28986         * ListBox.cs: Fixed attribute; added missing attributes;
28987         * ScrollableControl.cs: Added missing attributes
28988         * PictureBox.cs: Added missing attributes; implemented missing property
28989         * DateTimePicker.cs: Added missing attributes
28990         * Theme.cs (ToolWindowCaptionHeight): Fixed type
28991         * MonthCalendar.cs: Fixed attributes
28992         * StatusBarPanel.cs: Added missing attributes
28993         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
28994
28995 2005-02-16  Peter Bartok  <pbartok@novell.com>
28996
28997         * TextBoxBase.cs: The previous method to enforce height yet remember
28998           the requested high was less than ideal, this is an attempt to do
28999           it better.
29000         * Control.cs: Added comment about possible problem
29001         * Copyright: Updated format
29002         * GridItemType.cs: Fixed swapped values
29003
29004 2005-02-15  Jackson Harper  <jackson@ximian.com>
29005
29006         * BaseCollection.cs: Use property so we never access an
29007         uninitialized list. Also initialize the list in the property.
29008
29009 2005-02-15  Peter Bartok  <pbartok@novell.com>
29010
29011         * GroupBox.cs (ProcessMnemonic): Implemented
29012         * Label.cs (ProcessMnemonic): Implemented
29013         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
29014           hotkeys
29015
29016 2005-02-15  Peter Bartok  <pbartok@novell.com>
29017
29018         * RadioButton.cs (ProcessMnemonic): Implemented
29019         * CheckBox.cs (ProcessMnemonic): Implemented
29020         * Control.cs:
29021           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
29022             handling
29023           - Added internal method to allow calling ProcessMnemonic from other
29024             controls
29025         * ContainerControl.cs:
29026           - Started support for handling validation chain handling
29027           - Implemented ProcessMnemonic support
29028           - Added Select() call to Active, to make sure the active control
29029             receives focus
29030         * Form.cs: Setting toplevel flag for Forms (this was lost in the
29031           FormParent rewrite)
29032         * ThemeWin32Classic.cs:
29033           - DrawCheckBox(): Fixed stringformat to show hotkeys
29034           - DrawRadioButton(): Fixed stringformat to show hotkeys
29035         * CommonDialog.cs: Removed WndProc override, not needed
29036
29037 2005-02-14  Peter Bartok  <pbartok@novell.com>
29038
29039         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
29040           missed those in the rewrite
29041
29042 2005-02-14  Miguel de Icaza  <miguel@novell.com>
29043
29044         * NumericUpDown.cs (Increment, ToString): Add.
29045         (DecimalPlaces): implement.
29046         
29047         Add attributes.
29048         
29049         * UpDownBase.cs: Add the designer attributes.
29050
29051 2005-02-13  Peter Bartok  <pbartok@novell.com>
29052
29053         * Panel.cs: Removed border_style, now in Control
29054         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
29055           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
29056
29057 2005-02-13  Peter Bartok  <pbartok@novell.com>
29058
29059         * MouseButtons.cs: Added missing attributes
29060         * XplatUIStructs.cs: Added enumeration for title styles
29061         * LeftRightAlignment.cs: Added missing attributes
29062         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
29063           it compatible with Graphics.FromHwnd()
29064         * SelectedGridItemChangedEventArgs.cs: Fixed property type
29065         * Keys.cs: Added missing attributes
29066         * SelectionRange.cs: Added missing attributes
29067         * SelectionRangeConverter.cs: Added
29068         * XplatUI.cs:
29069           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
29070             ReleaseMenuDC methods
29071           - Renamed ReleaseWindow to UngrabWindow
29072           - Added proper startup notice to allow version identification
29073         * Form.cs:
29074           - Added missing attributes
29075           - Removed FormParent concept
29076         * Label.cs: Removed border_style field, now in Control
29077         * RadioButton.cs: Now properly selects RadioButton when focus is
29078           received
29079         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
29080         * Control.cs:
29081           - Added missing attributes
29082           - Added borderstyle handling
29083           - Removed FormParent concept support
29084           - Fixed calls to XplatUI to match changed APIs
29085           - Fixed bug that would case us to use disposed Graphics objects
29086           - Removed unneeded internal methods
29087           - PerformLayout(): Fixed to handle DockStyle.Fill properly
29088           - SelectNextControl(): Fixed to properly check common parents
29089         * TextBoxBase.cs: Removed border_style field (now in Control)
29090         * MessageBox.cs:
29091           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
29092             fixed calculations for form size
29093           - Added support for localized strings and icons
29094           - Improved form size calculations, added border
29095         * ListView.cs: Removed border_style field (now in Control)
29096         * X11Structs.cs: Moved several structs from X11 driver here
29097         * X11Keyboard.cs: Changed debug message
29098         * Application.cs: Removed FormParent concept support
29099         * CommonDialog.cs:
29100           - Resetting end_modal flag
29101           - Removed FormParent concept support
29102         * NativeWindow.cs: Removed FormParent concept support
29103         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
29104           Client area and Non-Client whole window to allow support for WM_NC
29105           messages
29106         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
29107           prevent using it until it supports Hwnd as per Geoff Norton's request
29108         * ToolBar.cs: Fixed drawing, was not doing proper drawing
29109         * PictureBox.cs: Removed border_style field, now in Control
29110         * XplatUIWin32.cs: Added new driver methods
29111
29112 2005-02-12  Peter Bartok  <pbartok@novell.com>
29113
29114         * OpacityConverter.cs: Implemented
29115         * Hwnd.cs: Internal class to support drivers that need to emulate
29116           client area/non-client area window behaviour
29117
29118 2005-02-11  Peter Bartok  <pbartok@novell.com>
29119
29120         * KeysConverter.cs: Implemented
29121
29122 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
29123
29124         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
29125         * LinkLabel: Added missing attributes
29126         * MainMenu.cs: fixes ToString
29127         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
29128         * ListBox.cs: fixes event position
29129         * TrackBar.cs: adds missing attributes and events
29130         
29131 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
29132
29133         * MenuItem.cs: Use SystemInformation and bug fixes
29134         * MenuAPI.cs: Use SystemInformation and bug fixes
29135
29136 2005-02-09  Jackson Harper  <jackson@ximian.com>
29137
29138         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
29139         their keystate otherwise things like VK_MENU get stuck "on".
29140
29141 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
29142
29143         * ListBox.cs: Fixes AddRange bug
29144         
29145 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
29146
29147         * ProgressBar.cs
29148                 - Add missing attributes
29149                 - Add missing method
29150                 
29151         * CheckedListBox.cs: Added missing attributes
29152                 - Add missing attributes
29153                 - Remove extra method
29154         
29155         * ComboBox.cs: Added missing attributes
29156         * VScrollBar.cs: Added missing attributes
29157         * ScrollBar.cs:  Added missing attributes
29158         * ListBox.cs: Fixes signature, add missing consts
29159         * LinkArea.cs:   Added missing attributes
29160         
29161
29162 2005-02-08  Peter Bartok  <pbartok@novell.com>
29163
29164         * Menu.cs: Added missing attributes
29165         * MainMenu.cs: Added missing attributes
29166         * GroupBox.cs: Added missing attributes
29167         * Label.cs: Added missing attributes
29168         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
29169         * ColorDialog.cs:
29170           - Added Instance and Options properties
29171           - Added missing attributes
29172         * Cursor.cs: Made Serializable
29173         * NotifyIcon: Added missing attributes
29174         * MenuItem.cs: Added missing attributes
29175         * TextBoxBase.cs: Implemented AppendText() and Select() methods
29176         * Panel.cs: Added Missing attributes
29177         * MonthCalendar.cs: Fixed CreateParams
29178
29179 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
29180         
29181         * LinkLabel.cs:
29182                 - Fixes signature
29183                 - Fixes issues with links
29184                 - Adds the class attributes
29185
29186 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
29187         
29188         * ComboBox.cs:
29189                 - Fixes button when no items available in dropdown
29190                 - Fixes repainting problems
29191                 - Adds the class attributes
29192                 
29193 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
29194
29195         * XplatUIOSX.cs: Detect the menu bar and title bar height from
29196         the current theme.  Cache these on startup.
29197
29198 2005-02-07  Jackson Harper  <jackson@ximian.com>
29199
29200         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
29201         the scrollbar buttons when they are depressed.
29202
29203 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
29204
29205         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
29206         Get the display size from the main displayid.  We currently dont
29207         support multiple display configurations.
29208
29209 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
29210
29211         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
29212
29213 2005-02-07  Miguel de Icaza  <miguel@novell.com>
29214
29215         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
29216
29217 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
29218
29219         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
29220
29221 2005-02-04  Jackson Harper  <jackson@ximian.com>
29222
29223         * ThemeWin32Classic.cs: Respect the clipping rect when
29224         drawing. Only fill the intersection of clips and rects so there
29225         isn't a lot of large fills.
29226         * ScrollBar.cs: Pass the correct clipping rect to the theme
29227         engine. Remove some debug code.
29228
29229 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
29230         
29231         * DateTimePicker.cs:
29232                 - Fixed crash on DateTime.Parse, use Constructor instead
29233
29234 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
29235         
29236         * MenuItem.cs:
29237         * MenuAPI.cs:
29238                 - Owner draw support (MeasureItem and DrawItem)
29239
29240 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
29241         
29242         *  Menu.cs:
29243                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
29244                 - Fixes MenuItems.Add range
29245         * MenuItem.cs:
29246                 - MergeMenu and Clone and CloneMenu functions
29247
29248 2005-02-03  Jackson Harper  <jackson@ximian.com>
29249
29250         * ScrollBar.cs: Make abstract
29251         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
29252         is abstract.
29253
29254 2005-02-03  Jackson Harper  <jackson@ximian.com>
29255
29256         * ScrollBar.cs: First part of my scrollbar fixups. This removes
29257         all the unneeded refreshes and uses invalidates with properly
29258         computed rects.
29259
29260 2005-02-03  Peter Bartok  <pbartok@novell.com>
29261
29262         * ComponentModel.cs: Added
29263         * IDataGridEditingService.cs: Added
29264         * Timer.cs: Added missing attributes
29265         * ToolTip.cs: Added missing attributes
29266
29267 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
29268
29269         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
29270
29271 2005-02-03  Peter Bartok  <pbartok@novell.com>
29272
29273         * ListBox.cs: Added missing attributes
29274
29275 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
29276         
29277         * ListBox.cs:
29278                 - Fixes font height after font change
29279                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
29280                 
29281 2005-02-02  Peter Bartok  <pbartok@novell.com>
29282
29283         * HandleData.cs: Introduced static methods to allow class
29284           to be more self-contained and track it's own HandleData objects
29285         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
29286           HandleData to use new static methods
29287
29288 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
29289
29290         * Combobox.cs:
29291                 - Fixes default size and PreferredHeight
29292                 - Missing events
29293                 - ObjectCollection.Insert implementation
29294                 
29295         * ListControl.cs
29296                 - Fixes signature
29297         * ListBox.cs:
29298                 - Several fixes
29299                 - ObjectCollection.Insert implementation
29300                 - No selection after clean
29301                 - Small fixes
29302
29303 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
29304
29305         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
29306
29307 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
29308
29309         * Combobox.cs:
29310                 - Caches ItemHeight calculation for OwnerDrawVariable
29311                 - Handles dropdown properly
29312                 - Fixes several minor bugs
29313
29314 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
29315
29316         * ListBox.cs:
29317                 - Fixes 71946 and 71950
29318                 - Fixes changing Multicolumn on the fly
29319                 - Fixes keyboard navigation on Multicolumn listboxes
29320
29321 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
29322         
29323         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
29324         crash reporter log.
29325
29326 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
29327
29328         * XplatUIOSX.cs: Allow applications to actually exit.
29329
29330 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
29331
29332         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
29333         their parent at creation time rather than lazily later.  Fixes a major
29334         regression we were experiencing.
29335
29336 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
29337
29338         * ThemeWin32Classic.cs: more date time picker painting fixes
29339         * DateTimePicker.cs: more monthcalendar drop down fixes
29340         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
29341
29342 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
29343
29344         * ScrollBar.cs:
29345                 - When moving the thumb going outside the control should stop the moving
29346                 - Adds the firing of missing events
29347                 - Fixes no button show if Size is not specified
29348                 - End / Home keys for keyboard navigation
29349
29350 2005-01-30  Peter Bartok  <pbartok@novell.com>
29351
29352         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
29353           sanity check to prevent theoretical loop
29354         * XplatUIWin32.cs (SetVisible): Removed debug output
29355         * XplatUIX11.cs (SystrayChange): Added sanity check
29356         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
29357         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
29358           behaviour, valid until the X11 client window rewrite is done
29359         * TextBox.cs (ctor): Setting proper default foreground and background
29360           colors
29361
29362 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
29363
29364         * Theme: Added DrawDateTimePicker to interface
29365         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
29366         * DateTimePicker.cs: Created (still needs keys and painting code)
29367         * DateTimePickerFormat.cs: added
29368         * MonthCalendar.cs: fixed CreateParams for popup window mode
29369           
29370 2005-01-29  Peter Bartok  <pbartok@novell.com>
29371
29372         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
29373           this should also the calculations for ligher/darker
29374         * Theme.cs: Fixed defaults for ScrollBar widths/heights
29375
29376 2005-01-29  Peter Bartok  <pbartok@novell.com>
29377
29378         * ArrangeDirection.cs: Added
29379         * ArrangeStartingPositon.cs: Added
29380         * SystemInformation.cs: Implemented
29381         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
29382           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
29383           used by SystemInformation class
29384         * X11Strucs.cs: Added XSizeHints structure
29385         * MenuAPI.cs:
29386           - Fixed CreateParams to make sure the menu window is always visible
29387           - TrackPopupMenu: Added check to make sure we don't draw the
29388             menu offscreen
29389
29390 2005-01-29  Peter Bartok  <pbartok@novell.com>
29391
29392         * HandleData.cs: Added method for altering invalid area
29393         * TextBoxBase.cs: Implemented TextLength
29394
29395 2005-01-28  Peter Bartok  <pbartok@novell.com>
29396
29397         * XplatUIX11.cs: Improvement over last patch, not sending
29398           the WM_PAINT directly anymore, instead we scroll any pending
29399           exposed areas and let the system pick out the WM_PAINT later
29400
29401 2005-01-28  Peter Bartok  <pbartok@novell.com>
29402
29403         * SWF.csproj: Deleted, no longer used. Instead,
29404           Managed.Windows.Forms/SWF.csproj should be used
29405         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
29406           directly, to avoid a potential race condition with the next
29407           scroll
29408
29409 2005-01-28  Peter Bartok  <pbartok@novell.com>
29410
29411         * XplatUI.cs: Made class internal
29412
29413 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
29414
29415         * CheckedListBox.cs:
29416                 - Draw focus
29417                 - Fixed Drawing
29418                 - Missing methods and events
29419
29420 2005-01-27  Peter Bartok  <pbartok@novell.com>
29421
29422         * Application.cs (Run): Don't use form if we don't have one
29423
29424 2005-01-27  Peter Bartok  <pbartok@novell.com>
29425
29426         * TextBoxBase.cs (get_Lines): Fixed index off by one error
29427
29428 2005-01-27  Peter Bartok  <pbartok@novell.com>
29429
29430         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
29431         * GridItem.cs: Added; Patch by Jonathan S. Chambers
29432         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
29433         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
29434         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
29435         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
29436         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
29437         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
29438         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
29439         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
29440         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
29441         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
29442
29443 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
29444
29445         * Combobox.cs:
29446                 - Draw focus on Simple Combobox
29447                 - Fixes drawing issues
29448                 - fixes 71834
29449
29450 2005-01-27  Peter Bartok  <pbartok@novell.com>
29451
29452         * Form.cs:
29453           - Place window in default location, instead of hardcoded 0/0
29454           - Send initial LocationChanged event
29455         * Control.cs:
29456           - UpdateBounds after creation to find out where the WM placed us
29457           - Make sure that if the ParentForm changes location the Form
29458             is notified
29459         * XplatUIX11.cs: XGetGeometry will not return the coords relative
29460             to the root, but to whatever the WM placed around us.
29461             Translate to root coordinates before returning toplevel
29462             coordinates
29463         * XplatUIWin32.cs: Removed debug output
29464         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
29465           flag to GetWindowPos, to allow translation of coordinates on X11
29466
29467 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
29468
29469         * ListBox.cs: connect LostFocus Event
29470
29471 2005-01-27  Peter Bartok  <pbartok@novell.com>
29472
29473         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
29474           XplatUIX11.cs: Extended the Systray API
29475         * Form.cs: Removed debug output
29476         * Application.cs: Fixed focus assignment, always need to call
29477           XplatUI.Activate() since Form.Activate() has rules that may
29478           prevent activation
29479         * NotifyIcon.cs: Should be complete now
29480         * ToolTip.cs: Worked around possible timer bug
29481
29482 2005-01-27  Jackson Harper  <jackson@ximian.com>
29483
29484         * TabControl.cs:
29485         - Only invalidate the effected tabs when the
29486         selected index changes. This reduces drawing and gets rid of some
29487         flicker.
29488         - Only refresh if the tabs need to be shifted, otherwise only
29489         invalidate the slider button.
29490         - On windows the tabs are not filled to right if the slider is
29491         visible.
29492         
29493 2005-01-27  Jackson Harper  <jackson@ximian.com>
29494
29495         * TabControl.cs: Only refresh on mouseup if we are showing the
29496         slider. Also only invalidate the button whose state has changed.
29497
29498 2005-01-26  Peter Bartok  <pbartok@novell.com>
29499
29500         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
29501         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
29502           and SystrayRemove() methods
29503         * XplatUIOSX.cs: Stubbed Systray methods
29504         * XplatUIX11.cs:
29505           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
29506             methods
29507           - Fixed broken XChangeProperty calls (marshalling messed up things)
29508         * X11Structs.cs: Added enums and structs required for Size hinting
29509         * NotifyIcon.cs: Added & implemented
29510
29511 2005-01-26  Jackson Harper  <jackson@ximian.com>
29512
29513         * TabControl.cs: Space vertically layed out tabs properly.
29514
29515 2005-01-26  Peter Bartok  <pbartok@novell.com>
29516
29517         * Form.cs (CreateClientParams): Always set the location to 0,0
29518           since we're a child window.
29519
29520         * Control.cs (SetVisibleCore): Always explicitly setting the location
29521           of a toplevel window, apparently X11 doesn't like to move windows
29522           while they're not mapped.
29523
29524 2005-01-26  Jackson Harper  <jackson@ximian.com>
29525
29526         * TabControl.cs: Implement FillToRight size mode with vertically
29527         rendered tabs.
29528
29529 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
29530
29531         * ControlPaint.cs, ThemeWin32Classic.cs
29532                 - Fixes DrawFocusRectangle
29533
29534 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
29535
29536         * MenuAPI.cs:
29537                 - MenuBar tracking only starts when item is first clicked
29538                 - Fixes menu hidding for multiple subitems
29539                 - Unselect item in MenuBar when item Executed
29540                 - Fixes bug 71495
29541
29542 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
29543
29544         * ListControl.cs:
29545                 - IsInputKey for ListBox
29546         * ListBox.cs:
29547                 - Focus item
29548                 - Shift and Control item selection
29549                 - Implement SelectionMode.MultiExtended
29550                 - Fixes RightToLeft
29551         * ComboBox.cs:
29552                 - IsInputKey implemented
29553                 - Do not generate OnTextChangedEdit on internal txt changes
29554                 
29555 2005-01-23  Peter Bartok  <pbartok@novell.com>
29556
29557         * AccessibleObject.cs: Partially implemented Select()
29558         * MonthCalendar.cs: Added missing attributes and events
29559         * Form.cs: Fixed CreateParams behaviour, now controls derived from
29560           form can properly override CreateParams.
29561         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
29562           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
29563           Control performs Invalidate & Update
29564         * NativeWindow (CreateHandle): Added special handling for Form
29565           and Form.FormParent classes to allow overriding of From.CreateParams
29566         * Control.cs:
29567           - ControlNativeWindow: Renamed 'control' variable to more intuitive
29568             name 'owner'
29569           - ControlNativeWindow: Added Owner property
29570           - Removed usage of Refresh() on property changes, changed into
29571             Invalidate(), we need to wait until the queue is processed for
29572             updates, direct calls might cause problems if not all vars for
29573             Paint are initialized
29574           - Added call to UpdateStyles() when creating the window, to set any
29575             styles that CreateWindow might have ignored.
29576           - Added support for Form CreateParent overrides to UpdateStyles()
29577         * MessageBox.cs: Removed no longer needed FormParent override stuff,
29578           CreateParams are now properly overridable
29579         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
29580           CreateParams are now properly overridable
29581
29582 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
29583
29584         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
29585         OnTextBoxChanged.
29586
29587         Capture LostFocus and OnTextBoxChanged.  The later introduces a
29588         recursive invocation that I have not figured out yet.
29589
29590         Reset the timer when not using (it was accumulating).
29591
29592
29593         (OnTextBoxChanged): Set UserEdit to true here to track whether the
29594         user has made changes that require validation.
29595
29596         Reset changing to avoid loops.
29597
29598 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
29599
29600         * NumericUpDown.cs: Display value at startup.
29601
29602         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
29603         ValidateEditText.
29604
29605         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
29606         filled in.  Added some basic parsing of text.
29607
29608         Still missing the OnXXX method overrides, and figuring out the
29609         events that must be emitted.
29610
29611         * UpDownBase.cs: Handle UserEdit on the Text property.
29612         
29613 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
29614
29615         * ComboBox.cs:
29616           - Fixes IntegralHeight
29617           - ToString method
29618
29619 2005-01-21  Jackson Harper  <jackson@ximian.com>
29620
29621         * TabControl.cs: Set the SelectedIndex property when SelectedTab
29622         is set so that the page visibility is updated and the tabs are
29623         sized correctly.
29624
29625 2005-01-21  Jackson Harper  <jackson@ximian.com>
29626
29627         * TabControl.cs: Use cliping rectangle for blitting. Give the
29628         theme the clipping rect so we can do clipping while
29629         drawing. Remove some debug code.
29630
29631 2005-01-21  Jackson Harper  <jackson@ximian.com>
29632
29633         * TabPage.cs: Add a new method so tab pages can force the tab
29634         control to recalculate the tab page sizes.
29635         * TabControl.cs: UpdateOwner needs to make the tab control recalc
29636         sizes.
29637
29638 2005-01-20  Jackson Harper  <jackson@ximian.com>
29639
29640         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
29641
29642 2005-01-20  Jackson Harper  <jackson@ximian.com>
29643
29644         * TreeView.cs: Set the bounds for nodes properly. They were
29645         getting screwed up when checkboxes were not enabled, but images
29646         were.
29647
29648 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
29649
29650         * ListBox.cs:
29651                 - Owner draw support
29652                 - Fixes
29653                 
29654 2005-01-20  Jackson Harper  <jackson@ximian.com>
29655
29656         * XplatUIStructs.cs: More misc keys
29657         * X11Keyboard.cs: Ignore some control keys.
29658
29659 2005-01-20  Jackson Harper  <jackson@ximian.com>
29660
29661         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
29662         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
29663
29664 2005-01-19  Peter Bartok  <pbartok@novell.com>
29665
29666         * Control.cs: Un-selecting the control when it is loosing focus
29667
29668 2005-01-19  Jackson Harper  <jackson@ximian.com>
29669
29670         * TreeView.cs: Hook up to the text controls leave event so we can
29671         end editing when the users clicks outside the text box.
29672         
29673 2005-01-19  Jackson Harper  <jackson@ximian.com>
29674
29675         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
29676         get set in the conversion array.
29677
29678 2005-01-19  Peter Bartok  <pbartok@novell.com>
29679
29680         * Application.cs (ModalRun): Added a call to CreateControl to ensure
29681           focus is properly set
29682         * Button.cs:
29683           - Added missing attributes
29684           - removed styles, those are already set in the base class
29685         * ButtonBase.cs:
29686           - Added missing attributes
29687           - Added clip window styles
29688         * CheckBox.cs: Added missing attributes
29689         * CommonDialog.cs:
29690           - FormParentWindow.CreateParams: Added required clip styles
29691         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
29692           also filters modifier keys
29693         * MessageBox.cs:
29694           - Added assignment of Accept and Cancel button to enable Enter
29695             and Esc keys in MessageBox dialogs
29696           - FormParentWindow.CreateParams: Added required clip styles
29697         * RadioButton.cs: Added missing attributes
29698         * TextControl.cs: No longer draws selection if control does not
29699           have focus
29700         * TextBoxBase.cs:
29701           - Now draws simple rectangle around test area to make it obvious
29702             there's a control. This is a hack until we properly support borders
29703           - A few simple fixes to support selections better, now erases selected
29704             text when typing, and resets selection when using movement keys
29705
29706 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
29707
29708         * UpDownBase.cs: Added some new properties.
29709
29710         * DomainUpDown.cs: Implement a lot to get my test working.
29711
29712 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
29713
29714         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
29715
29716 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
29717
29718         * OSXStructs (WindowAttributes): Fixed csc complaints
29719
29720 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
29721
29722         * XplayUIOSX.cs:
29723           OSXStructs.cs: Initial refactor to move enums and consts into
29724           OSXStructs and use them in the driver for greater readability.
29725
29726 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
29727
29728         * XplatUIOSX.cs: Initial support for Standard Cursors.
29729         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
29730
29731 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
29732
29733         * ComboBox.cs: ability to change style when the ctrl is already
29734         created, missing methods and events, bug fixes, signature fixes
29735
29736 2005-01-19  Peter Bartok  <pbartok@novell.com>
29737
29738         * Cursors.cs (ctor): Added ctor to fix signature
29739
29740 2005-01-18  Peter Bartok  <pbartok@novell.com>
29741
29742         * Button.cs: Implemented DoubleClick event
29743         * ButtonBase.cs:
29744           - Fixed keyboard handling to behave like MS, where the press of
29745             Spacebar is equivalent to a mousedown, and the key release is
29746             equivalent to mouseup. Now a spacebar push will give the same
29747             visual feedback like a mouse click.
29748           - Added missing attributes
29749           - Added ImeModeChanged event
29750           - Added support for generating DoubleClick event for derived classes
29751         * CheckBox.cs:
29752           - Implemented DoubleClick event
29753           - Added missing attributes
29754         * CommonDialog.cs: Added missing attribute
29755         * ContextMenu.cs: Added missing attributes
29756         * RadioButton.cs:
29757           - AutoChecked buttons do not allow to be unselected when clicked
29758             (otherwise we might end up with no selected buttons in a group)
29759           - Added missing attributes
29760           - Implemented DoubleClickEvent
29761         * ThreadExceptionDialog.cs: Enabled TextBox code
29762
29763 2005-01-18  Peter Bartok  <pbartok@novell.com>
29764
29765         * Form.cs: Removed debug output
29766         * Button.cs: Added support for DoubleClick method
29767
29768 2005-01-18  Peter Bartok  <pbartok@novell.com>
29769
29770         * Form.cs:
29771           - Added method to parent window that allows triggering size
29772             calculations when a menu is added/removed
29773           - set_Menu: Cleaned up mess from early days of Form and Control,
29774             now properly triggers a recalc when a menu is added/removed
29775           - Added case to select form itself as focused form if no child
29776             controls exist
29777           - Added PerformLayout call when showing dialog, to ensure properly
29778             placed controls
29779         * Control.cs:
29780           - Select(): Made internal so Form can access it
29781           - Focus(): Only call Xplat layer if required (avoids loop), and sets
29782             status
29783         * Application.cs (Run): Removed hack and calls PerformLayout instead
29784           to trigger calculation when Form becomes visible
29785
29786 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
29787
29788         * ComboBox.cs: fixes for ownerdraw
29789
29790 2005-01-18  Peter Bartok  <pbartok@novell.com>
29791
29792         * TextControl.cs:
29793           - Sentinel is no longer static, each Document gets it's own, this
29794             avoids locking or alternatively overwrite problems when more
29795             than one text control is used simultaneously.
29796           - Switched to use Hilight and HilightText brushes for text selection
29797
29798         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
29799
29800 2005-01-18  Peter Bartok  <pbartok@novell.com>
29801
29802         * Control.cs:
29803           - Hooked up the following events:
29804                 o ControlAdded
29805                 o ControlRemoved
29806                 o HandleDestroyed
29807                 o ImeModeChanged
29808                 o ParentChanged
29809                 o TabStopChanged
29810                 o Invalidated
29811                 o SystemColorsChanged
29812                 o ParentFontChanged
29813                 o Move
29814           - Removed debug output
29815           - Added a call to the current theme's ResetDefaults when a color change
29816             is detected
29817         * Form.cs: Now setting the proper ImeMode
29818         * Theme.cs: Defined a method to force recreation of cached resources
29819           and rereading of system defaults (ResetDefaults())
29820         * ThemeWin32Classic.cs: Added ResetDefaults() stub
29821
29822 2005-01-17  Peter Bartok  <pbartok@novell.com>
29823
29824         * Control.cs: Added missing attributes
29825
29826 2005-01-17  Jackson Harper  <jackson@ximian.com>
29827
29828         * TreeNode.cs: Implement editing. Add missing properties selected
29829         and visible.
29830         * TreeView.cs: Implement node editing. Also some fixes to use
29831         Invalidate (invalid area) instead of Refresh when selecting.
29832
29833 2005-01-17  Peter Bartok  <pbartok@novell.com>
29834
29835         * Control.cs:
29836           - Implemented InvokeGotFocus() method
29837           - Implemented InvokeLostFocus() method
29838           - Implemented InvokePaint() method
29839           - Implemented InvokePaintBackground() method
29840           - Implemented InvokeClick() method
29841           - Implemented FindForm() method
29842           - Implemented RectangleToClient() method
29843           - Implemented ClientToRectangle() method
29844           - Implemented ResetBackColor() method
29845           - Implemented ResetCursor() method
29846           - Implemented ResetFont() method
29847           - Implemented ResteForeColor() method
29848           - Implemented ResetImeMode() method
29849           - Implemented ResetLeftToRight() method
29850           - Implemented ResetText() method
29851           - Implemented Scale() methods
29852           - Implemented ScaleCore() method
29853           - Implemented Update() method
29854           - Removed unused variables
29855           - Stubbed AccessibilityNotifyClients and
29856             ControlAccessibleObject.NotifyClients() methods (dunno what to do
29857             with those yet)
29858           - Now setting proper default for RightToLeft property
29859           - Fixed bug in SetClientSizeCore that would cause windows to get
29860             really big
29861           - Now sending Click/DoubleClick events
29862           - Now selecting controls when left mouse button is clicked on
29863             selectable control
29864         * AccessibleEvents.cs: Added
29865         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
29866         * XplatUIOSX.cs: Stubbed UpdateWindow() method
29867         * XplatUIWin32.cs: Implemented UpdateWindow() method
29868         * XplatUIX11.cs: Implemented UpdateWindow() method
29869         * Form.cs: Removed stray semicolon causing CS0162 warning
29870         * ThemeWin32Classic.cs: Fixed unused variable warnings
29871         * ScrollableControl.cs: Now calls base method for ScaleCore
29872         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
29873           style to avoid interference with internal click handler (which is
29874           different than standard Control click handling)
29875         * RadioButton.cs:
29876           - Now unchecks all sibling radio buttons when control is
29877             selected (Fixes #68756)
29878           - Removed internal tabstop variable, using the one inherited from
29879             Control
29880
29881 2005-01-17  Jackson Harper  <jackson@ximian.com>
29882
29883         * NavigateEventArgs.cs: Fix base type.
29884         * LinkLabel.cs: Sig fix
29885         
29886 2005-01-17  Jackson Harper  <jackson@ximian.com>
29887
29888         * TreeView.cs: Only invalidate the effected nodes bounds when
29889         selecting nodes.
29890
29891 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
29892
29893         * XplatUIWin32.cs: fixes Win32 marshaling
29894         * XplatUIX11.cs: fixes method signature
29895
29896 2005-01-17  Peter Bartok  <pbartok@novell.com>
29897
29898         * XplatUIX11.cs: Clean up resources when we no longer need them
29899
29900 2005-01-17  Peter Bartok  <pbartok@novell.com>
29901
29902         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
29903           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
29904           and DestroyCursor() methods.
29905         * Cursor.cs: Partially implemented, now supports standard cursors;
29906           still contains some debug code
29907         * Cursors.cs: Implemented class
29908         * Control.cs:
29909           - WndProc(): Added handling of WM_SETCURSOR message, setting the
29910             appropriate cursor
29911           - Implemented Cursor property
29912           - Replaced break; with return; more straightforwar and possibly
29913             faster
29914           - Now properly setting the result for WM_HELP
29915         * X11Structs.cs: Added CursorFontShape enum
29916         * XplatUIStructs.cs:
29917           - Added StdCursor enum (to support DefineStdCursor() method)
29918           - Added HitTest enum (to support sending WM_SETCURSOR message)
29919         * XplatUIX11.cs:
29920           - Now sends the WM_SETCURSOR message
29921           - Implemented new cursor methods
29922         * XplatUIOSX.cs: Stubbed new cursor methods
29923         * XplatUIWin32.cs:
29924           - Implemented new cursor methods
29925           - Added GetSystemMetrics function and associated enumeration
29926
29927 2005-01-15  Peter Bartok  <pbartok@novell.com>
29928
29929         * Control.cs:
29930           - WndProc(): Now handles EnableNotifyMessage
29931           - SelectNextControl(): Fixed bug where if no child or sibling
29932             controls exist we looped endlessly
29933
29934 2005-01-14  Jackson Harper  <jackson@ximian.com>
29935
29936         * TreeView.cs: Recalculate the tab pages when a new one is added
29937         so that the proper bounding rects are created.
29938
29939 2005-01-14  Jackson Harper  <jackson@ximian.com>
29940
29941         * TreeView.cs: Draw a gray box instead of a grip in the lower
29942         right hand corner when there are both horizontal and vertical
29943         scroll bars.
29944
29945 2005-01-14  Jackson Harper  <jackson@ximian.com>
29946
29947         * Control.cs: When erasing backgrounds use FromHwnd instead of
29948         FromHdc when there is a NULL wparam. This occurs on the X driver.
29949         * XplatUIX11.cs: Set the wparam to NULL.
29950
29951 2005-01-13  Jackson Harper  <jackson@ximian.com>
29952
29953         * PictureBox.cs: Implement missing methods (except ToString, need
29954         to test that on windows) and events. When visibility is changed we
29955         need to redraw the image because the buffers are killed. When size
29956         is changed refresh if the sizemode needs it.
29957
29958 2005-01-13  Peter Bartok  <pbartok@novell.com>
29959
29960         * Control.cs (SelectNextControl): Was using wrong method to select
29961           a control
29962
29963 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
29964
29965         * ComboBox.cs: fixes dropstyle
29966
29967 2005-01-13  Peter Bartok  <pbartok@novell.com>
29968
29969         * Form.cs:
29970           - Implemented Select() override
29971           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
29972           - Now sets keyboard focus on startup
29973         * Control.cs (SelectNextControl): Now properly handles directed=true
29974         * TextBoxBase.cs:
29975           - WndProc: Now passes tab key on to base if AcceptTabChar=false
29976           - Added (really bad) focus rectangle (mostly for testing)
29977         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
29978           to enforce redraw on focus changes
29979         * ContainerControl.cs:
29980           - Fixed detection of Shift-Tab key presses
29981           - Fixed traversal with arrow keys
29982         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
29983           gonna keep this or if it's complete yet
29984         
29985 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
29986
29987         * ComboBox.cs: missing properties, fixes
29988
29989 2005-01-13  Peter Bartok  <pbartok@novell.com>
29990
29991         * Panel.cs (ctor): Setting Selectable window style to off
29992         * Splitter.cs (ctor): Setting Selectable window style to off
29993         * GroupBox.cs (ctor): Setting Selectable window style to off
29994         * Label.cs (ctor): Setting Selectable window style to off
29995
29996 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
29997
29998         * UpDownBase.cs (InitTimer): If the timer has been already
29999         created, enable it.
30000
30001         Use a TextBox instead of a Label.
30002
30003 2005-01-12  Jackson Harper  <jackson@ximian.com>
30004
30005         * TreeView.cs: Refresh the tree after sorting the nodes. Always
30006         draw the connecting node lines (when ShowLines is true).
30007         * TreeNode.cs: The nodes index can now be updated. This is used
30008         when a node collection is sorted.
30009         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
30010         insert or an existing unsorted node collection can be sorted.
30011         
30012 2005-01-12  Peter Bartok  <pbartok@novell.com>
30013
30014         * ContainerControl.cs: Implemented ProcessDialogKeys()
30015
30016 2005-01-12  Peter Bartok  <pbartok@novell.com>
30017
30018         * Control.cs:
30019           - Implemented SelectNextControl() method
30020           - Several focus related bug fixes
30021           - Fixed Docking calculations to match MS documentation and
30022             behaviour
30023
30024 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
30025
30026         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
30027         bug fixes
30028
30029 2005-01-12  Peter Bartok  <pbartok@novell.com>
30030
30031         * Control.cs:
30032           - Fixed broken Contains() method
30033           - Implemented GetNextControl() method. Finally. This is the pre-
30034             requisite for focus handling.
30035
30036 2005-01-12  Peter Bartok  <pbartok@novell.com>
30037
30038         * OSXStrucs.cs: Added
30039
30040 2005-01-12  Peter Bartok  <pbartok@novell.com>
30041
30042         * XplatUIWin32.cs:
30043           - Removed PeekMessageFlags
30044           - Implemented SetWindowStyle() method
30045         * XplatUIStructs.cs: Added PeekMessageFlags
30046         * X11Structs: Added missing border_width field to XWindowChanges struct
30047         * XplatUIX11.cs:
30048           - PeekMessage: Now throws exception if flags which are not yet
30049             supported are passed
30050           - Implemented SetWindowStyle() method
30051           - Fixed SetZOrder to handle AfterHwnd properly
30052         * XplatUI.cs: Added SetWindowStyle() method
30053         * XplatUIDriver.cs: Added SetWindowStyle() abstract
30054         * Control.cs:
30055           - Implemented UpdateStyles() method
30056           - Implemented UpdateZOrder() method
30057         * XplatUIOSX.cs: Added SetWindowStyle() stub
30058
30059 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
30060
30061         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
30062         button mouse).
30063
30064
30065 2005-01-11  Jackson Harper  <jackson@ximian.com>
30066
30067         * TreeView.cs: Still need to draw lines to siblings even if out of
30068         the current node is out of the clip.
30069
30070 2005-01-11  Jackson Harper  <jackson@ximian.com>
30071
30072         * TreeView.cs: When setting the hbar/vbar/grip position use
30073         SetBounds so that perform layout is only called once. Also suspend
30074         and resume layout so layout is only done once for all controls.
30075         - Removed some debug fluff
30076         * SizeGrip.cs: Call base implmentation in overriding methods.
30077         - When visibility is changed the drawing buffers are killed so we
30078         need to redraw.
30079
30080 2005-01-11  Jackson Harper  <jackson@ximian.com>
30081
30082         * TreeView.cs: Calculate the open node count while drawing. This
30083         saves us an entire tree traversal for every paint operation. Use
30084         a member var for the open node count so less vars are passed around.
30085
30086 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
30087
30088         * MonthCalendar.cs:
30089         - fixed selection to use mousemove, not mouse polling on timer
30090         * ThemeWin32Classic.cs
30091         - removed redundant unused variable "no_more_content"
30092         
30093 2005-01-11  Peter Bartok  <pbartok@novell.com>
30094
30095         * XplatUIX11.cs (DoEvents): Needs to return when no more events
30096           are pending, so it now calls PeekMessage instead of GetMessage;
30097           implemented a incomplete version of PeekMessage
30098         
30099 2005-01-11  Peter Bartok  <pbartok@novell.com>
30100
30101         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
30102           I18n issues
30103         * TextBoxBase.cs: Added sending of TextChanged event
30104
30105 2005-01-10  Jackson Harper  <jackson@ximian.com>
30106
30107         * TreeView.cs: Try not to draw outside the clipping rectangle on
30108         each node element.
30109
30110 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
30111
30112         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
30113
30114 2005-01-10  Jackson Harper  <jackson@ximian.com>
30115
30116         * TreeView.cs:
30117         - Implement fast scrolling. Now only the newly
30118         exposed nodes are drawn and the old image is moved using the
30119         XplatUI::ScrollWindow method.
30120         - Factor in height of nodes when calculating whether or not the
30121         node is in the clipping rect.
30122
30123 2005-01-10  Jackson Harper  <jackson@ximian.com>
30124
30125         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
30126
30127 2005-01-10  Peter Bartok  <pbartok@novell.com>
30128
30129         * Application.cs: Added temporary hack to resolve all our resize
30130           required issues on startup. This will get fixed properly at
30131           some point in the future
30132
30133 2005-01-10  Jackson Harper  <jackson@ximian.com>
30134
30135         * SizeGrip.cs: New internal class that is used as a sizing
30136         grip control...hence the name.
30137
30138 2005-01-10  Peter Bartok  <pbartok@novell.com>
30139
30140         * Control.cs: Implemented proper TabIndex handling, now assigning
30141           a tabindex when a control is added to a container
30142         * GroupBox.cs (ctor): Now sets the Container style bit, required
30143           for Control.GetNextControl()
30144
30145 2005-01-09  Jackson Harper  <jackson@ximian.com>
30146
30147         * TextBoxBase.cs: Clear window when scrolling (fixes build).
30148
30149 2005-01-09  Peter Bartok <pbartok@novell.com>
30150
30151         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
30152           XplatUIX11.cs: Added ability to control ScrollWindow expose and
30153           an overload for ScrollWindow to allow only scrolling a rectangle
30154
30155 2005-01-09  Peter Bartok <pbartok@novell.com>
30156
30157         * Form.cs:
30158           - Implemented SetDesktopBounds method
30159           - Implemented SetDesktopLocation method
30160
30161 2005-01-08  Jackson Harper  <jackson@ximian.com>
30162
30163         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
30164         the node count has changed, this removes to VScroll::Refresh calls
30165         when drawing.
30166
30167 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
30168
30169         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
30170
30171 2005-01-07  Jackson Harper  <jackson@ximian.com>
30172
30173         * TreeNode.cs: Just update the single node when it is
30174         checked. Don't refresh after toggling, the Expand/Collapse already
30175         handles this.
30176         * TreeView.cs: Respect clipping a little more when drawing. Try
30177         not to redraw things that don't need to be redrawn. Just hide the
30178         scrollbars when they are no longer needed instead of removing
30179         them, so they don't have to be created again and again.
30180         
30181 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
30182
30183         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
30184         coordinates to window space to place the caret properly, FIXED.
30185         Implement GetWindowState & SetWindowState
30186
30187 2005-01-06  Peter Bartok <pbartok@novell.com>
30188
30189         * Form.cs:
30190           - Implemented ClientSize property
30191           - Implemented DesktopBounds property
30192           - Implemented DesktopLocation property
30193           - Implemented IsRestrictedWindow property
30194           - Implemented Size property
30195           - Implemented TopLevel property
30196           - Implemented FormWindowState property
30197         * Control.cs:
30198           - Implemented GetTopLevel() method
30199           - Implemented SetTopLevel() method
30200         * X11Structs.cs (Atom):
30201           - Added AnyPropertyType definition
30202           - Added MapState definiton and updated XWindowAttribute struct
30203         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
30204         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
30205         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
30206         * XplatUIWin32.cs:
30207           - Implemented GetWindowState() and SetWindowState() methods
30208           - Fixed Win32GetWindowLong return type
30209         * XplatUIX11.cs:
30210           - Introduced central function for sending NET_WM messages
30211           - Implemented GetWindowState() and SetWindowState() methods
30212         * TextBoxBase.cs (set_Lines):
30213           - Now uses Foreground color for text added via Text property (Duh!)
30214           - Added code to remember programmatically requested size (fixes
30215             behaviour when Multiline is set after Size)
30216           - Added AutoSize logic
30217
30218 2005-01-06  Jackson Harper  <jackson@ximian.com>
30219
30220         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
30221
30222 2005-01-06  Jackson Harper  <jackson@ximian.com>
30223
30224         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
30225         set to less then 0.
30226
30227 2005-01-06  Jackson Harper  <jackson@ximian.com>
30228
30229         * ScrollableControl.cs: Lazy init the scrollbars.
30230         
30231 2005-01-06  Jackson Harper  <jackson@ximian.com>
30232
30233         * Theme.cs: Speed up getting pens and solid brushes, by using
30234         their ARGB as a hash instead of tostring and not calling Contains.
30235
30236 2005-01-06  Peter Bartok <pbartok@novell.com>
30237
30238         * Form.cs:
30239           - Implemented OnActivated and OnDeactivate event trigger
30240           - Implemented Activate() method
30241           - Fixed ShowDialog() to activate the form that was active before
30242             the dialog was shown
30243         * XplatUIX11.cs:
30244           - Added global active_window var that tracks the currently active
30245             X11 window
30246           - Now always grabs Property changes from the root window to always
30247             catch changes on the active window property
30248           - Added code to PropertyNotify handler to send Active/Inactive
30249             messages when state changes. This puts X11 and Win32 en par on
30250             WM_ACTIVATE notifications (except for double notifications when
30251             the user clicks away from our modal window to another one of our
30252             windows)
30253
30254 2005-01-05  Jackson Harper  <jackson@ximian.com>
30255
30256         * ImageList.cs: Implment ctor
30257
30258 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
30259
30260         * XplatUIOSX.cs: Implement Activate/SetTopmost
30261
30262 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
30263
30264         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
30265
30266 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
30267
30268         * XplatUIOSX.cs: Implement GetActive/SetFocus.
30269
30270 2005-01-05  Peter Bartok <pbartok@novell.com>
30271
30272         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
30273           XplatUIOSX.cs: Added GetActive method to return the currently
30274           active window for the application (or null, if none is active)
30275         * Form.cs:
30276           - Implemented ActiveForm
30277           - Commented out owner assignment for modal dialogs (causes problems
30278             on Win32, since the owner will be disabled)
30279           - Reworked some Active/Focus handling (still incomplete)
30280         * CommonDialog.cs: Commented out owner assignment for modal dialogs
30281           (causes problems on Win32, since the owner will be disabled)
30282         * IWin32Window: Added ComVisible attribute
30283
30284 2005-01-05  Peter Bartok <pbartok@novell.com>
30285
30286         * ToolTip.cs (WndProc): Enable setting focus now that we have the
30287           required XplatUI functions.
30288
30289 2005-01-05  Peter Bartok <pbartok@novell.com>
30290
30291         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
30292           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
30293           to implement focus and activation handling; still incomplete and
30294           with debug output
30295
30296 2005-01-04  Peter Bartok <pbartok@novell.com>
30297
30298         * TextBoxBase.cs: Changed access level for Document property to
30299           match switch to internal for TextControl
30300
30301 2005-01-04  Peter Bartok <pbartok@novell.com>
30302
30303         * AccessibleObject: Added ComVisible attribute
30304
30305 2005-01-04  Jackson Harper  <jackson@ximian.com>
30306
30307         * X11Keyboard.cs: Remove unneeded var.
30308
30309 2005-01-04  Jackson Harper  <jackson@ximian.com>
30310
30311         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
30312         but PAINT.
30313         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
30314         ClientMessage. This makes apps exit cleanly (more often).
30315         
30316 2005-01-04  Jackson Harper  <jackson@ximian.com>
30317
30318         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
30319         handling focus, return correct colors and fonts,
30320         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
30321         handle selection, horizontal scrolling, and mouse interaction.
30322
30323 2005-01-04  Peter Bartok <pbartok@novell.com>
30324
30325         * ICommandExecutor.cs: Added
30326         * IDataGridColumnStyleEditingNotificationService.cs: Added
30327         * IFeatureSupport.cs: Added
30328         * IFileReaderService.cs: Added
30329         * IDataObject.cs: Added ComVisible attribute
30330         * AmbientProperties.cs: Added
30331         * BaseCollection.cs: Added missing attributes
30332         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
30333         * BaseCollection.cs: Added missing attributes
30334         * Binding.cs: Added TypeConverter attribute
30335         * BindingContext.cs: Added DefaultEvent attribute
30336         * BindingsCollection.cs: Added DefaultEvent attribute
30337         * Button.cs: Added DefaultValue attribute
30338         * DragEventArgs.cs: Added ComVisible attribute
30339         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
30340         * KeyEventArgs.cs: Added ComVisible attribute
30341         * KeyPressEventArgs.cs: Added ComVisible attribute
30342         * MouseEventArgs.cs: Added ComVisible attribute
30343         * NavigateEventArgs.cs: Added
30344         * NavigateEventHandler.cs: Added
30345         * FeatureSupport.cs: Added
30346         * OSFeature.cs: Added
30347         * Theme.cs: Added abstract Version property to support OSFeature
30348         * ThemeWin32Classic.cs: Added Version property to
30349           support OSFeature.Themes
30350         * ProgressBar.cs: Removed OnPaintBackground override, not required since
30351           the proper styles to avoid background drawing are set, also doesn't
30352           match MS signature
30353         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
30354         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
30355         * ScrollEventArgs.cs: Added ComVisible attribute
30356         * SplitterEventArgs.cs: Added ComVisible attribute
30357         * AccessibleSelection.cs: Added Flags attribute
30358         * Appearance.cs: Added ComVisible attribute
30359         * Border3DSide.cs: Added ComVisible attribute
30360         * Border3DStyle.cs: Added ComVisible attribute
30361         * BorderStyle.cs: Added ComVisible attribute
30362         * DragAction.cs: Added ComVisible attribute
30363         * ErrorBlinkStyle.cs: Added
30364         * ScrollEventType.cs: Added ComVisible attribute
30365         * AnchorStyles.cs: Added Editor attribute
30366         * DockStyle.cs: Added Editor attribute
30367         * HorizontalAlignment.cs: Added ComVisible attribute
30368         * HelpEventArgs.cs: Added ComVisible attribute
30369         * PaintEventArgs.cs: Added IDisposable
30370
30371 2005-01-04  Peter Bartok <pbartok@novell.com>
30372
30373         * TextControl.cs: Switched Line, LineTag and Document classes to
30374           internal
30375
30376 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
30377
30378         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
30379         Simple mode, fixes, IntegralHeight, etc.
30380
30381 2005-01-04  Peter Bartok <pbartok@novell.com>
30382
30383         * TextBoxBase.cs: Using proper font variable now
30384
30385 2005-01-04  Peter Bartok <pbartok@novell.com>
30386
30387         * Form.cs (ShowDialog): Set parent to owner, if provided
30388         * GroupBox.cs: Removed unused vars
30389         * TextControl.cs:
30390           - Added GetHashCode() for Document and LineTag classes
30391           - Removed unused variables
30392           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
30393             to allow translation between continuous char position and line/pos
30394         * CheckBox.cs: Removed vars that are provided by base class
30395         * RadioButton.cs: Removed vars that are provided by base class, added
30396           new keyword where required
30397         * LinkLabel.cs: Added new keyword where required
30398         * Control.cs (WndProc): Removed unused variable
30399         * TextBoxBase.cs:
30400           - Finished SelectionLength property
30401           - Implemented SelectionStart property
30402           - Implemented Text property
30403           - Removed unused vars
30404         * MessageBox.cs: Added new keyword where required
30405         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
30406           WndProc signature
30407         * MenuAPI.cs: Added new keyword where required
30408         * ButtonBase.cs: Removed vars that are provided by base class, added
30409           new keyword where required
30410         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
30411           argument to double, to allow compiling with csc 2.0 (Atsushi ran
30412           into this)
30413         * Application.cs (Run): Now triggers the ThreadExit event
30414         * CommonDialog.cs: Added new keyword where required; now properly sets
30415           parent (owner) for dialog
30416         * XplatUIX11.cs: Commented out unused vars
30417         * StatusBar.cs: Fixed signature for Text property
30418         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
30419
30420 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
30421
30422         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
30423         TrackBar.cs, MonthCalendar.cs: remove unused vars
30424
30425 2005-01-03  Jackson Harper  <jackson@ximian.com>
30426
30427         * ThemeWin32Classic.cs:
30428         * X11Keyboard.cs: Remove unused vars.
30429
30430 2005-01-03  Peter Bartok  <pbartok@novell.com>
30431
30432         * TextBox.cs:
30433           - set_Text: Tied into TextControl
30434           - set_TextAlignment: Tied into TextControl
30435         * TextControl.cs:
30436           - Added alignment properties and implemented alignment handling
30437             and drawing (still has a bug, not generating proper expose events)
30438           - Added new Line() constructor to allow passing the line alignment
30439           - Fixed selection setting, properly handling end<start now
30440           - Added aligment considerations to RecalculateDocument()
30441         * TextBoxBase.cs:
30442           - Now properly enforces control height for single line controls
30443           - Added support for CharacterCasing
30444           - Added IsInputKey override
30445           - Fixed Keys.Enter logic
30446           - Added SetBoundsCore override
30447           - Fixed mouse selection handling
30448
30449 2005-01-03  Jackson Harper  <jackson@ximian.com>
30450
30451         * TreeView.cs:
30452           - Collapse and uncheck all nodes when CheckBoxes is disabled.
30453           - Checkboxes are always aligned to the bottom of the node,
30454           regardless of item height.
30455           - Use the node bounds to draw the text so we can center it when
30456           the item height is greater then the font height.
30457           - Node::Bounds are only the text part of the node.
30458         * TreeNode.cs: New method to combine collapsing and unchecking all
30459           nodes recursively.
30460
30461 2005-01-02  Jackson Harper  <jackson@ximian.com>
30462
30463         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
30464         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
30465         tree when a check is changed. TODO: Only refresh the checked node.
30466
30467 2004-12-30  Jackson Harper  <jackson@ximian.com>
30468
30469         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
30470         * TreeNode.cs: When collapsing make sure to never collapse the
30471         root node.
30472
30473 2004-12-29  Jackson Harper  <jackson@ximian.com>
30474
30475         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
30476         
30477 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
30478
30479         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
30480
30481 2004-12-28  Peter Bartok  <pbartok@novell.com>
30482
30483         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
30484           not yet assigned
30485
30486 2004-12-28  Peter Bartok  <pbartok@novell.com>
30487
30488         * Control.cs (WndProc): Added WM_HELP handler, now generates
30489           HelpRequested event
30490         * Form.cs: Added HelpButton property and required support code
30491         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
30492
30493 2004-12-28  Peter Bartok  <pbartok@novell.com>
30494
30495         * CommonDialog.cs:
30496           - Made DialogForm.owner variable internal
30497           - Added check to ensure owner form is set before setting
30498             owner properties in CreateParams
30499
30500 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
30501
30502         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
30503           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
30504           GetCursorPos.  Fix major visibility issues.  Rework the windowing
30505           system to support borderless/titleless windows (implements menus).
30506           Fix GetWindowPos.  Implement initial background color support for
30507           views.
30508
30509 2004-12-28  Peter Bartok  <pbartok@novell.com>
30510
30511         * Form.cs (get_CreateParams): Make sure we have an owner before using
30512           the owner variable. Implement proper default if no owner exists
30513
30514 2004-12-28  Peter Bartok  <pbartok@novell.com>
30515
30516         * In preparation for making Managed.Windows.Forms the default build target
30517           for System.Windows.Forms, the following stubbed files were added.
30518           Dialogs are currently being implemented by contributors and are only
30519           short-term place holders.
30520         * ColorDialog.cs: Initial check-in (minmal stub)
30521         * DataGrid.cs: Initial check-in (minimal stub)
30522         * DataGridLineStyle.cs: Initial check-in (minimal stub)
30523         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
30524         * DataGridTableStyle.cs: Initial check-in (minimal stub)
30525         * FontDialog.cs: Initial check-in (minimal stub)
30526         * FileDialog.cs: Initial check-in (minimal stub)
30527         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
30528         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
30529         * OpenFileDialog: Initial check-in (minimal stub)
30530         * IComponentEditorPageSite.cs: Initial check-in
30531         * Splitter.cs: Initial check-in (for Jackson)
30532         * SplitterEventArgs.cs: Initial check-in (for Jackson)
30533         * SplitterEventHandler.cs: Initial check-in (for Jackson)
30534         * TextBox.cs: Initial check-in; still needs some wiring to
30535           TextControl backend
30536         * Form.cs: Implemented ControlBox property
30537         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
30538         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
30539         * TextControl.cs: Added selection functionality; added todo header
30540         * TextBoxBase.cs:
30541           - Implemented Lines property
30542           - Implemented TextHeight property
30543           - Implemented SelectedText property
30544           - Implemented SelectionLength property
30545           - Implemented SelectAll method
30546           - Implemented ToString method
30547           - Removed and cleaned up some debug code
30548           - Implemented (still buggy) mouse text selection
30549
30550 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
30551
30552         * ComboBox.cs: Complete DropDownList implementation, fixes.
30553
30554 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
30555
30556         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
30557         * ComboBoxStyle.cs: ComboBoxStyle enum
30558         * ComboBox.cs: Initial work on ComboBox control
30559
30560 2004-12-21  Peter Bartok  <pbartok@novell.com>
30561
30562         * Control.cs (ctor, CreateParams): Moved setting of is_visible
30563           forward so that anything that creates a window gets the default,
30564           also no longer uses Visible property in CreateParams to avoid
30565           walking up the parent chain and possibly get the wrong visible
30566           status. Fixed IsVisible to no longer walk up to the parent.
30567
30568 2004-12-21  Peter Bartok  <pbartok@novell.com>
30569
30570         * Form.cs (ShowDialog): Unset modality for the proper window
30571  
30572 2004-12-20  Peter Bartok  <pbartok@novell.com>
30573
30574         * CommonDialog.cs: Initial check-in
30575
30576 2004-12-20  Peter Bartok  <pbartok@novell.com>
30577
30578         * Control.cs (Visible): Now uses the parent window instead of the
30579           client area window for the property
30580
30581         * Form.cs
30582           - ShowDialog(): Now uses the proper window for modality
30583           - The default visibility state for the form parent is now false. This
30584             will prevent the user from seeing all the changes to the form and
30585             its controls before the application hits Application.Run()
30586           - Removed some stale commented out code
30587
30588         * NativeWindow.cs:
30589           - Added FindWindow() method to have a method to check for existence
30590             of a window handle
30591           - Added ability to override default exception handling (for example
30592             when debugging with VS.Net; to do this the ExternalExceptionHandler
30593             define must be set
30594           - Removed some useless debug output
30595
30596         * XplatUIX11.cs:
30597           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
30598             not working as expected
30599           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
30600             property to allow switching back to the modal window if focus is
30601             given to another one of our windows (Application Modal)
30602           - Now only sets override_redirect if we create a window
30603             without WS_CAPTION
30604           - Moved EventMask selection before mapping of newly created window
30605             so we can catch the map event as well
30606           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
30607           - Added various Atom related DllImports
30608           - Implemented Exit() method
30609           - .ctor() : No longer shows window if WS_VISIBLE is not defined
30610             in the CreateParams
30611
30612         * MessageBox.cs: Now properly deals with the FormParent window by
30613           providing an override the FormParent CreateParams property to
30614           set as POPUP instead of OVERLAPPED window.
30615
30616 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
30617
30618         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
30619         Minor code cleanup.
30620
30621 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
30622         
30623         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
30624
30625 2004-12-18  Peter Bartok  <pbartok@novell.com>
30626
30627         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
30628           implementing SetModal() method
30629
30630 2004-12-18  Peter Bartok  <pbartok@novell.com>
30631
30632         * X11Structs.cs (XGCValues): Fixed type of function element
30633         * XplatUI.cs: Added ScrollWindow() method
30634         * XplatUIDriver.cs: Added ScrollWindow() abstract
30635         * XplatUIWin32.cs: Implemented ScrollWindow() method
30636         * XplatUIX11.cs: Implemented ScrollWindow() method
30637         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
30638
30639 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
30640
30641         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
30642         Some more keyboard support (INCOMPLETE)
30643
30644 2004-12-17  Peter Bartok  <pbartok@novell.com>
30645
30646         * TextControl.cs:
30647         - Added color attribute to line tags.
30648         - Added color argument to all functions dealing with tags
30649         - Added color argument support to various functions
30650         - Fixed miss-calculation of baseline/shift in certain circumstances
30651
30652         * TextBoxBase.cs: Added new color option to test code
30653
30654 2004-12-17  Jackson Harper  <jackson@ximian.com>
30655
30656         * TreeNode.cs:
30657         * MonthCalendar.cs: Signature fixes
30658
30659 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
30660
30661         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
30662         keyboard event moved it.  Create a new graphics context for each paint resolves this
30663
30664 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
30665
30666         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
30667         Make caret exist and go blink blink.  Initial keyboard support.
30668         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
30669         works.
30670
30671 2004-12-17  Jackson Harper  <jackson@ximian.com>
30672
30673         * XplatUIStructs.cs: Updated set of virtual keycodes.
30674         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
30675
30676 2004-12-17  Jackson Harper  <jackson@ximian.com>
30677
30678         * XplatUIX11.cs: Prune old keyboard code.
30679
30680 2004-12-17  Jackson Harper  <jackson@ximian.com>
30681
30682         * XplatUIX11.cs: When generating mouse wparams get the modifier
30683         keys from the ModifierKeys property.
30684
30685 2004-12-17  Jackson Harper  <jackson@ximian.com>
30686
30687         * X11Keyboard.cs: Send up/down input when generating
30688         messages. Remove some unused vars.
30689
30690 2004-12-17  Jackson Harper  <jackson@ximian.com>
30691
30692         * TabControl.cs:
30693         * TreeView.cs: get rid of warnings.
30694
30695 2004-12-17  Jackson Harper  <jackson@ximian.com>
30696
30697         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
30698
30699 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
30700
30701         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
30702           CheckedListBox.cs: Implementation
30703
30704 2004-12-17  Peter Bartok  <pbartok@novell.com>
30705
30706         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
30707
30708 2004-12-16  Peter Bartok  <pbartok@novell.com>
30709
30710         * TextControl.cs:
30711           - InsertCharAtCaret(): Fixed start pos fixup
30712           - CaretLine_get: No longer derives the line from the tag, the tag
30713             could be stale if lines in the document have been added or deleted
30714           - RebalanceAfterDelete(): Fixed bug in balancing code
30715           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
30716           - Line.Streamline(): Now can also elminate leading empty tags
30717           - DumpTree(): Added a few more tests and prevented exception on
30718             uninitialized data
30719           - Added Debug section for Combining lines
30720           - Delete(): Now copies all remaining properties of a line
30721           
30722         * TextBoxBase.cs:
30723           - Left mousebutton now sets the caret (and middle button still acts
30724             as formatting tester, which must go away soon)
30725           - Added Debug section for Deleting/Combining lines
30726           - Fixed calculations for UpdateView after Combining lines
30727
30728 2004-12-16  Peter Bartok  <pbartok@novell.com>
30729
30730         * TextControl.cs: Now properly aligns text on a baseline, using the
30731           new XplatUI.GetFontMetrics() method. Simplified several calculations
30732         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
30733           defined
30734
30735 2004-12-16  Peter Bartok  <pbartok@novell.com>
30736
30737         * XplatUI.cs: Added GetFontMetrics() method
30738         * XplatUIDriver.cs: Added GetFontMetrics() abstract
30739         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
30740           into libgdiplus, our private GetFontMetrics function
30741         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
30742         * XplatUIWin32.cs: Implemented GetFontMetrics() method
30743
30744 2004-12-16  Jackson Harper  <jackson@ximain.com>
30745
30746         * XplatUIStruct.cs: Add enum for dead keys
30747         * X11Keyboard.cs: Map and unmap dead keys.
30748
30749 2004-12-16  Jackson Harper  <jackson@ximian.com>
30750
30751         * X11Keyboard.cs: Detect and use the num lock mask.
30752
30753 2004-12-16  Peter Bartok  <pbartok@novell.com>
30754
30755         * Control.cs (CreateGraphics): Added check to make sure the
30756           handle of the window exists before calling Graphics.FromHwnd()
30757
30758 2004-12-16  Peter Bartok  <pbartok@novell.com>
30759
30760         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
30761           contains a lot of code that's not supposed to be there for the
30762           real thing, but required for developing/testing the textbox
30763           backend.
30764
30765 2004-12-16  Peter Bartok  <pbartok@novell.com>
30766
30767         * TextControl.cs:
30768         - Fixed Streamline method
30769         - Added FindTag method to Line
30770         - Added DumpTree method for debugging
30771         - Added DecrementLines() method for deleting lines
30772         - Fixed UpdateView to update the cursor to end-of-line on single-line
30773           updates
30774         - Added PositionCaret() method
30775         - Fixed MoveCaret(LineDown) to move into the last line, too
30776         - Added InsertChar overload
30777         - Fixed InsertChar tag offset calculations
30778         - Added DeleteChar() method
30779         - Added Combine() method for folding lines
30780         - Fixed Delete() method, no longer allocates wasted Line object and
30781           now copies all properties when swapping nodes
30782         - Delete() method now updates document line counter
30783
30784 2004-12-15  Jackson Harper  <jackson@ximian.com>
30785
30786         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
30787         * X11Keyboard.cs: Expose the currently selected modifier keys
30788         through a property.
30789
30790 2004-12-15  Peter Bartok  <pbartok@novell.com>
30791
30792         * TextControl.cs: Initial check-in. Still incomplete
30793
30794 2004-12-15  Jackson Harper  <jackson@ximian.com>
30795
30796         * TreeNode.cs:
30797         * TreeView.cs: Fix build on csc (second time today ;-))
30798
30799 2004-12-15  Jackson Harper  <jackson@ximian.com>
30800
30801         * TreeView.cs: Store the treenodes plus/minus box bounds when it
30802         is calculated and use this for click testing.
30803         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
30804
30805 2004-12-15  Jackson Harper  <jackson@ximian.com>
30806
30807         * TreeView.cs: Pass the nodes image index to the image list when
30808         drawing that image.
30809
30810 2004-12-15  Jackson Harper  <jackson@ximian.com>
30811
30812         * X11Keyboard.cs: Set messages hwnd.
30813         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
30814         post_message calls.
30815
30816 2004-12-15  Jackson Harper  <jackson@ximian.com>
30817
30818         * X11Keyboard.cs: Fix to compile with csc.
30819         
30820 2004-12-15  Jackson Harper  <jackson@ximian.com>
30821
30822         * X11Structs.cs: Add key mask values
30823         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
30824         * X11Keyboard.cs: New file - Extrapolates and interpolates key
30825         down/up foo into WM_CHAR foo
30826         * KeyboardLayouts.cs: Common keyboard layouts
30827         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
30828         post messages into the main queue.
30829
30830 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
30831
30832         * Button.cs: implement ProcessMnemonic
30833         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
30834           brushes everytime
30835         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
30836         * ButtonBase.cs: Show HotkeyPrefix (not the &)
30837
30838 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
30839         
30840         * MonthCalendar.cs: Implemented click-hold for next/previous month
30841           and date selection
30842           
30843 2004-12-11  Peter Bartok  <pbartok@novell.com>
30844
30845         * X11Structs.cs:
30846           - Added XKeyboardState (moved from XplatUIX11.cs)
30847           - Added XCreateGC related enums and structures
30848           - Added GXFunction for XSetFunction
30849
30850         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
30851
30852         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
30853           CaretVisible() calls
30854
30855         * ToolTip.cs: Added code to prevent stealing focus from app windows
30856
30857         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
30858           DestroyCaret, SetCaretPos and CaretVisible)
30859
30860         * XplatUIX11.cs:
30861           - Added implementation for caret functions
30862           - Moved hover variables into a struct, to make it a bit easier
30863             on the eyes and to debug
30864           - Removed XKeyboardState (moved to XplatUIX11.cs)
30865           - Moved Keyboard properties into the properties region
30866
30867         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
30868           call to get a graphics context for our control
30869
30870         * XplatUIOSX.cs: Added empty overrides for the new caret functions
30871
30872         * TreeView.cs: Fixed bug. No matter what color was set it would always
30873           return SystemColors.Window
30874
30875         * XplatUIWin32.cs: Implemented caret overrides
30876
30877 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
30878
30879         * ListBox.cs: fire events, implement missing methods and properties,
30880         sorting.
30881
30882 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
30883
30884         * MonthCalendar.cs: invalidation bug fixing
30885         * ThemeWin32Classic.cs: paint fixing
30886
30887 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
30888
30889         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
30890         prepare the CGContextRef there now.
30891
30892 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
30893
30894         * MonthCalendar.cs:
30895           - optimisationL only invalidate areas that have changed
30896         * ThemeWin32Classic.cs:
30897           - only paint parts that intersect with clip_area
30898
30899 2004-12-09  Peter Bartok  <pbartok@novell.com>
30900
30901         * Application.cs: Undid changes from r37004 which cause problems
30902         on X11
30903
30904 2004-12-09  Ravindra  <rkumar@novell.com>
30905
30906         * ToolBar.cs: Added support for displaying ContextMenu
30907         attached to a button on ToolBar.
30908         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
30909         property.
30910
30911 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
30912
30913         * Label.cs: autosize works in text change and removes unnecessary
30914         invalidate
30915
30916 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
30917
30918         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
30919         remove warnings
30920
30921 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
30922
30923         * XplatUIOSX.cs: Added mouse move/click/grab support
30924         Remove some debugging WriteLines not needed anymore.
30925         Add window resizing/positioning.
30926         Fix visibility on reparenting.
30927
30928 2004-12-08  Peter Bartok  <pbartok@novell.com>
30929
30930         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
30931
30932 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
30933
30934         * XplatUIOSX.cs: Initial checkin
30935         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
30936
30937 2004-12-03  Ravindra <rkumar@novell.com>
30938
30939         * ListView.cs: Added some keybindings and fixed scrolling.
30940         ScrollBars listen to ValueChanged event instead of Scroll
30941         Event. This would let us take care of all changes being
30942         done in the scrollbars' values programmatically or manually.
30943         * ListView.cs (CanMultiselect): Added a check for shift key.
30944         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
30945         * ListViewItem.cs (Clone): Fixed. We need to make a copy
30946         of ListViewSubItemCollection as well.
30947
30948 2004-12-06  Peter Bartok <pbartok@novell.com>
30949
30950         * Control.cs (Parent): Added check and exception to prevent
30951         circular parenting
30952
30953 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
30954
30955         * ListBox.cs: implemented clipping, selection single and multiple,
30956         bug fixing
30957
30958 2004-12-03  Ravindra <rkumar@novell.com>
30959
30960         * ListView.cs (ListView_KeyDown):
30961         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
30962         when CTRL key is pressed.
30963         * ListViewItem.cs (Selected): Fixed setting the property.
30964
30965 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
30966
30967         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
30968
30969         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
30970         MinimizeBox, ShowInTaskbar, TopMost properties.
30971
30972         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
30973         will be implemented).
30974
30975 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
30976
30977         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
30978
30979         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
30980         tests.
30981         
30982         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
30983         
30984         * TreeView.cs: BackColor is Colors.Window.
30985
30986 2004-12-01  Jackson Harper  <jackson@ximian.com>
30987
30988         * TreeView.cs: When resizing the tree if the user is making it
30989         smaller we don't get expose events, so we need to handle adding
30990         the horizontal scrollbar in the size changed handler as well as
30991         the expose handler.
30992
30993 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
30994
30995         * DrawItemState.cs: fixes wrong enum values
30996
30997 2004-12-01  Jackson Harper  <jackson@ximian.com>
30998
30999         * TreeView.cs: Resize the hbar as well as the vbar on resize.
31000
31001 2004-12-01  Jackson Harper  <jackson@ximian.com>
31002
31003         * NodeLabelEditEventArgs.cs:
31004         * NodeLabelEditEventHandler.cs:
31005         * OpenTreeNodeEnumerator.cs:
31006         * TreeNode.cs:
31007         * TreeNodeCollection.cs:
31008         * TreeView.cs:
31009         * TreeViewAction.cs:
31010         * TreeViewCancelEventArgs.cs:
31011         * TreeViewCancelEventHandler.cs:
31012         * TreeViewEventArgs.cs:
31013         * TreeViewEventHandler.cs: Initial implementation.
31014
31015 2004-12-01  Ravindra <rkumar@novell.com>
31016
31017         * ListView.cs (CalculateListView): Fixed scrolling related
31018         calculations. Also, removed some debug statements from other
31019         places.
31020         * ListViewItem.cs: Changed access to 'selected' instance variable
31021         from private to internal.
31022         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
31023
31024 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
31025
31026         * ThemeWin32Classic.cs: remove cache of brush and pens for
31027         specific controls and use the global system, fixes scrollbutton
31028         bugs (for small sizes, disabled, etc)
31029         
31030         * ScrollBar.cs: does not show the thumb for very small controls
31031         (as MS) and allow smaller buttons that the regular size
31032
31033 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
31034
31035         * UpDownBase.cs: Add abstract methods for the interface.
31036         Add new virtual methods (need to be hooked up to TextEntry when it
31037         exists).
31038         Add override methods for most features.
31039         Computes the size, forces the height of the text entry.
31040
31041         * NumericUpDown.cs: Put here the current testing code.
31042
31043         * Set eol-style property on all files that do not have mixed line
31044         endings, to minimize the future problems.  There are still a few
31045         files with mixed endings, and someone should choose whether they
31046         want to move it or not.
31047
31048 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
31049
31050         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
31051         System.Colors
31052         
31053 2004-11-30  Ravindra <rkumar@novell.com>
31054
31055         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
31056         drawing and replaced use of SystemColors by theme colors.
31057         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
31058         * ListView.cs (ListViewItemCollection.Add): Throw exception when
31059         same ListViewItem is being added more than once.
31060
31061 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
31062
31063         * MonthCalendar.cs:
31064           - ControlStyles love to make the control not flicker
31065           
31066 2004-11-30  Peter Bartok  <pbartok@novell.com>
31067
31068         * CharacterCasing.cs: Added
31069
31070 2004-11-29  Peter Bartok  <pbartok@novell.com>
31071
31072         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
31073           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
31074           I am removing these files as they conflict with already completed
31075           work. While it is fantastic to get contributions to MWF, I
31076           respectfully ask that everyone please coordinate their contributions
31077           through mono-winforms-list or #mono-winforms at this time. We're
31078           explicitly avoiding stubbing and don't want controls that don't have
31079           their basic functionality implemented in svn. Please also see
31080           http://www.mono-project.com/contributing/winforms.html
31081
31082
31083 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
31084
31085         * Application.cs (ModalRun): Don't hang after exit.
31086
31087         * Theme.cs: New TreeViewDefaultSize property.
31088
31089         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
31090         with less hardcoded SystemColors constant.
31091         Implemented TreeViewDefaultSize.
31092
31093         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
31094         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
31095
31096
31097 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
31098
31099         * MonthCalendar.cs:
31100           - Fix NextMonthDate and PrevMonthDate click moving calendar
31101
31102 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
31103
31104         * MonthCalendar.cs:
31105           - Fix usage of ScrollChange Property when scrolling months
31106
31107 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
31108
31109         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
31110          - Fixes menu destroying
31111          - Support adding and removing items on already created menus
31112
31113 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
31114
31115         * MonthCalendar.cs:
31116           - Re-worked all bolded dates handling to match win32
31117         * ThemeWin32Classic.cs:
31118           - Fixed rendering with bolded dates
31119
31120 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
31121
31122         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
31123         - Horizontal scroolbar
31124         - Multicolumn
31125         - Fixes
31126
31127
31128 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
31129
31130         * MonthCalendar.cs:
31131           - Fix Usage of MaxSelectionCount from SelectionRange
31132           - Fixed Shift + Cursor Selection
31133           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
31134           - Fixed normal cursor selection to be compat with win32
31135           - Fixed Shift + Mouse Click selection
31136
31137 2004-11-24  Peter Bartok <pbartok@novell.com>
31138
31139         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
31140         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
31141         * XplatUIX11.cs:
31142           - CreatedKeyBoardMsg now updates keystate with Alt key
31143           - Added workaround for timer crash to CheckTimers, Jackson will
31144             develop a proper fix and check in later
31145           - Implemented DispatchMessage
31146           - Removed calling the native window proc from GetMessage (call
31147             now moved to DispatchMessage)
31148
31149         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
31150           the keydata (Fixes bug #69831)
31151
31152         * XplatUIWin32.cs:
31153           - (DispatchMessage): Switched to return IntPtr
31154           - Added DllImport for SetFocus
31155
31156 2004-11-24  Ravindra <rkumar@novell.com>
31157
31158         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
31159         background drawing.
31160         * ListViewItem.cs: Fixed various properties, calculations
31161         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
31162         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
31163         and some internal properties. Fixed MouseDown handler and Paint
31164         method.
31165
31166 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
31167
31168         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
31169
31170 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
31171
31172         * ContainerControl.cs: correct accidental check in of local changes
31173
31174 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
31175
31176         * ThemeWin32Classic.cs:
31177                 - Fixed Drawing Last month in grid (sometimes not showing)
31178         * MonthCalendar.cs:
31179                 - Fixed title width calculation bug (makeing title small)
31180
31181 2004-11-23  Peter Bartok <pbartok@novell.com>
31182
31183         * XplatUIX11.cs:
31184           - Added generation of WM_MOUSEHOVER event
31185           - Added missing assignment of async_method atom
31186           - Fixed WM_ERASEBKGND; now only redraws the exposed area
31187
31188 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
31189
31190         * ThemeWin32Classic.cs:
31191                 - Fixed Drawing of today circle when showtodaycircle not set
31192                 - fixed drawing of first and last month in the grid (gay dates)
31193         * MonthCalendar.cs:
31194                 - Fixed Drawing of today circle
31195                 - Fixed drawing of grady dates
31196                 - Fixed HitTest for today link when ShowToday set to false
31197                 - Fixed DefaultSize to obey ShowToday
31198
31199 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
31200
31201         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
31202         * System.Windows.Forms/Theme.cs
31203         * MonthCalendar.cs: added for MonthCalendar
31204         * SelectionRange.cs: added for MonthCalendar
31205         * Day.cs: added for MonthCalendar: added for MonthCalendar
31206         * DateRangeEventArgs.cs: added for MonthCalendar
31207         * DateRangeEventHandler.cs: added for MonthCalendar
31208
31209 2004-11-22  Ravindra <rkumar@novell.com>
31210
31211         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
31212         property.
31213
31214 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
31215
31216         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
31217         event handler.
31218         
31219         * NumericUpDown.cs: Added new implementation.
31220         * UpDownBase.cs: Added new implementation.
31221
31222         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
31223         implementations.
31224         
31225         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
31226         implementations.
31227
31228         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
31229         methods.
31230
31231 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
31232
31233         * Timer.cs  (Dispose): Should call the base dispose when
31234         overriding.
31235
31236 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
31237
31238         * ScrollBar.cs: updates thumb position when max, min or increment
31239         is changed
31240
31241 2004-11-21  Ravindra <rkumar@novell.com>
31242
31243         * ListView.cs: Implemented item selection, activation and
31244         column header style. Fixed properties to do a redraw, if
31245         required. Added support for MouseHover, DoubleClick, KeyDown
31246         and KeyUp event handling and some minor fixes.
31247         * ListViewItem.cs: Fixed constructor.
31248         * ThemeWin32Classic.cs: Improved drawing for ListView.
31249
31250 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
31251
31252         * ThemeWin32Classic.cs: initial listbox drawing code
31253         * DrawMode.cs: new enumerator
31254         * ListControl.cs: stubbed class
31255         * ListBox.cs: initial implementation
31256         * Theme.cs: new methods definitions
31257         * SelectionMode.cs: new enumerator
31258
31259 2004-11-17  Peter Bartok  <pbartok@novell.com>
31260
31261         * XplatUIWin32.cs: Added double-click events to the class style
31262         * Control.cs (WndProc):
31263           - Added handling of click-count to MouseDown/ MouseUp events.
31264           - Added handling of middle and right mouse buttons
31265           - Removed old debug code
31266
31267 2004-11-17  Jackson Harper  <jackson@ximian.com>
31268
31269         * XplatUIX11.cs: Use the new Mono.Unix namespace.
31270
31271 2004-11-17  Ravindra <rkumar@novell.com>
31272
31273         * ListView.cs: Added event handling for MouseMove/Up/Down.
31274         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
31275         * ThemeWin32Classic.cs: We need to clear the graphics context and
31276         draw column header in a proper state.
31277
31278
31279 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
31280
31281         *  Menu.cs: fixes signature
31282
31283 2004-11-16  Peter Bartok  <pbartok@novell.com>
31284
31285         * XplatUIX11.cs (GetMessage): Implemented generation of
31286           double click mouse messages
31287
31288 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
31289
31290         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
31291         not by menu
31292
31293 2004-11-11  Peter Bartok  <pbartok@novell.com>
31294
31295         * HandleData.cs: Added Visible property
31296         * XplatUIX11.cs (IsVisible): Now uses Visible property from
31297           HandleData
31298         * XplatUIX11.cs: Removed old debug leftovers
31299         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
31300         * Control.cs (WndProc): Removed old debug leftovers,
31301           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
31302           needed WM_SIZE handling
31303
31304 2004-11-11  Jackson Harper  <jackson@ximian.com>
31305
31306         * OwnerDrawPropertyBag.cs:
31307         * TreeViewImageIndexConverter.cs: Initial implementation
31308
31309 2004-11-10  Jackson Harper  <jackson@ximian.com>
31310
31311         * ThemeWin32Classic.cs:
31312         * TabControl.cs: instead of moving tabs by the slider pos just
31313         start drawing at the tab that is offset by the slider. This way
31314         scrolling always moves by exactly one tab.
31315
31316 2004-11-10  Jackson Harper  <jackson@ximian.com>
31317
31318         * TabControl.cs: You can only scroll left when the slider has
31319         already ben moved right.
31320         
31321 2004-11-10  Jackson Harper  <jackson@ximian.com>
31322
31323         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
31324         the clip area.
31325         
31326 2004-11-10  Jackson Harper  <jackson@ximian.com>
31327
31328         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
31329         clip area.
31330         
31331 2004-11-09  Jackson Harper  <jackson@ximian.com>
31332
31333         * TabControl.cs (CalcXPos): New helper method so we can determine
31334         the proper place to start drawing vertical tabs.
31335         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
31336         
31337 2004-11-09  Jackson Harper  <jackson@ximian.com>
31338
31339         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
31340         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
31341         and Bottom, left and right are illegal values for this and
31342         multiline is enabled when the alignment is set to left or right.
31343         (DrawTab): Each alignment block should draw the text itself now
31344         because Left requires special love. Also add rendering for Left
31345         aligned tabs.
31346         
31347 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
31348
31349         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
31350         does not destroy the windows, removes debugging messages
31351
31352 2004-11-09  jba  <jba-mono@optusnet.com.au>
31353
31354         * ThemeWin32Classic.cs
31355         (DrawButtonBase): Fix verticle text rect clipping in windows
31356         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
31357         rendering and incorrect text rect clipping
31358         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
31359         rendering and incorrect text rect clipping
31360         
31361 2004-11-08  Jackson Harper  <jackson@ximian.com>
31362
31363         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
31364         bottom when they are bottom aligned so the bottoms of the tabs get
31365         displayed.
31366         * TabControl.cs (DropRow): Move rows up instead of down when the
31367         tab control is bottom aligned.
31368
31369 2004-11-08 13:59  pbartok
31370
31371         * XplatUIX11.cs:
31372           - Added handling for various window styles
31373           - Added handling for popup windows
31374           - Added SetTopmost handling
31375
31376 2004-11-08 13:55  pbartok
31377
31378         * XplatUIWin32.cs:
31379           - Added argument to SetTopmost method
31380           - Fixed broken ClientToScreen function
31381
31382 2004-11-08 13:53  pbartok
31383
31384         * XplatUIStructs.cs:
31385           - Added missing WS_EX styles
31386
31387 2004-11-08 13:53  pbartok
31388
31389         * XplatUI.cs, XplatUIDriver.cs:
31390           - Added argument to SetTopmost
31391
31392 2004-11-08 13:52  pbartok
31393
31394         * X11Structs.cs:
31395           - Added XSetWindowAttributes structure
31396           - Improved XWindowAttributes structure
31397           - Added SetWindowValuemask enum
31398           - Added window creation arguments enum
31399           - Added gravity enum
31400           - Added Motif hints structure
31401           - Added various Motif flags and enums
31402           - Added PropertyMode enum for property functions
31403
31404 2004-11-08 13:50  pbartok
31405
31406         * Form.cs:
31407           - Fixed arguments for updated SetTopmost method
31408
31409 2004-11-08 13:49  pbartok
31410
31411         * ToolTip.cs:
31412           - Fixed arguments for updated SetTopmost function
31413           - Fixed usage of PointToClient
31414
31415 2004-11-08 13:44  pbartok
31416
31417         * MenuAPI.cs:
31418           - Added Clipping of children and siblings
31419
31420 2004-11-08 13:41  pbartok
31421
31422         * MainMenu.cs:
31423           - Removed SetMenuBarWindow call. We do this in Form.cs
31424
31425 2004-11-08 13:40  jackson
31426
31427         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
31428           scrolling jimmi in the correct location with bottom aligned tabs
31429
31430 2004-11-08 13:36  pbartok
31431
31432         * ContainerControl.cs:
31433           - Implemented BindingContext
31434           - Implemented ParentForm
31435
31436 2004-11-08 12:46  jackson
31437
31438         * TabControl.cs: Put bottom rendered tabs in the right location
31439
31440 2004-11-08 07:15  jordi
31441
31442         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
31443           removes dead code
31444
31445 2004-11-05 17:30  jackson
31446
31447         * TabControl.cs: When selected tabs are expanded make sure they
31448           don't go beyond the edges of the tab control
31449
31450 2004-11-05 14:57  jackson
31451
31452         * TabControl.cs: Reset show_slider so if the control is resized to
31453           a size where it is no longer needed it's not displayed anymore
31454
31455 2004-11-05 13:16  jackson
31456
31457         * TabControl.cs: Make tab pages non visible when added to the
31458           control
31459
31460 2004-11-05 12:42  jackson
31461
31462         * TabControl.cs: Implement SizeMode.FillToRight
31463
31464 2004-11-05 12:16  jackson
31465
31466         * Control.cs: Do not call CreateHandle if the handle is already
31467           created
31468
31469 2004-11-05 11:46  jackson
31470
31471         * TabControl.cs: Remove superflous call to CalcTabRows
31472
31473 2004-11-05 09:07  jackson
31474
31475         * XplatUIX11.cs: Update for Mono.Posix changes
31476
31477 2004-11-05 07:00  ravindra
31478
31479         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
31480           scrolling.
31481
31482 2004-11-04 22:47  jba
31483
31484         * ThemeWin32Classic.cs:
31485           - Fix Button rendering for FlatStyle = Flat or Popup
31486           - Fix RadioButton and CheckBox rendering when Appearance = Button
31487             (normal and flatstyle).
31488           - Correct outer rectangle color when drawing focus rectangle
31489           - Adjust button bounds to be 1 px smaller when focused
31490           - Make button not draw sunken 3d border when pushed (windows compat)
31491           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
31492           - Offset the text in RadioButton and Checkbox when being rendered as
31493           a button.
31494           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
31495           radiobuttons
31496           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
31497           - Fixed disabled text rendering for normally rendered radiobuttons
31498
31499 2004-11-04 10:26  jackson
31500
31501         * TabControl.cs: Recalculate tab rows when resizing
31502
31503 2004-11-04 07:47  jordi
31504
31505         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
31506           collection completion, drawing issues, missing features
31507
31508 2004-11-04 05:03  ravindra
31509
31510         * ScrollBar.cs:
31511                 - We need to recalculate the Thumb area when
31512                 LargeChange/maximum/minimum values are changed.
31513           - We set the 'pos' in UpdatePos() method to minimum, if it's less
31514                 than minimum. This is required to handle the case if large_change is
31515                 more than max, and use LargeChange property instead of large_change
31516                 variable.
31517           - We return max+1 when large_change is more than max, like MS does.
31518
31519 2004-11-04 04:29  ravindra
31520
31521         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
31522                 - Changed default value signatures (prefixed all with ListView).
31523                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
31524                 ListView.
31525           - Fixed calculations for ListViewItem and implemented Clone()
31526           method.
31527
31528 2004-11-04 04:26  ravindra
31529
31530         * Theme.cs, ThemeWin32Classic.cs:
31531                 - Changed default ListView values signatures (prefixed all with
31532                 ListView).
31533           - Fixed default size values for VScrollBar and HScrollBar.
31534                 - Fixed DrawListViewItem method.
31535
31536 2004-11-04 04:05  ravindra
31537
31538         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
31539
31540 2004-11-04 04:04  ravindra
31541
31542         * ImageList.cs: Implemented the missing overload for Draw method.
31543
31544 2004-11-03 19:29  jackson
31545
31546         * TabControl.cs: Handle dropping rows on selection properly
31547
31548 2004-11-03 11:59  jackson
31549
31550         * TabControl.cs: remove debug code
31551
31552 2004-11-03 11:52  jackson
31553
31554         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
31555           the scrolly widgerywoo
31556
31557 2004-11-02 13:52  jackson
31558
31559         * TabControl.cs: Resize the tab pages and tabs when the tab control
31560           is resized
31561
31562 2004-11-02 13:40  jackson
31563
31564         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
31565           selected tab to the bottom
31566
31567 2004-11-02 13:39  jackson
31568
31569         * TabPage.cs: Store the tab pages row
31570
31571 2004-11-02 12:33  jordi
31572
31573         * MenuItem.cs: fixes handle creation
31574
31575 2004-11-02 11:42  jackson
31576
31577         * TabControl.cs: signature fix
31578
31579 2004-11-02 08:56  jackson
31580
31581         * TabControl.cs: Calculate whether the tab is on an edge properly.
31582           Remove top secret debugging code
31583
31584 2004-11-01 19:57  jackson
31585
31586         * TabControl.cs: Add click handling, and proper sizing
31587
31588 2004-11-01 19:47  jackson
31589
31590         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
31591           tab controls
31592
31593 2004-11-01 19:39  jackson
31594
31595         * TabPage.cs: add internal property to store the bounds of a tab
31596           page
31597
31598 2004-10-30 04:23  ravindra
31599
31600         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
31601           values.
31602
31603 2004-10-30 04:21  ravindra
31604
31605         * ListView.cs, ListViewItem.cs: Added support for scrolling and
31606           fixed calculations.
31607
31608 2004-10-30 03:06  pbartok
31609
31610         * XplatUIX11.cs:
31611           - Removed extension of DllImported libs
31612
31613 2004-10-29 09:55  jordi
31614
31615         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
31616           navigation, itemcollection completion, menu fixes
31617
31618 2004-10-27 22:58  pbartok
31619
31620         * XplatUIX11.cs:
31621           - Now throws a nice error message when no X display could be opened
31622
31623 2004-10-26 13:51  jordi
31624
31625         * ListView.cs: removes warning
31626
31627 2004-10-26 03:55  ravindra
31628
31629         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
31630           ThemeWin32Classic.cs: Some formatting for my last checkins.
31631
31632 2004-10-26 03:36  ravindra
31633
31634         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
31635           control and default values.
31636
31637 2004-10-26 03:35  ravindra
31638
31639         * Theme.cs: Added some default values for ListView control.
31640
31641 2004-10-26 03:33  ravindra
31642
31643         * ToolBar.cs: ToolBar should use the user specified button size, if
31644           there is any. Added a size_specified flag for the same.
31645
31646 2004-10-26 03:33  ravindra
31647
31648         * ColumnHeader.cs: Added some internal members and calculations for
31649           ColumnHeader.
31650
31651 2004-10-26 03:32  ravindra
31652
31653         * ListViewItem.cs: Calculations for ListViewItem.
31654
31655 2004-10-26 03:31  ravindra
31656
31657         * ListView.cs: Added some internal members and calculations for
31658           ListView.
31659
31660 2004-10-22 13:31  jordi
31661
31662         * MenuAPI.cs: speedup menus drawing
31663
31664 2004-10-22 13:16  jackson
31665
31666         * XplatUIX11.cs: Make sure to update exposed regions when adding an
31667           expose event
31668
31669 2004-10-22 11:49  jackson
31670
31671         * Control.cs: oops
31672
31673 2004-10-22 11:41  jackson
31674
31675         * Control.cs: Check to see if the window should have its background
31676           repainted by X when drawing.
31677
31678 2004-10-22 11:31  jackson
31679
31680         * XplatUIX11.cs: When invalidating areas only use XClearArea if
31681           clear is true, this way we do not get flicker from X repainting the
31682           background
31683
31684 2004-10-22 11:28  jackson
31685
31686         * XEventQueue.cs: Queue properly
31687
31688 2004-10-21 09:38  jackson
31689
31690         * XEventQueue.cs: Fix access modifier
31691
31692 2004-10-21 09:36  jackson
31693
31694         * XEventQueue.cs: Don't loose messages
31695
31696 2004-10-21 09:22  jackson
31697
31698         * XEventQueue.cs: Don't loose messages
31699
31700 2004-10-20 04:15  jordi
31701
31702         * BootMode.cs: enum need it by SystemInfo
31703
31704 2004-10-19 21:58  pbartok
31705
31706         * XplatUIWin32.cs:
31707           - Small sanity check
31708
31709 2004-10-19 21:56  pbartok
31710
31711         * Form.cs:
31712           - Added private FormParentWindow class which acts as the container
31713             for our form and as the non-client area where menus are drawn
31714           - Added/Moved required tie-ins to Jordi's menus
31715           - Fixed/Implemented the FormStartPosition functionality
31716
31717 2004-10-19 21:52  pbartok
31718
31719         * Control.cs:
31720           - Removed unneeded locals
31721           - Added code to all size and location properties to understand and
31722             deal with the parent container of Form
31723
31724 2004-10-19 21:33  pbartok
31725
31726         * Application.cs:
31727           - Fixed to deal with new Form subclasses for menus
31728
31729 2004-10-19 17:48  jackson
31730
31731         * XEventQueue.cs: commit correct version of file
31732
31733 2004-10-19 16:50  jackson
31734
31735         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
31736
31737 2004-10-19 16:15  jordi
31738
31739         * MenuAPI.cs: MenuBarCalcSize returns the height
31740
31741 2004-10-19 08:31  pbartok
31742
31743         * Control.cs:
31744           - Added missing call to PreProcessMessage before calling OnXXXKey
31745           methods
31746
31747 2004-10-19 00:04  ravindra
31748
31749         * ToolTip.cs: Fixed constructor.
31750
31751 2004-10-18 09:31  jordi
31752
31753         * MenuAPI.cs: menuitems in menubars do not have shortcuts
31754
31755 2004-10-18 09:26  jordi
31756
31757         * MenuItem.cs: fixes MenuItem class signature
31758
31759 2004-10-18 08:56  jordi
31760
31761         * MenuAPI.cs: prevents windows from showing in the taskbar
31762
31763 2004-10-18 00:28  ravindra
31764
31765         * ToolTip.cs: Suppressed a warning message.
31766
31767 2004-10-18 00:27  ravindra
31768
31769         * Control.cs: Default value of visible property must be true.
31770
31771 2004-10-17 23:19  pbartok
31772
31773         * ToolTip.cs:
31774           - Complete implementation
31775
31776 2004-10-17 23:19  pbartok
31777
31778         * XplatUIX11.cs:
31779           - Added EnableWindow method
31780           - Added SetModal stub
31781           - Added generation of WM_ACTIVATE message (still needs testing)
31782           - Added SetTopMost stub
31783           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
31784
31785 2004-10-17 23:17  pbartok
31786
31787         * XplatUIWin32.cs:
31788           - Removed VirtualKeys to XplatUIStructs
31789           - Implemented SetTopMost method
31790           - Implemented EnableWindow method
31791           - Bugfix in ScreenToClient()
31792           - Bugfixes in ClientToScreen()
31793
31794 2004-10-17 22:51  pbartok
31795
31796         * XplatUIStructs.cs:
31797           - Added WS_EX styles to WindowStyles enumeration
31798
31799 2004-10-17 22:50  pbartok
31800
31801         * XplatUI.cs, XplatUIDriver.cs:
31802           - Added method for enabling/disabling windows
31803           - Added method for setting window modality
31804           - Added method for setting topmost window
31805
31806 2004-10-17 22:49  pbartok
31807
31808         * ThemeWin32Classic.cs:
31809           - Added ToolTip drawing code
31810
31811 2004-10-17 22:49  pbartok
31812
31813         * Theme.cs:
31814           - Added ToolTip abstracts
31815
31816 2004-10-17 22:47  pbartok
31817
31818         * Form.cs:
31819           - Fixed Form.ControlCollection to handle owner relations
31820           - Added Owner/OwnedForms handling
31821           - Implemented Z-Ordering for owned forms
31822           - Removed unneeded private overload of ShowDialog
31823           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
31824             so I hope)
31825           - Fixed Close(), had wrong default
31826           - Added firing of OnLoad event
31827           - Added some commented out debug code for Ownership handling
31828
31829 2004-10-17 22:16  pbartok
31830
31831         * Control.cs:
31832           - Fixed/implemented flat list of controls
31833
31834 2004-10-17 22:14  pbartok
31835
31836         * Application.cs:
31837           - Added code to simulate modal dialogs on Win32
31838
31839 2004-10-17 16:11  jordi
31840
31841         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
31842           mouse event
31843
31844 2004-10-17 13:39  jordi
31845
31846         * MenuAPI.cs: menu drawing fixes
31847
31848 2004-10-15 09:10  ravindra
31849
31850         * StructFormat.cs: General Enum.
31851
31852 2004-10-15 09:09  ravindra
31853
31854         * SizeGripStyle.cs: Enum for Form.
31855
31856 2004-10-15 09:08  ravindra
31857
31858         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
31859           in Theme for ListView.
31860
31861 2004-10-15 09:06  ravindra
31862
31863         * ColumnHeader.cs: Flushing some formatting changes.
31864
31865 2004-10-15 09:05  ravindra
31866
31867         * ListViewItem.cs: Implemented GetBounds method and fixed coding
31868           style.
31869
31870 2004-10-15 09:03  ravindra
31871
31872         * ListView.cs: Implemented Paint method and fixed coding style.
31873
31874 2004-10-15 07:34  jordi
31875
31876         * MenuAPI.cs: fix for X11
31877
31878 2004-10-15 07:32  ravindra
31879
31880         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
31881                 - Renamed Paint() method to Draw() for clarity. Also, moved
31882                 DrawImage() to OnPaint().
31883
31884 2004-10-15 07:25  ravindra
31885
31886         * CheckBox.cs, RadioButton.cs:
31887                 - Removed Redraw (), we get it from ButtonBase.
31888                 - Implemented Paint (), to do class specific painting.
31889
31890 2004-10-15 07:16  ravindra
31891
31892         * ButtonBase.cs:
31893                 - Redraw () is not virtual now.
31894                 - Added an internal virtual method Paint (), so that
31895                 derived classes can do their painting on their own.
31896                 - Modified OnPaint () to call Paint ().
31897
31898 2004-10-15 06:43  jordi
31899
31900         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
31901           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
31902
31903 2004-10-15 00:30  ravindra
31904
31905         * MessageBox.cs:
31906                 - MessageBox on windows does not have min/max buttons.
31907                 This change in CreateParams fixes this on Windows. We
31908                 still need to implement this windowstyle behavior in
31909                 our X11 driver.
31910
31911 2004-10-14 05:14  ravindra
31912
31913         * ToolBar.cs:
31914                 - Changed Redraw () to do a Refresh () always.
31915                 - Fixed the MouseMove event handling when mouse is pressed,
31916                 ie drag event handling.
31917                 - Replaced the usage of ToolBarButton.Pressed property to
31918                 ToolBarButton.pressed internal variable.
31919
31920 2004-10-14 05:10  ravindra
31921
31922         * ToolBarButton.cs:
31923                 - Added an internal member 'inside' to handle mouse move
31924                 with mouse pressed ie mouse drag event.
31925                 - Changed 'Pressed' property to return true only when
31926                 'inside' and 'pressed' are both true.
31927                 - Some coding style love.
31928
31929 2004-10-14 00:17  ravindra
31930
31931         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
31932           public method.
31933
31934 2004-10-14 00:15  ravindra
31935
31936         * ButtonBase.cs: Redraw () related improvements.
31937
31938 2004-10-14 00:14  ravindra
31939
31940         * MessageBox.cs: Moved InitFormSize () out of Paint method and
31941           removed unnecessary calls to Button.Show () method.
31942
31943 2004-10-13 17:50  pbartok
31944
31945         * XplatUIX11.cs:
31946           - Formatting fix
31947           - Removed destroying of window until we solve the problem of X
31948             destroying the window before us on shutdown
31949
31950 2004-10-13 16:32  pbartok
31951
31952         * ButtonBase.cs:
31953           - Now Redraws on MouseUp for FlatStyle Flat and Popup
31954
31955 2004-10-13 14:18  pbartok
31956
31957         * XplatUIX11.cs:
31958           - Added code to destroy the X window
31959
31960 2004-10-13 14:18  pbartok
31961
31962         * XplatUIWin32.cs:
31963           - Added code to destroy a window
31964
31965 2004-10-13 14:12  pbartok
31966
31967         * ButtonBase.cs:
31968           - Added the Redraw on Resize that got dropped in the last rev
31969
31970 2004-10-13 09:06  pbartok
31971
31972         * ThemeWin32Classic.cs:
31973           - Path from John BouAntoun:
31974             * Fix check rendering (centre correctly for normal style, offset
31975               correctly for FlatStyle).
31976             * Fix border color usage (use backcolor) for FlatStyle.Popup
31977             * Use checkbox.Capture instead of checkbox.is_pressed when
31978               rendering flatstyle states.
31979
31980 2004-10-12 21:48  pbartok
31981
31982         * ThemeWin32Classic.cs:
31983           - Removed all occurences of SystemColors and replaced them with the
31984             matching theme color
31985
31986 2004-10-12 21:41  pbartok
31987
31988         * ThemeWin32Classic.cs:
31989           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
31990             him using the function for flatstyle drawing
31991           - Changed functions to use the new version of CPDrawBorder3D
31992
31993 2004-10-12 21:15  pbartok
31994
31995         * ControlPaint.cs:
31996           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
31997             match MS documentation. They need to return defined colors if the
31998             passed color matches the configured control color. Thanks to John
31999             BouAntoun for pointing this out.
32000
32001 2004-10-12 20:57  pbartok
32002
32003         * Control.cs:
32004           - Fix from John BouAntoun: Raise ForeColorChanged event when text
32005             color is changed
32006
32007 2004-10-12 20:46  pbartok
32008
32009         * CheckBox.cs:
32010           - Fix from John BouAntoun: Now properly sets the Appearance property
32011
32012 2004-10-12 20:45  pbartok
32013
32014         * ThemeWin32Classic.cs:
32015           - Fixes from John BouAntoun: now handles forecolors and backcolors
32016             for flatstyle rendered controls much better; It also fixes normal
32017             checkbox rendering when pushed or disabled.
32018
32019 2004-10-08 02:50  jordi
32020
32021         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
32022           work
32023
32024 2004-10-07 08:56  jordi
32025
32026         * ThemeWin32Classic.cs: Removes deletion of cached brushes
32027
32028 2004-10-06 03:59  jordi
32029
32030         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
32031           XplatUIWin32.cs: removes warnings from compilation
32032
32033 2004-10-05 12:23  jackson
32034
32035         * RadioButton.cs: Fix ctor
32036
32037 2004-10-05 11:10  pbartok
32038
32039         * MessageBox.cs:
32040           - Partial implementation by Benjamin Dasnois
32041
32042 2004-10-05 10:15  jackson
32043
32044         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
32045           by John BouAntoun
32046
32047 2004-10-05 03:07  ravindra
32048
32049         * ToolBar.cs:
32050                 - Removed a private method, Draw ().
32051                 - Fixed the ButtonDropDown event handling.
32052                 - Fixed MouseMove event handling.
32053
32054 2004-10-05 03:04  ravindra
32055
32056         * ThemeWin32Classic.cs:
32057                 - Added DrawListView method and ListViewDefaultSize property.
32058                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
32059                 - Changed DOS style CRLF to Unix format (dos2unix).
32060
32061 2004-10-05 03:03  ravindra
32062
32063         * Theme.cs:
32064                 - Added DrawListView method and ListViewDefaultSize property.
32065
32066 2004-10-05 02:42  ravindra
32067
32068         * ToolBarButton.cs: Added an internal member dd_pressed to handle
32069           clicks on DropDown arrow.
32070
32071 2004-10-04 22:56  jackson
32072
32073         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
32074           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
32075           Control handle the buffers, derived classes should not have to
32076           CreateBuffers themselves.
32077
32078 2004-10-04 21:20  jackson
32079
32080         * StatusBar.cs: The control handles resizing the buffers now.
32081
32082 2004-10-04 21:18  jackson
32083
32084         * Control.cs: When resizing the buffers should be invalidated. This
32085           should be handled in Control not in derived classes.
32086
32087 2004-10-04 14:45  jackson
32088
32089         * TabPage.cs: oops
32090
32091 2004-10-04 02:14  pbartok
32092
32093         * LeftRightAlignment.cs:
32094           - Initial check-in
32095
32096 2004-10-04 01:09  jordi
32097
32098         * ThemeWin32Classic.cs: fixes right button position causing right
32099           button not showing on horizontal scrollbars
32100
32101 2004-10-02 13:12  pbartok
32102
32103         * XplatUIX11.cs:
32104           - Simplified the Invalidate method by using an X call instead of
32105             generating the expose ourselves
32106           - Added an expose when the window background is changed
32107           - Implemented ClientToScreen method
32108
32109 2004-10-02 13:08  pbartok
32110
32111         * XplatUIWin32.cs:
32112           - Added Win32EnableWindow method (test for implementing modal
32113           dialogs)
32114           - Added ClientToScreen method and imports
32115
32116 2004-10-02 13:07  pbartok
32117
32118         * XplatUI.cs, XplatUIDriver.cs:
32119           - Added ClientToScreen coordinate translation method
32120
32121 2004-10-02 13:06  pbartok
32122
32123         * KeyPressEventArgs.cs:
32124           - Fixed access level for constructor
32125
32126 2004-10-02 13:06  pbartok
32127
32128         * NativeWindow.cs:
32129           - Changed access level for the window_collection hash table
32130
32131 2004-10-02 13:05  pbartok
32132
32133         * Form.cs:
32134           - Added KeyPreview property
32135           - Added Menu property (still incomplete, pending Jordi's menu work)
32136           - Implemented ProcessCmdKey
32137           - Implemented ProcessDialogKey
32138           - Implemented ProcessKeyPreview
32139
32140 2004-10-02 13:02  pbartok
32141
32142         * Control.cs:
32143           - Added private method to get the Control object from the window
32144           handle
32145           - Implemented ContextMenu property
32146           - Implemented PointToScreen
32147           - Implemented PreProcessMessage
32148           - Implemented IsInputChar
32149           - Implemented IsInputKey
32150           - Implemented ProcessCmdKey
32151           - Completed ProcessKeyEventArgs
32152           - Fixed message loop to call the proper chain of functions on key
32153           events
32154           - Implemented ProcessDialogChar
32155           - Implemented ProcessDialogKey
32156           - Implemented ProcessKeyMessage
32157           - Implemented ProcessKeyPreview
32158           - Added RaiseDragEvent stub (MS internal method)
32159           - Added RaiseKeyEvent stub (MS internal method)
32160           - Added RaiseMouseEvent stub (MS Internal method)
32161           - Added RaisePaintEvent stub (MS Internal method)
32162           - Added ResetMouseEventArgs stub (MS Internal method)
32163           - Implemented RtlTranslateAlignment
32164           - Implemented RtlTranslateContent
32165           - Implemented RtlTranslateHorizontal
32166           - Implemented RtlTranslateLeftRight
32167           - Added generation of KeyPress event
32168
32169 2004-10-02 05:57  ravindra
32170
32171         * ListViewItem.cs: Added attributes.
32172
32173 2004-10-02 05:32  ravindra
32174
32175         * ListView.cs: Added attributes.
32176
32177 2004-10-01 11:53  jackson
32178
32179         * Form.cs: Implement the Close method so work on MessageBox can
32180           continue.
32181
32182 2004-09-30 14:06  pbartok
32183
32184         * XplatUIX11.cs:
32185           - Bug fixes
32186
32187 2004-09-30 11:34  jackson
32188
32189         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
32190
32191 2004-09-30 07:26  ravindra
32192
32193         * ListViewItemConverter.cs: Converter for ListViewItem.
32194
32195 2004-09-30 07:26  ravindra
32196
32197         * SortOrder.cs: Enum for ListView control.
32198
32199 2004-09-30 07:25  ravindra
32200
32201         * ColumnHeader.cs: Supporting class for ListView control.
32202
32203 2004-09-30 07:24  ravindra
32204
32205         * ListView.cs, ListViewItem.cs: Initial implementation.
32206
32207 2004-09-30 07:20  ravindra
32208
32209         * ItemActivation.cs: Enum for ListView Control.
32210
32211 2004-09-29 20:29  pbartok
32212
32213         * XplatUIX11.cs:
32214           - Added lookup of pixel value for background color; tries to get a
32215             color 'close' to the requested color, it avoids having to create a
32216             colormap.  Depending on the display this could mean the used color
32217             is slightly off the desired color. Might have to change it to a more
32218             resource intensive colormap approach, but it will work as a
32219           workaround to avoid red screens.
32220
32221 2004-09-29 14:27  jackson
32222
32223         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
32224
32225 2004-09-28 12:44  pbartok
32226
32227         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
32228           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
32229           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
32230           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
32231           TrackBar.cs, VScrollBar.cs:
32232           - Streamlined Theme interfaces:
32233             * Each DrawXXX method for a control now is passed the object for
32234               the control to be drawn in order to allow accessing any state the
32235               theme might require
32236
32237             * ControlPaint methods for the theme now have a CP prefix to avoid
32238               name clashes with the Draw methods for controls
32239
32240             * Every control now retrieves it's DefaultSize from the current
32241             theme
32242
32243 2004-09-28 12:17  jackson
32244
32245         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
32246           drawing
32247
32248 2004-09-24 14:57  jackson
32249
32250         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
32251           Gives us a nice little performance boost.
32252
32253 2004-09-24 12:02  jackson
32254
32255         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
32256           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
32257           Control and supporting classes. Initial checkin
32258
32259 2004-09-23 13:08  jackson
32260
32261         * Form.cs: Temp build fixage
32262
32263 2004-09-23 01:39  ravindra
32264
32265         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
32266           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
32267           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
32268           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
32269           EventHandlers needed by ListView Control.
32270
32271 2004-09-22 14:12  pbartok
32272
32273         * ScrollableControl.cs:
32274           - Implemented DockPadding property
32275           - Implemented AutoScroll property
32276           - Implemented AutoScrollMargin property
32277           - Implemented AutoScrollMinSize property
32278           - Implemented AutoScrollPosition property
32279           - Implemented DisplayRectangle property (still incomplete)
32280           - Implemented CreateParams property
32281           - Implemented HScroll property
32282           - Implemented VScroll property
32283           - Implemented OnVisibleChanged property
32284
32285 2004-09-22 14:09  pbartok
32286
32287         * Form.cs:
32288           - Added Form.ControllCollection class
32289           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
32290             RemoveOwnedForm (still incomplete, missing on-top and common
32291             minimize/maximize behaviour)
32292           - Added StartPosition property (still incomplete, does not use when
32293             creating the form)
32294           - Added ShowDialog() methods (still incomplete, missing forcing the
32295             dialog modal)
32296
32297 2004-09-22 14:05  pbartok
32298
32299         * Application.cs:
32300           - Added message loop for modal dialogs
32301
32302 2004-09-22 14:02  pbartok
32303
32304         * GroupBox.cs:
32305           - Fixed wrong types for events
32306
32307 2004-09-22 14:00  pbartok
32308
32309         * Shortcut.cs, FormWindowState.cs:
32310           - Fixed wrong values
32311
32312 2004-09-22 12:01  jackson
32313
32314         * Control.cs: Text is never null
32315
32316 2004-09-20 22:14  pbartok
32317
32318         * XplatUIWin32.cs:
32319           - Fixed accessibility level for Idle handler
32320
32321 2004-09-20 18:54  jackson
32322
32323         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
32324           XplatUIX11.cs: New message loop that uses poll so we don't get a
32325           busy loop
32326
32327 2004-09-17 10:43  pbartok
32328
32329         * ScrollBar.cs:
32330           - Fixed behaviour of arrow buttons. Now properly behaves like
32331             Buttons (and like Microsoft's scrollbar arrow buttons)
32332
32333 2004-09-17 10:14  pbartok
32334
32335         * ScrollBar.cs:
32336           - Added missing release of keyboard/mouse capture
32337
32338 2004-09-17 06:18  jordi
32339
32340         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
32341           Theme.cs: Very early menu support
32342
32343 2004-09-16 17:45  pbartok
32344
32345         * XplatUIWin32.cs:
32346           - Fixed sending a window to the front
32347           - Added overload for SetWindowPos to avoid casting
32348
32349 2004-09-16 17:44  pbartok
32350
32351         * Control.cs:
32352           - Added SendToBack and BringToFront methods
32353
32354 2004-09-16 07:00  ravindra
32355
32356         * Copyright: Added Novell URL.
32357
32358 2004-09-16 07:00  ravindra
32359
32360         * ToolBar.cs: Invalidate should be done before redrawing.
32361
32362 2004-09-15 21:19  ravindra
32363
32364         * ColumnHeaderStyle.cs: Enum for ListView Control.
32365
32366 2004-09-15 21:18  ravindra
32367
32368         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
32369           ListView Control.
32370
32371 2004-09-13 18:26  jackson
32372
32373         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
32374           properly
32375
32376 2004-09-13 18:13  jackson
32377
32378         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
32379           a second thread and post messages into the main threads message
32380           queue. This makes timing much more consistent. Both win2K and XP
32381           have a minimum timer value of 15 milliseconds, so we now do this
32382           too.
32383
32384 2004-09-13 15:18  pbartok
32385
32386         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
32387           XplatUIX11.cs:
32388           - Added Z-Ordering methods
32389
32390 2004-09-13 10:56  pbartok
32391
32392         * Form.cs:
32393           - Fixed #region names
32394           - Moved properties and methods into their proper #regions
32395
32396 2004-09-13 10:51  pbartok
32397
32398         * Form.cs:
32399           - Added Accept and CancelButton properties
32400           - Added ProcessDialogKey() method
32401
32402 2004-09-13 08:18  pbartok
32403
32404         * IWindowTarget.cs:
32405           - Initial check-in
32406
32407 2004-09-10 21:50  pbartok
32408
32409         * Control.cs:
32410           - Added DoDragDrop() [incomplete]
32411           - Properly implemented 'Visible' handling
32412           - Added SetVisibleCore()
32413           - Implemented FindChildAtPoint()
32414           - Implemented GetContainerControl()
32415           - Implemented Hide()
32416
32417 2004-09-10 19:28  pbartok
32418
32419         * Control.cs:
32420           - Moved methods into their appropriate #regions
32421           - Reordered methods within regions alphabetically
32422
32423 2004-09-10 18:57  pbartok
32424
32425         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
32426           - Added method to retrieve text from window
32427
32428 2004-09-10 18:56  pbartok
32429
32430         * Control.cs:
32431           - Moved some internal functions into the internal region
32432           - Implemented FontHeight
32433           - Implemented RenderRightToLeft
32434           - Implemented ResizeRedraw
32435           - Implemented ShowFocusCues
32436           - Implemented ShowKeyboardCues
32437           - Implemented FromChildHandle
32438           - Implemented FromHandle
32439           - Implemented IsMnemonic
32440           - Implemented ReflectMessage
32441           - All public and protected Static Methods are now complete
32442
32443 2004-09-10 16:54  pbartok
32444
32445         * Control.cs:
32446           - Implemented remaining missing public instance properties
32447           - Alphabetized some out of order properties
32448
32449 2004-09-10 05:51  ravindra
32450
32451         * PictureBox.cs: Added a check for null image.
32452
32453 2004-09-10 00:59  jordi
32454
32455         * GroupBox.cs: remove cvs tag
32456
32457 2004-09-09 05:25  ravindra
32458
32459         * ToolBar.cs: Make redraw accessible from ToolBarButton.
32460
32461 2004-09-09 05:23  ravindra
32462
32463         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
32464           parent redraw.
32465
32466 2004-09-09 02:28  pbartok
32467
32468         * ThemeWin32Classic.cs:
32469           - Improve disabled string look
32470
32471 2004-09-09 01:15  jordi
32472
32473         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
32474           args and handler
32475
32476 2004-09-08 23:56  ravindra
32477
32478         * ItemBoundsPortion.cs: It's enum, not a class!
32479
32480 2004-09-08 23:47  ravindra
32481
32482         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
32483           Enums for Form.
32484
32485 2004-09-08 21:13  ravindra
32486
32487         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
32488           ListView control.
32489
32490 2004-09-08 21:03  ravindra
32491
32492         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
32493           avoid crash.
32494
32495 2004-09-08 21:01  ravindra
32496
32497         * ScrollableControl.cs: Removed unreachable code.
32498
32499 2004-09-08 06:45  jordi
32500
32501         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
32502
32503 2004-09-08 01:00  jackson
32504
32505         * XplatUIX11.cs: Only run the timers when updating the message
32506           queue. This effectively gives X messages a higher priority then
32507           timer messages. Timers still need love though
32508
32509 2004-09-07 14:01  jackson
32510
32511         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
32512           this for us and the handle is no longer valid.
32513
32514 2004-09-07 13:59  jackson
32515
32516         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
32517           loop that manages to not crash. TODO: Add poll and cleanup timers
32518
32519 2004-09-07 11:12  jordi
32520
32521         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
32522
32523 2004-09-07 03:40  jordi
32524
32525         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
32526           fixes, methods, multiple links
32527
32528 2004-09-06 06:55  jordi
32529
32530         * Control.cs: Caches ClientRectangle rectangle value
32531
32532 2004-09-05 02:03  jordi
32533
32534         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
32535           certain situations
32536
32537 2004-09-04 11:10  jordi
32538
32539         * Label.cs: Refresh when font changed
32540
32541 2004-09-02 16:24  pbartok
32542
32543         * Control.cs:
32544           - Added sanity check to creation of double buffer bitmap
32545
32546 2004-09-02 16:24  pbartok
32547
32548         * ButtonBase.cs:
32549           - Fixed selection of text color
32550           - Fixed handling of resize event; now properly recreates double
32551             buffering bitmap
32552           - Added missing assignment of TextAlignment
32553           - Added proper default for TextAlignment
32554
32555 2004-09-02 14:26  pbartok
32556
32557         * RadioButton.cs:
32558           - Added missing RadioButton.RadioButtonAccessibleObject class
32559
32560 2004-09-02 14:26  pbartok
32561
32562         * Control.cs:
32563           - Added missing Control.ControlAccessibleObject class
32564           - Started to implement Select()ion mechanisms, still very incomplete
32565
32566 2004-09-02 14:25  pbartok
32567
32568         * AccessibleObject.cs:
32569           - Added missing methods
32570
32571 2004-09-02 14:23  pbartok
32572
32573         * AccessibleNavigation.cs, AccessibleSelection.cs:
32574           - Initial check-in
32575
32576 2004-09-02 10:32  jordi
32577
32578         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
32579           pool for pens, brushes, and hatchbruses
32580
32581 2004-09-01 15:30  jackson
32582
32583         * StatusBar.cs: Fix typo
32584
32585 2004-09-01 14:44  pbartok
32586
32587         * RadioButton.cs:
32588           - Fixed state
32589
32590 2004-09-01 14:39  pbartok
32591
32592         * Button.cs, RadioButton.cs:
32593           - Functional initial check-in
32594
32595 2004-09-01 14:01  pbartok
32596
32597         * CheckBox.cs:
32598           - Added missing default
32599           - Added missing region mark
32600
32601 2004-09-01 09:10  jordi
32602
32603         * Label.cs: fixes method signatures, new methods, events, fixes
32604           autosize
32605
32606 2004-09-01 07:19  jordi
32607
32608         * Control.cs: Init string variables with an empty object
32609
32610 2004-09-01 04:20  jordi
32611
32612         * Control.cs: fires OnFontChanged event
32613
32614 2004-08-31 20:07  pbartok
32615
32616         * ButtonBase.cs:
32617           - Enabled display of strings
32618
32619 2004-08-31 20:05  pbartok
32620
32621         * Form.cs:
32622           - Added (partial) implementation of DialogResult; rest needs to be
32623             implemented when the modal loop code is done
32624
32625 2004-08-31 19:55  pbartok
32626
32627         * CheckBox.cs:
32628           - Fixed to match the removal of the needs_redraw concept
32629
32630 2004-08-31 19:55  pbartok
32631
32632         * ButtonBase.cs:
32633           - Removed the rather odd split between 'needs redraw' and redrawing
32634           - Now handles the events that require regeneration (ambient
32635             properties and size)
32636
32637 2004-08-31 19:41  pbartok
32638
32639         * Control.cs:
32640           - Added firing of BackColorChanged event
32641           - Added TopLevelControl property
32642           - Fixed handling of WM_ERASEBKGRND message
32643
32644 2004-08-31 12:49  pbartok
32645
32646         * ButtonBase.cs:
32647           - Removed debug
32648           - Minor fixes
32649
32650 2004-08-31 12:48  pbartok
32651
32652         * CheckBox.cs:
32653           - Finished (famous last words)
32654
32655 2004-08-31 04:35  jordi
32656
32657         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
32658           scrolling bugs, adds new methods
32659
32660 2004-08-30 14:42  pbartok
32661
32662         * CheckBox.cs:
32663           - Implemented CheckBox drawing code
32664
32665 2004-08-30 14:42  pbartok
32666
32667         * ButtonBase.cs:
32668           - Made Redraw() and CheckRedraw() virtual
32669           - Improved mouse up/down/move logic to properly track buttons
32670
32671 2004-08-30 09:44  pbartok
32672
32673         * CheckBox.cs:
32674           - Updated to fix broken build. Not complete yet.
32675
32676 2004-08-30 09:28  pbartok
32677
32678         * CheckState.cs:
32679           - Initial checkin
32680
32681 2004-08-30 09:17  pbartok
32682
32683         * Appearance.cs:
32684           - Initial check-in
32685
32686 2004-08-27 16:12  ravindra
32687
32688         * ToolBarButton.cs: Added TypeConverter attribute.
32689
32690 2004-08-27 16:07  ravindra
32691
32692         * ImageIndexConverter.cs: Implemented.
32693
32694 2004-08-27 14:17  pbartok
32695
32696         * Control.cs:
32697           - Removed unneeded stack vars
32698           - First attempt to fix sizing issues when layout is suspended
32699
32700 2004-08-25 15:35  jordi
32701
32702         * ScrollBar.cs: more fixes to scrollbar
32703
32704 2004-08-25 14:04  ravindra
32705
32706         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
32707           Added the missing divider code and grip for ToolBar Control.
32708
32709 2004-08-25 13:20  pbartok
32710
32711         * Control.cs:
32712           - Control now properly passes the ambient background color to child
32713             controls
32714
32715 2004-08-25 13:20  jordi
32716
32717         * ScrollBar.cs: small bug fix regarding bar position
32718
32719 2004-08-25 12:33  pbartok
32720
32721         * Timer.cs:
32722           - Now only calls SetTimer or KillTimer if the enabled state has
32723           changed
32724
32725 2004-08-25 12:33  pbartok
32726
32727         * XplatUIWin32.cs:
32728           - Fixed timer handling, now seems to work
32729           - Improved error message for window creation
32730
32731 2004-08-25 12:32  pbartok
32732
32733         * Control.cs:
32734           - Fixed generation of MouseUp message
32735
32736 2004-08-25 12:29  jordi
32737
32738         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
32739           and fixes for progressbar
32740
32741 2004-08-24 18:43  ravindra
32742
32743         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
32744           in ToolBar control.
32745
32746 2004-08-24 17:15  pbartok
32747
32748         * Panel.cs:
32749           - Added #region
32750           - Added missing events
32751           - Alphabetized
32752
32753 2004-08-24 17:14  pbartok
32754
32755         * StatusBar.cs, PictureBox.cs:
32756           - Now uses Control's CreateParams
32757
32758 2004-08-24 16:36  pbartok
32759
32760         * XplatUIX11.cs:
32761           - Fixed background color handling
32762           - Fixed sending of enter/leave events on a grab
32763
32764 2004-08-24 16:35  pbartok
32765
32766         * X11Structs.cs:
32767           - Refined definitions for CrossingEvent
32768
32769 2004-08-24 12:37  jordi
32770
32771         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
32772           formmating, methods signature, and adds missing events
32773
32774 2004-08-24 12:24  jordi
32775
32776         * Control.cs: fire OnEnabledChanged event
32777
32778 2004-08-24 11:17  pbartok
32779
32780         * XplatUIWin32.cs:
32781           - Implemented SetTimer() and KillTimer()
32782
32783 2004-08-24 11:16  pbartok
32784
32785         * XplatUIX11.cs:
32786           - Now uses Remove instead of Add to kill the timer
32787
32788 2004-08-24 10:16  jackson
32789
32790         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
32791           picture boxes in the theme now. Draw picture box borders and obey
32792           sizing modes
32793
32794 2004-08-24 05:49  jackson
32795
32796         * Timer.cs: Remove top secret debugging code
32797
32798 2004-08-24 05:34  jackson
32799
32800         * PictureBox.cs: Temp hack to make picture boxes draw their full
32801           image
32802
32803 2004-08-24 05:29  jackson
32804
32805         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
32806           XplatUIX11.cs: Move timers to the driver level. On X they are
32807           queued by the driver and checked on idle.
32808
32809 2004-08-24 01:07  jackson
32810
32811         * XplatUIX11.cs: Use a queue for async messages instead of passing
32812           them as ClientMessages since that was totally broken. Also simply
32813           check for events and return an idle message if none are found. This
32814           gives us an idle handler, and prevents deadlocking when no messages
32815           are in the queue.
32816
32817 2004-08-23 18:19  ravindra
32818
32819         * XplatUIWin32.cs: Removed the unwanted destructor.
32820
32821 2004-08-23 17:27  pbartok
32822
32823         * ButtonBase.cs:
32824           - Finishing touches. Works now, just needs some optimizations.
32825
32826 2004-08-23 16:53  jordi
32827
32828         * ScrollBar.cs: small fix
32829
32830 2004-08-23 16:45  pbartok
32831
32832         * Application.cs:
32833           - Removed debug output
32834           - Simplifications
32835
32836 2004-08-23 16:43  jordi
32837
32838         * ScrollBar.cs: [no log message]
32839
32840 2004-08-23 16:10  pbartok
32841
32842         * Form.cs:
32843           - Fixed handling of WM_CLOSE message
32844           - Removed debug output
32845
32846 2004-08-23 16:09  pbartok
32847
32848         * Application.cs:
32849           - Added handling of Idle event
32850           - Added handling of form closing
32851           - Fixed reporting of MessageLoop property
32852           - Removed some unneeded code, should provide a bit of a speedup
32853
32854 2004-08-23 15:22  pbartok
32855
32856         * Control.cs:
32857           - Added InitLayout() method
32858           - Added code to properly perform layout when Anchor or Dock property
32859             is changed
32860           - Changed 'interpretation' of ResumeLayout. MS seems to have a
32861             LAMESPEC, tried to do it in a way that makes sense
32862
32863 2004-08-23 14:10  jordi
32864
32865         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
32866           properties and methods
32867
32868 2004-08-23 13:55  pbartok
32869
32870         * Control.cs:
32871           - Properly fixed Jordi's last fix
32872           - Now uses Cursor's Position property instead of calling XplatUI
32873           directly
32874
32875 2004-08-23 13:44  jordi
32876
32877         * PaintEventHandler.cs: Adding missing attribute
32878
32879 2004-08-23 13:39  pbartok
32880
32881         * Cursor.cs:
32882           - Implemented Position property
32883
32884 2004-08-23 13:39  pbartok
32885
32886         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
32887           - Added method to move mouse cursor
32888
32889 2004-08-23 13:39  pbartok
32890
32891         * XplatUIX11.cs:
32892           - Fixed setting of background color
32893           - Added method to move mouse cursor
32894
32895 2004-08-23 13:16  jordi
32896
32897         * Control.cs: avoids null exception
32898
32899 2004-08-22 17:46  jackson
32900
32901         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
32902           PictureBox
32903
32904 2004-08-22 17:40  jackson
32905
32906         * XplatUIX11.cs: Add some missing locks
32907
32908 2004-08-22 15:10  pbartok
32909
32910         * Control.cs, Form.cs:
32911           - Removed OverlappedWindow style from Control, instead it's default
32912             now is child
32913           - Made form windows OverlappedWindow by default
32914
32915 2004-08-22 13:34  jackson
32916
32917         * ScrollBar.cs: Update the position through the Value property so
32918           the OnValueChanged event is raised.
32919
32920 2004-08-22 12:04  pbartok
32921
32922         * SWF.csproj:
32923           - Added Cursor.cs and UserControl.cs
32924
32925 2004-08-22 12:03  pbartok
32926
32927         * Cursor.cs:
32928           - Started implementation, not usable yet
32929
32930 2004-08-22 12:00  pbartok
32931
32932         * UserControl.cs:
32933           - Implemented UserControl (complete)
32934
32935 2004-08-21 19:20  ravindra
32936
32937         * ToolBar.cs: Correcting the formatting mess of VS.NET.
32938
32939 2004-08-21 18:49  ravindra
32940
32941         * ToolBar.cs: Probably this completes the missing attributes in
32942           toolbar control.
32943
32944 2004-08-21 18:03  ravindra
32945
32946         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
32947           Fixed toolbar control signatures.
32948
32949 2004-08-21 16:32  pbartok
32950
32951         * LinkLabel.cs:
32952           - Signature Fixes
32953
32954 2004-08-21 16:30  pbartok
32955
32956         * Label.cs:
32957           - Signature fixes
32958
32959 2004-08-21 16:19  pbartok
32960
32961         * Control.cs, Label.cs:
32962           - Signature fixes
32963
32964 2004-08-21 15:57  pbartok
32965
32966         * ButtonBase.cs:
32967           - Added loads of debug output for development
32968           - Fixed typo in method name
32969
32970 2004-08-21 15:52  pbartok
32971
32972         * ToolBarButtonClickEventArgs.cs:
32973           - Added missing base class
32974
32975 2004-08-21 14:53  pbartok
32976
32977         * Control.cs:
32978           - Updated to match new GrabWindow signature
32979
32980 2004-08-21 14:51  pbartok
32981
32982         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
32983           - Added method to get default display size
32984
32985 2004-08-21 14:23  pbartok
32986
32987         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
32988           - Added method to query current grab state
32989           - Added argument to allow confining a grab to a window
32990
32991 2004-08-21 14:22  pbartok
32992
32993         * Keys.cs:
32994           - Added [Flags] attribute so that modifiers can be used in bitwise
32995           ops
32996
32997 2004-08-21 14:21  pbartok
32998
32999         * TrackBar.cs, ScrollBar.cs:
33000           - Replaced direct XplatUI calls with their Control counterpart
33001
33002 2004-08-21 13:32  pbartok
33003
33004         * Control.cs:
33005           - Implemented Created property
33006
33007 2004-08-21 13:28  pbartok
33008
33009         * Control.cs:
33010           - Implemented ContainsFocus
33011
33012 2004-08-21 13:26  pbartok
33013
33014         * Control.cs:
33015           - Implemented CausesValidation
33016
33017 2004-08-21 13:21  pbartok
33018
33019         * Control.cs:
33020           - Implemented CanFocus
33021           - Implemented CanSelect
33022           - Implemented Capture
33023
33024 2004-08-21 12:35  pbartok
33025
33026         * XplatUIWin32.cs:
33027           - Fixed bug with Async message handling
33028           - Implemented getting the ModifierKeys
33029
33030 2004-08-21 12:32  jackson
33031
33032         * AsyncMethodResult.cs: Make sure we have the mutex before we
33033           release it. Fixes BeginInvoke on windows
33034
33035 2004-08-21 11:31  pbartok
33036
33037         * XplatUIWin32.cs, XplatUIX11.cs:
33038           - Drivers now return proper mouse state
33039
33040 2004-08-21 10:54  jackson
33041
33042         * Control.cs: Implement EndInvoke
33043
33044 2004-08-21 10:48  jackson
33045
33046         * Timer.cs: Remove unneeded finalizer
33047
33048 2004-08-20 19:52  ravindra
33049
33050         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
33051           in mouse event handling in the ToolBar control.
33052
33053 2004-08-20 19:50  ravindra
33054
33055         * ImageList.cs: Changed draw method to use the arguments passed in
33056           to draw the image.
33057
33058 2004-08-20 18:58  pbartok
33059
33060         * XplatUIStructs.cs:
33061           - Added private message for async communication
33062
33063 2004-08-20 17:38  ravindra
33064
33065         * Control.cs: Made RightToLeft property virtual and removed a
33066           Console.WriteLine.
33067
33068 2004-08-20 14:39  jordi
33069
33070         * ThemeGtk.cs: use style_attach
33071
33072 2004-08-20 14:39  pbartok
33073
33074         * XplatUIWin32.cs:
33075           - Added jackson's Async code from X11 to Win32
33076
33077 2004-08-20 14:09  pbartok
33078
33079         * SWF.csproj:
33080           - Added all new files
33081
33082 2004-08-20 14:09  pbartok
33083
33084         * Control.cs:
33085           - Added call to set window background color
33086
33087 2004-08-20 14:03  pbartok
33088
33089         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
33090           - Added method for setting the window background
33091
33092 2004-08-20 14:02  pbartok
33093
33094         * XplatUIWin32.cs:
33095           - Added method for setting the background color
33096           - Added handling for erasing the window background
33097
33098 2004-08-20 13:45  jordi
33099
33100         * TrackBar.cs: fixes timer, new properties and methods
33101
33102 2004-08-20 13:34  jackson
33103
33104         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
33105           correct thread
33106
33107 2004-08-20 13:22  jackson
33108
33109         * Timer.cs: Timer Tick events are now handed through Controls Async
33110           mechanism so the callbacks are executed in the same thread as X
33111
33112 2004-08-20 13:19  jackson
33113
33114         * XplatUIDriver.cs: Expose functionality to send async messages
33115           through the driver
33116
33117 2004-08-20 13:18  jackson
33118
33119         * Control.cs: Implement Begininvoke
33120
33121 2004-08-20 13:14  jackson
33122
33123         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
33124           messages through the driver
33125
33126 2004-08-20 13:12  jackson
33127
33128         * XplatUIX11.cs: Lock before all X operations. Also added Async
33129           method functionality through XSendEvent
33130
33131 2004-08-20 13:11  jackson
33132
33133         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
33134           This will screw up on 64 bit systems)
33135
33136 2004-08-20 13:10  jackson
33137
33138         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
33139           Async messages through X/Win32
33140
33141 2004-08-19 19:39  pbartok
33142
33143         * XplatUIX11.cs:
33144           - Updated code to match new HandleData.DeviceContext type
33145
33146 2004-08-19 19:38  pbartok
33147
33148         * HandleData.cs:
33149           - Made DeviceContext a generic object to allow usage from various
33150           drivers
33151           - Added support for queueing Windows messages
33152
33153 2004-08-19 19:37  pbartok
33154
33155         * XplatUIWin32.cs:
33156           - Added generation of MouseEnter, MouseLeave and MouseHover events
33157           - Added cleanup on EndPaint
33158
33159 2004-08-19 19:17  pbartok
33160
33161         * Control.cs:
33162           - Added handling of WM_MOUSEHOVER
33163           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
33164           code
33165
33166 2004-08-19 18:55  jordi
33167
33168         * ThemeGtk.cs: fixes button order
33169
33170 2004-08-19 18:12  jordi
33171
33172         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
33173
33174 2004-08-19 17:09  pbartok
33175
33176         * Control.cs:
33177           - Added Right property
33178           - Added RightToLeft property
33179
33180 2004-08-19 16:27  jordi
33181
33182         * ThemeGtk.cs: experimental GTK theme support
33183
33184 2004-08-19 16:26  jordi
33185
33186         * ITheme.cs, Theme.cs: move themes from an interface to a class
33187
33188 2004-08-19 16:25  jordi
33189
33190         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
33191           theme enhancaments
33192
33193 2004-08-19 16:04  pbartok
33194
33195         * XplatUIX11.cs:
33196           - Added colormap basics
33197           - Added a way to re-initialize with a different display handle
33198           - Fixed setting of the window background color
33199           - Added various X11 imports related to colors and colormaps
33200
33201 2004-08-19 15:51  pbartok
33202
33203         * X11Structs.cs:
33204           - Removed packing hints (Paolo suggested this a while back)
33205           - fixed colormap type
33206           - Added default Atom types
33207           - Added Screen and color structs and enums
33208
33209 2004-08-19 15:39  pbartok
33210
33211         * ImageList.cs:
33212           - Added missing Draw() method
33213           - Added missing RecreateHandle event
33214
33215 2004-08-19 15:30  pbartok
33216
33217         * Form.cs:
33218           - Added handling of WM_CLOSE
33219
33220 2004-08-18 13:16  jordi
33221
33222         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
33223           a table
33224
33225 2004-08-18 09:56  jordi
33226
33227         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
33228
33229 2004-08-17 15:31  ravindra
33230
33231         * SWF.csproj: Updated project.
33232
33233 2004-08-17 15:25  pbartok
33234
33235         * Control.cs:
33236           - Drawing improvement; don't call UpdateBounds if we are not visible
33237             (or have been minimized)
33238
33239 2004-08-17 15:24  pbartok
33240
33241         * XplatUIWin32.cs:
33242           - Finished IsVisible
33243           - Added Win32GetWindowPlacement
33244
33245 2004-08-17 15:08  jackson
33246
33247         * Panel.cs: Initial checkin of the Panel
33248
33249 2004-08-17 14:25  pbartok
33250
33251         * Control.cs:
33252           - Fixed broken handling of default window sizes
33253
33254 2004-08-17 13:29  jackson
33255
33256         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
33257           has a large startup time.
33258
33259 2004-08-17 10:25  jackson
33260
33261         * HandleData.cs: union areas properly
33262
33263 2004-08-17 10:12  jackson
33264
33265         * HandleData.cs: union areas properly
33266
33267 2004-08-16 20:00  ravindra
33268
33269         * ToolBar.cs, ToolBarButton.cs: Added attributes.
33270
33271 2004-08-16 18:48  ravindra
33272
33273         * ToolBar.cs: Added attributes.
33274
33275 2004-08-16 17:17  ravindra
33276
33277         * SWF.csproj: Updated project.
33278
33279 2004-08-16 17:16  jackson
33280
33281         * XplatUIX11.cs: Check for more expose events before sending a
33282           WM_PAINT so they can all be grouped together. This makes dragging a
33283           window across another window redraw in a sane way.
33284
33285 2004-08-16 15:47  pbartok
33286
33287         * Control.cs:
33288           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
33289             support OnMouseEnter/Leave()
33290           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
33291             exposure handling
33292
33293 2004-08-16 15:46  pbartok
33294
33295         * XplatUIStructs.cs, XplatUIX11.cs:
33296           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
33297           OnMouseEnter/Leave()
33298
33299 2004-08-16 15:34  jackson
33300
33301         * XplatUIX11.cs: Group multiple expose events in HandleData, make
33302           sure messages get the message field set to WM_NULL if they are not
33303           handled.
33304
33305 2004-08-16 15:24  jackson
33306
33307         * HandleData.cs: HandleData is used for storing message information
33308           for window handles
33309
33310 2004-08-15 17:23  ravindra
33311
33312         * ColorDepth.cs: Added attribute.
33313
33314 2004-08-15 17:23  ravindra
33315
33316         * SWF.csproj: Updated project for ToolBar Control.
33317
33318 2004-08-15 17:20  ravindra
33319
33320         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
33321           control and also dos2unix format.
33322
33323 2004-08-15 17:13  ravindra
33324
33325         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
33326           ToolBarButtonClickEventArgs.cs,
33327           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
33328           ToolBarTextAlign.cs: First Implementation of ToolBar control.
33329
33330 2004-08-15 15:31  pbartok
33331
33332         * ButtonBase.cs:
33333           - First (mostly) working version
33334
33335 2004-08-13 16:15  pbartok
33336
33337         * Control.cs:
33338           - Fixed Anchor default
33339
33340 2004-08-13 15:43  pbartok
33341
33342         * Control.cs:
33343           - Changed GetCursorPos signature
33344
33345 2004-08-13 15:42  pbartok
33346
33347         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
33348           - Changed signature for GetCursorPos
33349
33350 2004-08-13 15:25  pbartok
33351
33352         * XplatUIX11.cs:
33353           - Cleanup
33354           - Fixed resizing/exposure handling
33355
33356 2004-08-13 15:22  jordi
33357
33358         * ThemeWin32Classic.cs: removes redundant code and fixes issues
33359           with tickposition
33360
33361 2004-08-13 14:55  jordi
33362
33363         * TrackBar.cs: change from wndproc to events
33364
33365 2004-08-13 13:00  jordi
33366
33367         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
33368           XplatUIX11.cs: implements PointToClient (ScreenToClient)
33369
33370 2004-08-13 12:53  pbartok
33371
33372         * XplatUIWin32.cs:
33373           - Changed GetWindowPos to also provide client area size
33374           - Fixed broken prototypes for several win32 functions
33375
33376 2004-08-13 12:53  pbartok
33377
33378         * XplatUI.cs, XplatUIDriver.cs:
33379           - Changed GetWindowPos to also provide client area size
33380
33381 2004-08-13 12:52  pbartok
33382
33383         * XplatUIX11.cs:
33384           - Added generation of WM_POSCHANGED
33385           - Changed GetWindowPos to also provide client area size
33386
33387 2004-08-13 12:52  pbartok
33388
33389         * Control.cs:
33390           - Added Dispose() and destructor
33391           - Fixed resizing and bounds calculation
33392           - Fixed Layout
33393           - Added memory savings for invisible windows
33394
33395 2004-08-13 12:46  jordi
33396
33397         * TrackBar.cs: adds timer and grap window
33398
33399 2004-08-13 10:25  jackson
33400
33401         * Timer.cs: SWF Timer
33402
33403 2004-08-12 16:59  pbartok
33404
33405         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
33406           - Implemented method to get current mouse position
33407
33408 2004-08-12 14:29  jordi
33409
33410         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
33411           enhancement, fix mouse problems, highli thumb, etc
33412
33413 2004-08-12 13:31  pbartok
33414
33415         * Control.cs:
33416           - Fixed Anchoring bugs
33417
33418 2004-08-12 13:01  jackson
33419
33420         * StatusBar.cs: Don't forget things
33421
33422 2004-08-12 12:54  jackson
33423
33424         * ThemeWin32Classic.cs: Handle owner draw status bars
33425
33426 2004-08-12 12:54  jackson
33427
33428         * StatusBar.cs: Implement missing properties, events, and methods.
33429           Handle mouse clicking
33430
33431 2004-08-12 10:19  jackson
33432
33433         * StatusBarPanelClickEventArgs.cs,
33434           StatusBarPanelClickEventHandler.cs: Classes for handling status
33435           bar panel click events
33436
33437 2004-08-12 10:10  jackson
33438
33439         * Control.cs: Add missing properties
33440
33441 2004-08-12 09:46  pbartok
33442
33443         * BindingsManagerBase.cs:
33444           - Name changed to BindingManagerBase.cs
33445
33446 2004-08-12 09:25  jordi
33447
33448         * ScrollableControl.cs: calls ctrlbase instead of exeception
33449
33450 2004-08-11 16:28  pbartok
33451
33452         * InputLanguageChangingEventArgs.cs:
33453           - Never check in before compiling. Fixes the last check-in
33454
33455 2004-08-11 16:26  pbartok
33456
33457         * InputLanguageChangingEventArgs.cs:
33458           - More signature fixes
33459
33460 2004-08-11 16:20  pbartok
33461
33462         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
33463           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
33464           ImageListStreamer.cs, InputLanguage.cs,
33465           InputLanguageChangedEventArgs.cs,
33466           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
33467           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
33468           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
33469           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
33470           - Signature fixes
33471
33472 2004-08-11 16:16  pbartok
33473
33474         * Application.cs:
33475           - Fixed Signature
33476           - Added .Net 1.1 method
33477
33478 2004-08-11 15:25  pbartok
33479
33480         * SWF.csproj:
33481           - Fixed BindingManagerBase.cs filename
33482
33483 2004-08-11 15:22  pbartok
33484
33485         * BindingManagerBase.cs:
33486           - Was checked in with wrong filename
33487
33488 2004-08-11 14:50  pbartok
33489
33490         * SWF.csproj:
33491           - Updated
33492
33493 2004-08-11 13:41  jordi
33494
33495         * XplatUIWin32.cs: Fixes ClientRect
33496
33497 2004-08-11 13:19  pbartok
33498
33499         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
33500           XplatUIX11.cs:
33501           - We had SetWindowPos and MoveWindow to set window positions and
33502             size, removed MoveWindow. We have GetWindowPos, so it made sense to
33503             keep SetWindowPos as matching counterpart
33504           - Added some X11 sanity checking
33505
33506 2004-08-11 12:59  pbartok
33507
33508         * Control.cs:
33509           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
33510             (It seems that SetBounds is just a front for SetBoundsCore and
33511              SetBoundsCore updates the underlying window system and
33512              UpdateBounds is responsible for updating the variables associated
33513              with the Control and sending the events)
33514           - Major cleanup of Size handling; we now have two sizes, client_size
33515             and bounds. Bounds defines the window with decorations, client_size
33516             without them.
33517
33518 2004-08-11 12:55  pbartok
33519
33520         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
33521           - Added method to calculate difference between decorated window and
33522             raw client area
33523
33524 2004-08-11 12:54  pbartok
33525
33526         * Label.cs:
33527           - Forcing redraw on resize
33528
33529 2004-08-11 11:43  pbartok
33530
33531         * ImageList.cs:
33532           - Removed disposing of the actual images when the list is disposed
33533
33534 2004-08-11 09:13  pbartok
33535
33536         * Control.cs:
33537           - Now properly reparents windows
33538
33539 2004-08-11 08:37  pbartok
33540
33541         * Control.cs:
33542           - Duh!
33543
33544 2004-08-11 07:47  pbartok
33545
33546         * Control.cs:
33547           - Rewrote the collection stuff. Might not be as fast now, not
33548             keeping the number of children around and accessible directly, but
33549             it's more straightforward
33550
33551 2004-08-11 07:44  pbartok
33552
33553         * AccessibleObject.cs:
33554           - Fixed to match ControlCollection rewrite
33555
33556 2004-08-11 07:43  pbartok
33557
33558         * ImageList.cs:
33559           - Added missing creation of the collection list
33560
33561 2004-08-10 20:08  jackson
33562
33563         * StatusBar.cs: Get the paint message from WndProc
33564
33565 2004-08-10 19:31  jackson
33566
33567         * ThemeWin32Classic.cs: Create Brushes as little as possible
33568
33569 2004-08-10 19:20  jackson
33570
33571         * UICues.cs: Add Flags attribute
33572
33573 2004-08-10 19:19  jackson
33574
33575         * StatusBarPanel.cs: Signature cleanup
33576
33577 2004-08-10 19:10  jackson
33578
33579         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
33580           Initial implementation of status bar item drawing
33581
33582 2004-08-10 17:27  jordi
33583
33584         * TrackBar.cs: add missing methods, properties, and restructure to
33585           hide extra ones
33586
33587 2004-08-10 16:24  jackson
33588
33589         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
33590           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
33591           attribute
33592
33593 2004-08-10 13:21  jordi
33594
33595         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
33596           enhancements and standarize on win colors defaults
33597
33598 2004-08-10 12:52  jackson
33599
33600         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
33601           ThemeWin32Classic.cs: Implement DrawItem functionality
33602
33603 2004-08-10 12:47  jordi
33604
33605         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
33606
33607 2004-08-10 12:32  jordi
33608
33609         * Control.cs: throw ontextchange event
33610
33611 2004-08-10 11:43  pbartok
33612
33613         * Control.cs:
33614           - Added more to the still unfinished Dock/Anchor layout code
33615
33616 2004-08-10 11:39  pbartok
33617
33618         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
33619           - Added GetWindowPos method
33620
33621 2004-08-10 11:36  pbartok
33622
33623         * XplatUIWin32.cs:
33624           - Implemented several methods
33625
33626 2004-08-10 09:47  jackson
33627
33628         * TrackBar.cs: Allow control to handle buffering
33629
33630 2004-08-10 09:41  jackson
33631
33632         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
33633
33634 2004-08-10 09:24  jackson
33635
33636         * Label.cs, LinkLabel.cs: Let Control handle buffering.
33637
33638 2004-08-10 09:09  jackson
33639
33640         * StatusBar.cs: Let Control handle all the buffering.
33641
33642 2004-08-10 09:08  jackson
33643
33644         * Control.cs: Control will now handle the buffering code, so each
33645           control does not have to implement this.
33646
33647 2004-08-10 08:34  jackson
33648
33649         * XplatUIDriver.cs: Use default colors from the theme
33650
33651 2004-08-09 17:12  pbartok
33652
33653         * ImageList.cs:
33654           - Fixed several bugs Ravindra pointed out
33655
33656 2004-08-09 16:11  pbartok
33657
33658         * Control.cs:
33659           - Added incomplete dock layout code
33660           - Added support for mouse wheel
33661
33662 2004-08-09 16:09  pbartok
33663
33664         * XplatUIX11.cs:
33665           - Added handling for middle and right mousebutton
33666           - Added handling for mouse wheel
33667           - Added handling for key state and mouse state and position
33668           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
33669           messages
33670
33671 2004-08-09 15:40  jackson
33672
33673         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
33674           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
33675           checkin
33676
33677 2004-08-09 15:37  jackson
33678
33679         * StatusBar.cs: Initial implementation of StatusBar
33680
33681 2004-08-09 15:36  jackson
33682
33683         * ITheme.cs: Add support for drawing status bar and getting status
33684           bar item sizes
33685
33686 2004-08-09 15:35  pbartok
33687
33688         * MouseButtons.cs:
33689           - Fixed values
33690
33691 2004-08-09 15:34  jackson
33692
33693         * ThemeWin32Classic.cs: Add support for drawing status bar and get
33694           status bar item sizes
33695
33696 2004-08-09 15:21  jackson
33697
33698         * ThemeWin32Classic.cs: Use known colors for default control
33699           colours
33700
33701 2004-08-09 15:12  jackson
33702
33703         * ThemeWin32Classic.cs: Make the default font static, it is static
33704           in control so this doesn't change functionality and creating fonts
33705           is sloooooow.
33706
33707 2004-08-09 14:56  pbartok
33708
33709         * X11Structs.cs:
33710           - Added GrabMode enum
33711
33712 2004-08-09 14:55  pbartok
33713
33714         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
33715           - Removed Run method, was only required for initial development
33716
33717 2004-08-09 14:51  pbartok
33718
33719         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
33720           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
33721           capture
33722
33723 2004-08-09 13:48  pbartok
33724
33725         * XplatUIX11.cs:
33726           - Fixed default sizing for child windows
33727
33728 2004-08-09 12:56  pbartok
33729
33730         * XplatUIX11.cs:
33731           - Added generation of WM_DESTROY message
33732           - Added handling of window manager induced shutdown
33733
33734 2004-08-09 11:31  jackson
33735
33736         * ThemeWin32Classic.cs: New names for control properties
33737
33738 2004-08-09 11:25  jackson
33739
33740         * Control.cs: Use new color names
33741
33742 2004-08-09 11:02  jackson
33743
33744         * XplatUI.cs: Get default window properties from the theme
33745
33746 2004-08-09 11:01  jackson
33747
33748         * ITheme.cs: The theme engine now controls default window
33749           properties
33750
33751 2004-08-09 11:00  jackson
33752
33753         * ThemeWin32Classic.cs: Add default window color properties
33754
33755 2004-08-09 10:17  jackson
33756
33757         * ThemeWin32Classic.cs: Use correct default back color
33758
33759 2004-08-09 10:05  jackson
33760
33761         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
33762           the theme now.
33763
33764 2004-08-09 09:56  jackson
33765
33766         * XplatUI.cs: Remove defaults, these are handled by the theme now.
33767
33768 2004-08-09 09:54  jackson
33769
33770         * Control.cs: Get default properties from the theme.
33771
33772 2004-08-09 09:53  jackson
33773
33774         * ITheme.cs: Themes now handle default control properties
33775
33776 2004-08-09 09:53  jackson
33777
33778         * ThemeWin32Classic.cs: Themes now handle default control
33779           properties so coloring will be consistent
33780
33781 2004-08-08 16:54  jordi
33782
33783         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
33784
33785 2004-08-08 15:08  jordi
33786
33787         * XplatUIX11.cs: fixes keyboard crash
33788
33789 2004-08-08 13:47  jordi
33790
33791         * Label.cs: add cvs header info
33792
33793 2004-08-08 12:09  jackson
33794
33795         * ThemeWin32Classic.cs: Add pen_buttonface
33796
33797 2004-08-08 11:52  jordi
33798
33799         * Label.cs, LinkLabel.cs: [no log message]
33800
33801 2004-08-08 11:34  jordi
33802
33803         * ThemeWin32Classic.cs: Use Windows Standard Colours
33804
33805 2004-08-07 17:32  jordi
33806
33807         * TrackBar.cs: throw exceptions of invalid enums values
33808
33809 2004-08-07 17:31  jordi
33810
33811         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
33812           draw method name
33813
33814 2004-08-07 16:56  jackson
33815
33816         * HorizontalAlignment.cs: Initial checkin
33817
33818 2004-08-07 13:16  jordi
33819
33820         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
33821           methods
33822
33823 2004-08-07 13:05  jordi
33824
33825         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
33826           GetSysColor defines
33827
33828 2004-08-06 18:01  pbartok
33829
33830         * ThemeWin32Classic.cs:
33831           - Fixed some rounding issues with float/int
33832
33833 2004-08-06 18:00  jackson
33834
33835         * DockStyle.cs, AnchorStyles.cs:
33836
33837                   Add flags and serializable attributes.
33838
33839 2004-08-06 17:46  pbartok
33840
33841         * XplatUIX11.cs:
33842           - Implemented GetParent
33843
33844 2004-08-06 17:18  pbartok
33845
33846         * TrackBar.cs:
33847           - Fixed some rounding issues with float/int
33848
33849 2004-08-06 17:17  pbartok
33850
33851         * X11Structs.cs, XplatUIX11.cs:
33852           - Fixed Refresh and Invalidate
33853
33854 2004-08-06 15:30  pbartok
33855
33856         * Control.cs, X11Structs.cs, XplatUIX11.cs:
33857           - Fixed recursive loop when resizing
33858           - Improved/fixed redrawing on expose messages
33859
33860 2004-08-06 09:53  jordi
33861
33862         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
33863           keyboard navigation
33864
33865 2004-08-06 08:02  pbartok
33866
33867         * X11Structs.cs, XplatUIX11.cs:
33868           - Fixed reparenting
33869           - Fixed window border creation
33870
33871 2004-08-05 15:38  pbartok
33872
33873         * XplatUIX11.cs:
33874           - Attempted fix for reparenting problems
33875
33876 2004-08-04 15:14  pbartok
33877
33878         * Control.cs:
33879           - Fixed Invalidation bug (calculated wrong client area)
33880           - Added ClientSize setter
33881
33882 2004-08-04 15:13  pbartok
33883
33884         * Form.cs:
33885           - Added AutoScale properties
33886
33887 2004-08-04 15:13  pbartok
33888
33889         * SWF.csproj:
33890           - Added latest files
33891
33892 2004-08-04 14:11  pbartok
33893
33894         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
33895           XplatUIX11.cs:
33896           - Added Invalidate handling
33897
33898 2004-08-03 17:09  jordi
33899
33900         * XplatUIDriver.cs: fixes spelling mistake
33901
33902 2004-07-27 09:53  jordi
33903
33904         * TrackBar.cs: fixes trackbar events, def classname, methods
33905           signature
33906
33907 2004-07-27 09:29  jordi
33908
33909         * ScrollBar.cs: fixes scrollbar events
33910
33911 2004-07-27 04:38  jordi
33912
33913         * Control.cs: changes to be able to run winforms samples
33914
33915 2004-07-26 11:42  jordi
33916
33917         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
33918           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
33919
33920 2004-07-26 05:41  jordi
33921
33922         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
33923           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
33924           implementation
33925
33926 2004-07-22 09:22  jordi
33927
33928         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
33929           check link overlapping, implement events, and fixes
33930
33931 2004-07-21 10:28  jordi
33932
33933         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
33934
33935 2004-07-21 10:19  jordi
33936
33937         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
33938           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
33939           LinkLabelLinkClickedEventArgs.cs,
33940           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
33941           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
33942           implementation
33943
33944 2004-07-19 13:09  jordi
33945
33946         * Control.cs, Label.cs: label control re-written: added missing
33947           functionlity, events, and properties
33948
33949 2004-07-19 10:49  jordi
33950
33951         * Control.cs: fixes SetBounds logic
33952
33953 2004-07-19 01:29  jordi
33954
33955         * Control.cs: Call RefreshWindow only if the window has created
33956
33957 2004-07-15 14:05  pbartok
33958
33959         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
33960           - Implemented ImageList and ImageList.ImageCollection classes
33961           - Added ColorDepth enumeration
33962           - Updated SWF VS.Net project
33963
33964 2004-07-15 11:06  jordi
33965
33966         * XplatUIStructs.cs: added MsgButons enum
33967
33968 2004-07-15 11:03  jordi
33969
33970         * Control.cs: added basic mouse handeling events
33971
33972 2004-07-15 03:38  jordi
33973
33974         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
33975           Vertical TrackBar control implementation
33976
33977 2004-07-13 09:33  jordi
33978
33979         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
33980
33981 2004-07-13 09:31  jordi
33982
33983         * Control.cs, Form.cs: commit: new properties and fixes form size
33984           problems
33985
33986 2004-07-09 14:13  miguel
33987
33988         * ProgressBar.cs: Spelling
33989
33990 2004-07-09 11:25  pbartok
33991
33992         * ProgressBar.cs:
33993           - Removed usage of Rectangle for drawing. Miguel pointed out it's
33994           faster
33995
33996 2004-07-09 11:17  miguel
33997
33998         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
33999
34000                 * ProgressBar.cs: Fixed spelling for `block'
34001
34002                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
34003                 style guidelines.
34004
34005                 Avoid using the += on rect.X, that exposed a bug in the compiler.
34006
34007 2004-07-08 23:21  pbartok
34008
34009         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
34010           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
34011           BaseCollection.cs, Binding.cs, BindingContext.cs,
34012           BindingMemberInfo.cs, BindingsCollection.cs,
34013           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
34014           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
34015           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
34016           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
34017           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
34018           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
34019           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
34020           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
34021           FrameStyle.cs, GiveFeedbackEventArgs.cs,
34022           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
34023           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
34024           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
34025           InputLanguageChangedEventArgs.cs,
34026           InputLanguageChangedEventHandler.cs,
34027           InputLanguageChangingEventArgs.cs,
34028           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
34029           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
34030           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
34031           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
34032           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
34033           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
34034           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
34035           QueryAccessibilityHelpEventArgs.cs,
34036           QueryAccessibilityHelpEventHandler.cs,
34037           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
34038           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
34039           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
34040           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
34041           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
34042           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
34043           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
34044           XplatUIX11.cs, lang.cs:
34045           - Initial check-in
34046
34047