2008-07-07 Ivan N. Zlatev <contact@i-nz.net>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
2
3         * Control.cs: Do not create the control if the parent isn't created 
4         yet, e.g in the case of a parented form on which .Show is called.
5         It will be created when the parent is made visible/created.
6         Improves #402446.
7
8 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
9
10         * Form.cs: Avoid recursively calling OnSizeChanged due to recursive 
11         WM_WINDOWPOSCHANGED caused by the layouting code on win32.
12         [Fixes bug #406786]
13
14 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
15
16         * Form.cs: When disposed set owner to null. Improves #402446.
17
18 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
19
20         * Form.cs, FlowLayoutPanel.cs: When calculating the PreferredSize 
21         use children's PreferredSize if in AutoSize mode and ExplicitBounds 
22         if not.
23         * Form.cs: Take the Padding into account for the PreferredSize.
24         [Fixes bug #402849]
25
26 2008-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
27
28         * TabControl.cs: Since we don't support more than one direction in
29         TabControl rows alignment (this is, the row becomes the
30         bottom row when selected), make Direction return always 1. This way
31         the layout doesn't get confused about a bad calculation.
32         Fixes #399582.
33
34 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
35
36         * XplatUIX11.cs: Implement NC hit-testing for mouse down/up messages, 
37         so that the wparam is properly set.
38         Fixes form moving in the test case in bug 402446.
39
40 2008-07-07  Jonathan Pobst  <monkey@jpobst.com>
41
42         * FolderBrowserDialog.cs: If we can't find the SelectedPath, display
43         the full tree instead of nothing.  [Improves bug #406584]
44
45 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
46
47         * ThemeWin32Classic.cs: Adjusted minimized window painting.
48
49 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
50
51         * InternalWindowManager.cs: No longer draws decorations for maximized MDI
52         children.
53
54 2008-07-04  Jonathan Pobst  <monkey@jpobst.com>
55
56         * TreeView.cs: Add a null check when using CollapseAll on an
57         empty tree.  [Fixes bug #406449]
58
59 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
60
61         * Form.cs: Make OnMenuComplete internal so we can call it.
62         * MenuAPI.cs: Raise Form.MenuComplete when a menu item is clicked.
63         [Fixes bug #399321]
64
65 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
66
67         * TabControl.cs: Handle Up and Down keys when TabControl is in
68         vertical alignment.
69         [Fixes bug #399585]
70
71 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
72
73         * TabControl.cs: Invalidate when we remove a tab.  Guard against
74         an AOORE when trying to remove a tabpage that is not owned by the
75         parent control.
76         [Fixes bug #399927]
77
78 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
79
80         * ScrollBar.cs: Change the LargeChange calculation to be correct.
81         Ensure we are using LargeChange instead of large_change so we our
82         calculations are correct.
83         [Fixes bug #403122]
84
85 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
86
87         * TableLayoutPanel.cs: When we change to a serialized TableLayoutSettings,
88         we need to ensure the ColumnCount/RowCount gets set.
89         [Fixes bug #404851]
90
91 2008-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
92
93         * ListBox.cs: When handling item navigation, if selection mode is
94         None, call EnsureVisible, since scrolling is normally handled by
95         selection, that we are not calling in this case.
96         Fixes #398345.
97
98 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
99
100         * ContainerControl.cs: Apply a patch from Ernesto Carrea that adds
101         a null check to our focus walking code.  [Fixes bug #394332]
102
103 2008-07-02  Andy Hume <andyhume32 at yahoo dot co dot uk>
104
105         * ComboBox.cs: Case missed in bug 379596 "Support item
106         navigation by entering text": On _close_ drop-down select
107         the first item matching the text in the textbox.  [Fixes bug #397265]
108
109 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
110
111         * DataGridView.cs: Fix a crash when sorting by column headers, 
112         mentioned in bug #404841.  Remove some dead switch cases.
113
114 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
115
116         * ComboBox.cs:
117         * TextBox.cs: Implement AutoComplete support for ComboBox, which just
118         uses the AutoComplete support in the internal TextBox. Also TextBox
119         can store a reference to ComboBox, in case AutoCompleteSource is set
120         to ListItems (this is, ComboBox's items, and we don't want to pass an
121         additional collection).
122
123 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
124
125         * ListViewItem.cs: Restore the initial value of bounds rect to
126         Rectangle.Empty, and is this value for Layout detection in virtual
127         mode. Fixes the tests.
128
129 2008-06-30  Jonathan Pobst  <monkey@jpobst.com>
130
131         * XPlatUI.cs: Remove references to "new" X11 backend.
132
133 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
134
135         * Control.cs: Add an internal virtual OnDragDropEnd method 
136         to allow controls such as ListBox, which depend on a sequence 
137         of MouseDown+Move+End events, to handle the lack of a MouseUp 
138         when a DnD operation is started in MouseDown.
139         * ListBox.cs: If a DnD operation is started in MouseDown we won't 
140         get a MouseUp, so reset our state whenever a DnD operation ends.
141
142 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
143
144         * PropertyGrid.cs: Clear the root griditem first thing when 
145         new object/s is/are selected. Fixes some rare cases where 
146         the View will get a paint request and won't know that the 
147         grid is in the process of repopulating.
148
149 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
150
151         * XplatUIX11.cs, InternalWindowManager.cs: 
152         If WS_EX_TOOLWINDOW is set in the CreateParams for a form MS 
153         doesn't automagically update the FormBorderStyle, so we must 
154         double check the CreateParams explicitly to determine if the 
155         window is a toolwindow.
156         * ThemeWin32Classic.cs: Use InternalWindowManager.IsToolWindow 
157         instead of doing custom checks.
158
159         Fixes toolwindows for the test case in bug #402446
160
161 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
162
163         * Control.cs: Visibility of the control should be false 
164         when the handle is destroyed in WmDestroy and not immediately 
165         in Dispose(). This is effectively where the disposing process 
166         ends even though the control is marked as Disposed immediately 
167         after calling Dispose().
168         [Fixes bug #402446]
169
170 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
171
172         * PropertyGridTextBox.cs: Start monitoring the mouse clicks 
173         when the textbox gets focus.
174         [Fixes bug #402704]
175
176 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
177
178         * PropertyGridTextBox.cs, PropertyGridView.cs: 
179          - Alt + Down should show the drop down editor.
180          - Focus the editor when showing it
181         [Fixes bug #402710]
182
183 2008-06-25  Jonathan Pobst  <monkey@jpobst.com>
184
185         * ThemeWin32Classic.cs: Fix from Andy for panel text for panels
186         that are not the first panel.
187         * StatusBar.cs: Ensure that the X coordinate of panels is always
188         stored.  Fix IList implementation of StatusBarPanelCollection to
189         call the regular methods.
190         [Fixes bug #403599, #402165]
191
192 2008-06-23  Jonathan Pobst  <monkey@jpobst.com>
193
194         * ThemeWin32Classic.cs: Fix position calculation for centered
195         text on status bar panels.  [Fixes bug #402165]
196
197 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
198
199         * Splitter.cs: Fix Splitter to:
200          - Work for arbitrary splitter size
201          - Handle MinSize and MinExtra properly
202          - Get rid of absolute positioning during drag and use relative
203          - Multiple other fixes 
204          [Fixes bug #338966]
205
206 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
207
208         * Cursor.cs: Show shouldn't hide the cursor.
209
210 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
211
212         * ListViewItem.cs: When invalidating, add some extra space to bounds,
213         since focus rectangle and selection can add some space and need to
214         take into account those small offsets - specially in Details view.
215         * ListView.cs: Instead of invalidate using item Bounds directly, call
216         item.Invalidate, to have the code centralized.
217         Fixes focused/selection garbage when selecting and deselecting items
218         that are close.
219
220 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
221
222         * ListViewItem.cs: Set bounds initially to -1 values - thus in virtual
223         mode we can check whether we have to force a Layout or not, and can
224         cache based on this, instead of avoiding caching all the the time. Do
225         this check in GetBounds and TextBounds.
226         Fixes selection in Details view.
227
228 2008-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
229
230         * ListView.cs: Make HeaderControl internal, thus the theme engine can
231         get its *real* height instead of trying to infere it.
232         * ThemeWin32Classic.cs: When drawing gridlines, don't iterate over the items to
233         get the position of them, since it's in general a bad idea in general,
234         and because we can't do that in virtual mode. Instead get the first
235         visible item as well as item height, and draw them.
236         Fixes #400390.
237
238 2008-06-20  Jonathan Pobst  <monkey@jpobst.com>
239
240         * ToolStripSplitButton.cs: We can't add in extra width if
241         the button is not AutoSize.  [Fixes bug #401279]
242
243 2008-06-20  Ivan N. Zlatev  <contact@i-nz.net>
244
245         * PaddingConverter.cs: 
246          - Implement conversion to InstanceDescriptor
247          - Handle "All" in CreateInstance by using the supplied 
248          ITypeDescriptorContext.
249          [Fixes bugs #396076 and #396078]
250
251          Patch by Andy Hume  <andyhume32@yahoo.co.uk>
252          Code contributed under MIT/X11 license.
253
254 2008-06-19  Andy Hume <andyhume32 at yahoo dot co dot uk>
255
256         * ComboBox.cs, ListControl.cs, Control.cs, Button.cs, 
257         ButtonBase.cs:
258         Add Category attributes.
259         Code is contributed under the MIT/X11 license.
260
261 2008-06-18  Ivan N. Zlatev  <contact@i-nz.net>
262
263         * Form.cs: 
264          - Fix a NRE when unparenting a form.
265          - Do not recreate or destroy a parented form when 
266         unparenting. 
267
268 2008-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
269
270         * TextBox.cs: Implement basic support for AutComplete with custom
271         sources.
272
273 2008-06-18  Jonathan Pobst  <monkey@jpobst.com>
274
275         * ToolStripSplitButton.cs: Left and Top of ButtonBounds, SplitterBounds,
276         DropDownButtonBounds should be from the origin of the button, not the
277         ToolStrip.  [Fixes bug #401279]
278
279 2008-06-16  Sandy Armstrong <sanfordarmstrong@gmail.com> 
280
281         * X11DesktopColors.cs: Clear GTK_MODULES environment variable before
282           running gtk_init_check.  This prevents GAIL from loading
283           unnecessarily, which was breaking UIA support.  Initial fix for bug
284           #375987.
285         * Application.cs: Add UIA support to Winforms.  New static constructor
286           uses reflection to initialize UIAutomationWinforms assembly.  Added
287           PreRun event so UIA can initialize before the mainloop starts, and
288           FormAdded event so UIA can provide a11y support for new Forms in an
289           Application.
290
291 2008-06-16  Jonathan Pobst  <monkey@jpobst.com>
292
293         * DataGridView.cs: When binding to a dataset, subscribe to table
294         and column change events.  Unsubscribe to these when we clear bindings.
295         [Fixes bug #399601]
296
297 2008-06-14  Everaldo Canuto  <ecanuto@novell.com>
298
299         [DataGrid drawing refactory]
300
301         * DataGrid.cs: Fix the caption size, we need one pixel more for divider.
302
303         * DataGridColumnStyle.cs: Removing PaintHeader code, the draw operations
304         must be handle by Theme, now it call DataGridPaintColumnHeader.
305
306         * DataGridTextBoxColumn.cs: Fix the textbox size. It must be one pixel less,
307         test cases must be also fixed because it checks for wrong size.
308
309         * ThemeWin32Classic.cs: 
310                 - Draw the bottom line of grid caption.
311                 - Prevent to draw caption text when it is empty.
312                 - Use CPDrawBorder3D for 3D efects to simplify code.
313                 - Uses 3D (when not flat) to paint corner shared between row and column
314                 header.
315                 - Fix header drawing issues on win32, now borders are drawing.
316                 - Fix column header paint issues to mimic win32.
317                 - Adjust header drawing for last column, like first one it must be draw
318                 different.
319                 - Added DataGridPaintRowHeaderStar to draw star like .net does, it is
320                 not an character.
321                 - DataGridPaintColumnHeader created to draw column headers, it also
322                 paint stuff right on Win32.
323                 - Use DataGridPaintColumnHeader method instead of DataGridColumnStyle 
324                 class.
325
326         * Theme.cs: 
327                 - DataGridPaintRowHeaderStar method added.
328                 - DataGridPaintColumnHeader method added.
329
330 2008-06-13  Jonathan Pobst  <monkey@jpobst.com>
331
332         * Control.cs: Don't reset to Dock style layout if DockStyle is
333         set to none.  [Fixes bug #399316]
334
335 2008-06-12  Everaldo Canuto  <ecanuto@novell.com>
336
337         * Win32DnD.cs: Fix the check for control not equal null.
338         Fixes bug #341420 and #381886. 
339
340 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
341
342         * DataGridViewRowCollection.cs: Update the indexes of rows after
343         one has been removed.
344         * DataGridViewSelectedRowCollection.cs: Add internal clear method.
345         * DataGridViewSelectedColumnCollection.cs: Add internal clear method.
346         * DataGridView.cs: Add support for deleting rows via Delete key, deleting
347         rows for the Rows collection, or deleting rows from the bound DataSet.
348
349 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
350
351         * DataGridView.cs: Listen to a DataSet's changed event even
352         when autogeneratecolumns is false.  Refactor the changed event's
353         add row code to use the same as the existing add row code.
354         [Fixes bug #399601]
355
356 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
357
358         * TextBoxBase.cs: We need to call RaiseSelectionChanged pretty
359         much any time the caret moves and there is text, not just when
360         the selection changes as one would think.
361         * RichTextBox.cs: Override RaiseSelectionChanged and fire
362         SelectionChanged.
363         [Fixes bug #397271]
364
365 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
366
367         * FontDialog.cs: Forward ListBox keyboard events to the ListBox
368         instead of trying to duplicate the code.
369         * ListBox.cs: Make method internal so we can send keyboard events.
370         [Fixes bug #398344]
371         
372 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
373
374         * TextBoxBase.cs: When pasting and checking the max length,
375         subtract the selected text length (the text we will be replacing) from
376         the document length.
377         * TextControl.cs: Ensure every character insertion is reflected in
378         charcount, so max length will work properly.
379         [Fixes bug #398605]
380
381 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
382
383         * ListBox.cs: Ensure scrollbars are updated when a single
384         column listbox with an already set top-index is created.
385         [Fixes bug #398342]
386
387 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
388
389         * FontDialog.cs: Typing in the font/style textboxes should search
390         the list boxes case-insensitively.  [Fixes bug #398343]
391
392 2008-06-11  George Giolfan  <georgegiolfan@yahoo.com>
393
394         * ThemeWin32Classic.cs: Managed window title bar layout now uses actual
395         widths of icon and buttons instead of hard coded values.
396
397 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
398
399         * ListBox.cs: When SelectionMode is None, clicking an item should move focus
400         as well as generating a SelectedIndexChanged event, just like .Net does
401         -surprise-.
402         Fixes #398345.
403
404 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
405
406         * ListBox.cs: When navigating items visually, use FocusedItem as the
407         reference point instead of SelectedIndex, since even in
408         SelectionMode.None we need to support navigation, and in that case we
409         just can't use SelectedIndex.
410         Fixes part of #398345.
411
412 2008-06-10  Jonathan Pobst  <monkey@jpobst.com>
413
414         * Control.cs: Make a SetBoundsInternal that avoids the new
415         SetBounds code.
416         * ComboBox.cs, Form.cs, ListBox.cs, ScrollableControl.cs: Use
417         SetBoundsInternal instead of SetBoundsCoreInternal.
418
419 2008-06-10  Ivan N. Zlatev  <contact@i-nz.net>
420
421         * ScrollableControl.cs: Use SetBoundsCoreInternal instead of 
422         SetBounds for the scrollbars.
423
424 2008-06-10  Andreia Gaita <avidigal@novell.com> 
425
426         * HtmlDocument.cs: Implement RightToLeft, ContextMenuShowing,
427           FocusingEvent, LosingFocusEvent, OnMouseDown, OnMouseLeave,
428           OnMouseMove, OnMouseOver, OnMouseUp
429         * HtmlElement.cs: Optimize InsertBefore. Implement RemoveFocus,
430           ScrollIntoView, Focusing, GotFocus, LosingFocus, LostFocus.
431         * HtmlElementCollection.cs, HtmlWindowCollection.cs: Keep a reference
432           to the WebControl object to pass to new collection objects
433         * HtmlHistory.cs: Implement support for individual window histories.
434         * HtmlWindow.cs: Implement History, Position, Size, WindowFrameElement,
435           AttachEventHandler, DetachEventHandler, RemoveFocus, Error,
436           GotFocus, LostFocus, OnLoad, OnUnload
437         * WebBrowser.cs: Implement EncryptionLevel, ScrollBarsEnabled,
438           ContextMenu
439         * WebBrowserBase.cs: Implement Cursor, Enabled, UseWaitCursor, Add
440           security level changes and context menu event support.
441
442 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
443
444         * ComboBox.cs: Pressing Enter should close the dropdown listbox, just
445         as happens with Esc, patch my Andy Hume.
446         Fixes #396294.
447
448 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
449
450         * MdiWindowManager.cs: DrawMaximizedButtons now uses
451         ManagedWindowGetMenuButtonSize instead of ManagedWindowButtonSize.
452         * Theme.cs: Made MenuButtonSize platform dependent. Added
453         ManagedWindowButtonSize.
454         * ThemeWin32Classic.cs: Added ManagedWindowGetMenuButtonSize.
455         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added MenuButtonSize.
456
457 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
458
459         * DateTimePicker.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs:
460         Added support for rendering with VisualStyles.
461
462 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
463
464         * ComboBox.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
465         support for rendering the border with VisualStyles.
466
467 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
468
469         * InternalWindowManager.cs: Added ShowIcon. Fixed IconRectangleContains when
470         the icon is not shown.
471         * ThemeWin32Classic.cs: Now uses InternalWindowManager.ShowIcon instead of
472         its own logic.
473
474 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
475
476         * InternalWindowManager.cs: Draw minimized windows even if they don't have
477         borders.
478
479 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
480
481         * ComboBox.cs, ListBox.cs: Use SetBoundsInternalCore instead of SetBounds.
482
483 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
484
485         * Control.cs: Fill in the defaults for unspecified bounds in SetBounds.
486         [Fixes bug #397943]
487
488 2008-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
489
490         * ComboBox.cs: When snaping height -because of IntegralHeight set to
491         true- with ComboBoxStyle.Simple, set the height to PreferredHeight
492         if the requested height leaves the listbox area with *less* than the
493         required are to see one item. We were setting it to PreferredHeight
494         even for values matching the height for a single item.
495         Fixes #396297.
496
497 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
498
499         * DataGridViewCell.cs: Simplify GetInheritedStyle by using ApplyStyle.
500
501 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
502
503         * DataGridViewCell.cs: Use property instead of field.
504
505 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
506
507         * InternalWindowManager.cs, ThemeWin32Classic.cs: Removed useless Form.Icon
508         null checks.
509
510 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
511
512         * Theme.cs: Added #region around the managed window code. Made the managed
513         window methods abstract.
514         * ThemeWin32Classic.cs: Added #region around the managed window code.
515
516 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
517
518         * InternalWindowManager.cs: Now only calls Theme.DrawManagedWindowDecorations
519         if it has borders.
520         * ThemeWin32Classic.cs: Removed HasBorders checks in
521         DrawManagedWindowDecorations.
522
523 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
524
525         * InternalWindowManager.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
526         Extracted ManagedWindowGetTitleBarIconArea.
527
528 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
529
530         * DataGridViewCellStyle.cs: Don't clone the font.
531
532 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
533
534         * DataGridViewCell.cs: Ensure we don't pass null to GetConverter.
535
536 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
537
538         * XplatUIX1..cs: Use IntPtr size instead of int, as wee need to work
539         also on 64 bit machinges. Fixes the BadWindow errors while scrolling
540         in 64 bit machines.
541
542 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
543
544         * DataGridViewCell.cs: Correctly get converters for FormattedValue.
545         Use Format/FormatProvider before trying converters.
546         * DataGridViewCellStyle.cs: ApplyStyle should only apply things that
547         are 'set'.  Change constructor to not use ApplyStyle since it wants
548         everything applied.  Clone the Font.
549         * DataGridViewRowHeaderCell.cs: Start with DefaultCellStyle and
550         ApplyStyle the rest.
551
552 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
553
554         * ListView.cs: We need to calculate the scrollbars even if the handle
555         hasn't been created - this is needed when methods using scrollbars
556         info, such EnsureVisible, are called before control has been created.
557         Fixes #397272.
558
559 2008-06-05  George Giolfan  <georgegiolfan@yahoo.com>
560
561         * ThemeVisualStyles.cs: ScrollBar is now rendered with the VisualStyles API
562         only if the elements are defined. 
563
564 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
565
566         * ComboBox.cs: I'm an idiiot - forgot to commit the last ComboBox
567         section. Also, when setting bounds, snap height as well as save the
568         requested height if Dock has any value affecting the height: Left,
569         Right and Bottom - important if using IntegralHeight as true.
570
571 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
572
573         * ComboBox.cs: When calling UpdateComboBoxBounds, adjust the height
574         passed to SetBounds to reflect the new adjusted height (Integral-wise), 
575         instead of doing that only in our SetBoundsCore override, since the 
576         bounds cached can be the same as saved one and we could not get the
577         new height applied.
578         Fixes #396297.
579
580 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
581
582         * Theme.cs: Made ToolWindowCaptionButtonSize platform dependent.
583         * XplatUI.cs: Added ToolWindowCaptionButtonSize.
584         * XplatUIDriver.cs: Changed SmallCaptionButtonSize to 15,15. Added
585         ToolWindowCaptionButtonSize.
586         * XplatUIWin32.cs: Added ToolWindowCaptionButtonSize.
587
588 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
589
590         * MdiWindowManager.cs: Now uses SystemInformation.DoubleClickTime instead of
591         hard coded values.
592         * Theme.cs: Made DoubleClickTime plaform dependent.
593
594 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
595
596         * Theme.cs: Made ToolWindowCaptionHeight platform dependent.
597         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
598         ToolWindowCaptionHeight.
599
600 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
601
602         * InternalWindowManager.cs: The adjustment to ensure positive client area
603         sizes is now platform dependent (disabled on Windows).
604         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
605         RequiresPositiveClientAreaSize.
606
607 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
608
609         * Form.cs: Fixed null handling in Icon (see SettingIconToNull in the tests).
610
611 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
612
613         * InternalWindowManager.cs: Changed IconicSize to use
614         SystemInformation.MinimizedWindowSize.
615         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinimizedWindowSize.
616         * XplatUIDriver.cs: Changed MinimizedWindowSize to provide a default value.
617
618 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
619
620         * ComboBox.cs: If the combobox is anchored both on top and bottom,
621         adjust height if IntegralHeight is true when calling SetBoundsCore (as
622         likely the height was modified even if Height wasn't specified in
623         BoundsSpecified parameter).
624         Fixes part of #396297.
625
626 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com> 
627
628         * InternalWindowsManager.cs: Changed minimum window size while resizing to
629         SystemInformation.MinWindowTrackSize.
630         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinWindowTrackSize.
631         * XplatUIDriver.cs: Changed MinWindowTrackSize to provide a default value.
632
633 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
634
635         * MenuItem.cs: Fixed Dispose.
636
637 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
638
639         * ColumnHeader.cs: CalcColumnHeader now uses the theme to get the height.
640         * DataGridView.cs: * EnableHeadersVisualStyles: Fixed default value.
641         EnteredHeaderCell, PressedHeaderCell: Added.
642         * DataGridViewCell.cs: Refactored: Extracted GetBorderPen.
643         * DataGridViewColumnHeaderCell.cs, DataGridViewRowHeaderCell.cs: Gave the
644         theme a chance to override default painting.
645         * ListView.cs: Added EnteredColumnHeader. Refactored: Extracted
646         GetColumnHeaderInvalidateArea, Invalidate(ColumnHeader).
647         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added members for
648         ListView and DataGridView header rendering.
649         
650 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
651
652         * RichTextBox.cs: GetPositionFromCharIndex should return the 
653         visual position of the character relative to the viewport.
654         [Fixes part of bug #396664]
655
656 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
657
658         * GridEntry.cs: Make HasCustomEditor check for EditStyle != None 
659         and not just for the existance of an UITypeEditor. In some cases 
660         there is an editor associated just to do PaintValue, but which 
661         doesn't actually support editing.
662         [Fixes bug #396632]
663
664 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
665
666         * ComboBox.cs: page_size as well as vscrollbar.LargeChange should be 1
667         if needed, instead of 0 - this should help us in the corner case where
668         we have more than one item but we are only partially showing 1 item.
669         Fixes part of #374713.
670
671 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
672
673         * XplatUiX11.cs: When scrolling and detecting the obscured areas in a
674         control, return immediately if the any parent control's handle hasn't
675         been created or isn't visible, as well as avoiding creating the parent
676         Form if the handle hasn't been previously created.
677         Fixes tests.
678
679 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
680
681         * TableLayoutPanel.cs: Use border sizes when calculating the
682         panel's preferred size.  [Fixes part of bug #396433]
683
684 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
685
686         * SplitContainer.cs:
687          - Fix SplitterDistance to update only if needed. 
688          - Make it force min and max validation.
689          - Handle properly mouse moves outside the resizeable area.
690          [Fixes bug #396232]
691
692 2008-06-02  Andreia Gaita <avidigal@novell.com> 
693
694         * WebBrowserBase.cs: Implement support for ScriptErrorsSuppressed
695           (which also suppresses all popup dialogs). Throw NotSupported
696           exceptions for activex getters/setters.
697         * WebBrowser.cs: Implement DocumentStream, DocumentType, IsBusy,
698           IsOffline, ReadyState, ScriptErrorsSuppressed, ScrollbarsEnabled,
699           StatusText, Version, GoSearch
700         * HtmlDocument.cs: Add DocType support
701
702 2008-06-02  Andy Hume  <andyhume32@yahoo.co.uk>
703
704         * TextBox.cs: Implement TextBoxAutoCompleteSourceConverter.
705         [Fixes bug 396124]
706
707 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
708
709         * GridEntry.cs: Pass the ITypeDescriptorContext everywhere.
710
711 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
712
713         * TableLayoutPanel.cs: When calculating preferred size, use the
714         actual number of columns and rows, not what the user set them to.
715         [Fixes bug #396141]
716
717 2008-06-02  George Giolfan <georgegiolfan@yahoo.com> 
718
719         * Form.cs: Enabled managed handling of tool window MDI children. Fixes bug
720         394311.
721
722 2008-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
723
724         * XplatUIX11.cs: When detecting areas obscured in a control by other
725         toplevel windows while scrolling, return if the control hasn't a 
726         container form.
727         Fixes some tests.
728
729 2008-05-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
730
731         * XplatUIX11.cs: Properly detect the visible area of a control being
732         scrolled (obscured by other winforms controls and any X toplevel
733         windows), to mark as invalid the requested area to be scrolled that
734         isn't visible and thus can't be copied.
735         Fixes #324513.
736
737 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
738
739         * ListBox.cs: Compute the precise amount to vertically scroll when
740         using DrawMode.OwnerDrawVariable.
741         Patch by jkeymer (j.keymer@gmx.net).
742
743 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
744
745         * ComboBox.cs: Use ListBox-like scrollbar values In ComboListBox 
746         to avoid setting an invalid value for the verticall scrollbar 
747         when navigating items. And, duh, also remove my silly debug messages
748         from previous commits.
749         Fixes #374713.
750
751 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
752
753         * FlatButtonAppearance.cs: Make FlatButtonAppearanceConverter exandable and 
754         make it MS compatible.
755
756 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
757
758         * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs: 
759          - Allow the editing of entries even if their parent is read-only.
760          - Do not render expandable properties read-only.
761          - Refactor expansion checks form PropertyGrid into PropertyGrid.
762
763 2008-05-30  George Giolfan <georgegiolfan@yahoo.com> 
764
765         * ScrollBar.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
766         support for the hover style.
767
768 2008-05-29  Andreia Gaita <avidigal@novell.com> 
769
770         * ContainerControl.cs: Check for null dead-end when traversing the tree
771           of parent controls.
772         
773           [Fixes #394332, patch by Ernesto Carrea]
774
775 2008-05-29  Geoff Norton  <gnorton@novell.com>
776
777         * XplatUICarbon.cs: Fix a culture-dependent conversion to be the
778         constant that it is.  Fixes #393981
779
780 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
781
782         * Form.cs: Add a MonoTODO to the AutoScaleBaseSize setter explaining
783         that the user probably doesn't want to set this.
784
785 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
786
787         * ThemeWin32Classic.cs: Don't let the text size be bigger than
788         the control size for CheckBox/RadioBox.
789         [Fixes part of bug #394645]
790
791 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
792
793         * PropertyGrid.cs: Update the state of the sorting buttons in 
794         the toolbar if PropertySort is set programatically.
795
796 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
797
798         * GridItemCollection.cs: Add multiple items with conflicting names 
799         support and also preserve name ordering.
800         [Fixes #395345]
801
802 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
803
804         * GridItemCollection.cs: Revert my multiple items with same 
805         name patch.
806
807 2008-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
808
809         * ScrollBar.cs: Scrollbars should only react to left-clicks, not right
810         or middle ones.
811         Fixes part of #393908.
812
813 2008-05-28  Jonathan Pobst  <monkey@jpobst.com>
814
815         * ToolStripDrowDown.cs: When using the Show () methods that have a
816         Control parameter, set the menu owner to that Control.
817         [Fixes bug #394345]
818
819 2008-05-28  Ivan N. Zlatev  <contact@i-nz.net>
820
821         * PropertyGridTextBox.cs, PropertyGridView.cs: Implement validation.
822         [Fixes bug #362756]
823
824 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
825
826         * GridItemCollection.cs: Refactor to support multiple items with the 
827         same name.
828         [Fixes bug #394314]
829
830 2008-05-27  Jonathan Pobst  <monkey@jpobst.com>
831
832         * Control.cs: The 2.0 check for illegal cross thread calls in 
833         Control.Handle were throwing an exception when we were getting
834         the Handle in order to invoke correctly.  Created a private
835         version that does not contain this check.
836         [Fixes bug #394531]
837
838 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
839
840         * PropertyGrid.cs: Respect DefaultTabType.
841
842 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
843
844         * ListView.cs: SPACE selects an item.
845         [Fixes bug #393023]
846
847 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
848
849         * ListView.cs: Reset the search string whenever the items are 
850         modified.
851         [Fixes bug #393020]
852
853 2008-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
854
855         * ListControl.cs: For the first added item PositionChanged is fired
856         _before_ ItemChanged, which leave us in a temporary invalid state - so
857         we need to set the selected index from ItemChanged handler *if* we
858         know that the first item has just been added *and* the items have been
859         actually added to the ListControl.
860         Fixes #369048.
861
862 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
863
864         * TabControl.cs: Only clicks with the left button should be
865         handled.
866         Fixes #393908.
867
868 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
869
870         * ComboBox.cs: 
871         * FIleDialog.cs:
872         * TextBox.cs: Expose an internal method in TextBox to restore the
873         original context menu, and call it from ComboBox to re-use it in the
874         combobox containing the file name in FileDialog.cs.
875         Fixes part of #393775.
876
877 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
878
879         * ThemeVisualStyles.cs: Added support for the hot ComboBox drop down button
880         style.
881
882 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
883
884         * ComboBox.cs, Theme.cs, ThemeWin32Classic.cs: Added support for the hot drop
885         down button style.
886
887 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
888
889         * ComboBox.cs: Minor correction to previous patch: PageDown should
890         also *try* to move by one item if the computed offset is negative,
891         just like the PageUp case.
892
893 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
894
895         * ComboBox.cs: When navigating using PageDown/PageUp the navigation
896         should be done for at least 1 item, and not stay at the same item.
897         Fixes part of #374713.
898
899 2008-05-23  Jonathan Pobst  <monkey@jpobst.com>
900
901         * FileDialog.cs: Add a FSEntryComparer, and use it to sort the
902         directories.  [Fixes bug #393931]
903
904 2008-05-22  Andreia Gaita <avidigal@novell.com> 
905
906         * WebBrowser.cs: Implement DocumentText. Implement AllowNavigation.
907           Don't fire events until the initial about:blank page has finished
908           loading. Clean up events.
909
910 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
911
912         * XplatUIX11.cs : when we call WM_SETFOCUS, call X11Keyboard
913           FocusIn() too. This should fix the issue on switching
914           scim keyboards.
915
916 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
917
918         * X11Keyboard.cs : set XIM font size to somewhat reasonable
919           number (ideally the input textbox size, but that could be
920           too messy).
921
922 2008-05-22  Jonathan Pobst  <monkey@jpobst.com>
923
924         * ToolStripTextBox.cs: List for the TextBox's TextChanged and fire
925         the ToolStripItem's TextChanged.  [Fixes bug #393597]
926
927 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
928
929         * TabControl.cs: When invalidating in SelectedIndex and we need to
930         inflate to take into account the border of the tabs, make sure that
931         the invalidated rect doesn't overflow the control bounds, since that
932         would avoid updating at all.
933
934 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
935
936         * TabControl.cs: Don't substract scroller width from the row width,
937         since we need to take into account the total width of the control when
938         calculating the position of the tabs. This avoids showing scroller
939         when it is actually not needed.
940         Fixes part of #322325.
941
942 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
943
944         * ThemeVisualStyles.cs: Added support for TextBoxBase.
945
946 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
947
948         * RichTextBox.cs, TextBoxBase.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
949         Extracted TextBoxBase.Draw and Theme.TextBoxBase*.
950
951 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
952
953         * DataGridView.cs: Only paint the top left header cell if there
954         are columns.
955
956 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
957
958         * DataGridView.cs: When binding to a BindingSource, get the underlying
959         list to bind to.  [Fixes bug #345483]
960
961 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
962
963         * DataGridView.cs: Do not bind to collection properties.
964         [Fixes bug #337470]
965
966 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
967
968         * ThemeVisualStyles.cs: Added support for the hot TrackBar thumb style.
969
970 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
971
972         * Theme.cs, ThemeWin32Classic.cs, TrackBar.cs: Added support for the hot
973         thumb style.
974
975 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
976
977         * ThemeVisualStyles.cs: Added support for ToolTip transparent background.
978
979 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
980
981         * Theme.cs, ThemeWin32Classic.cs, ToolTip.cs: Added support for transparent
982         background.
983
984 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
985
986         * ThemeVisualStyles.cs: Added support for ToolBar hot and hot checked styles.
987
988 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
989
990         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs: Added support for hot and hot
991         checked styles.
992
993 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
994
995         * TabControl.cs: Extended to handle the hot style.
996
997 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
998
999         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs, UpDownBase.cs:
1000         Extended UpDownBase code to handle hot and disabled styles.
1001
1002 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
1003
1004         * DataGridView.cs: Handle databinding to generic list type things.
1005         [Fixes bug #325239]
1006
1007 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
1008
1009         * DataGridViewCellCollection.cs: Add a method to find the cell
1010         with the given DataPropertyName.
1011         * DataGridViewColumn.cs: Track if the column was autogenerated or not.
1012         * DataGridViewColumnCollection.cs: Add a method to clear all
1013         autogenerated columns.
1014         * DataGridView.cs: If AutoGenerateColumns is false, don't autogenerate
1015         columns.
1016         [Fixes bug #348082]
1017
1018 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
1019
1020         * DataGridView.cs: Don't try to update the RowTemplate with
1021         a null CellTemplate.
1022
1023 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
1024
1025         * DataGridViewColumn.cs: Allow IsDataBound to be set internally.
1026         * DataGridViewColumnCollection.cs: Ensure OnColumnAdded is called.
1027         * DataGridView.cs: Lots of fixes/enhancements to databinding to
1028         a DataSet.
1029
1030 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
1031
1032         * Control.cs: Remove invalidating implicit child controls when
1033         control is invalidated.  It was causing too many redraws on
1034         controls with implicit scrollbars.
1035         * ListView.cs: Listen to the Invalidated event and invalidate
1036         child controls.
1037
1038 2008-05-20  Andreia Gaita <avidigal@novell.com> 
1039
1040         * WebBrowserBase.cs, WebBrowser.cs: Hook up page loading events
1041         * HtmlDocument.cs: Check for nulls
1042
1043 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1044
1045         * Control.cs: In ControlCollection.RemoveInternal, remove the
1046         internal control before calling PerformLayout and OnControlRemoved,
1047         which was leaving us in an invalid state and causing a X error (bad
1048         match). Observe that Remove () call has the same order.
1049         Fixes an X error changing ComboBoxStyle.DropDownStyle.
1050
1051 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1052
1053         * TabControl.cs: Don't paint by ourselved and instead let OnPaint
1054         being fired if ControlStyles.UserPaint style is activated.
1055         Fixes #371905.
1056
1057 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
1058
1059         * GridEntry.cs: Don't be so strict when setting the value - 
1060         do not check if what we set is what we get.
1061         [Fixes bug #389245]
1062
1063 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
1064
1065         * XplatUIX11.cs: If there are no timers timeout should be 0
1066         [Fixes bug #363522]
1067
1068 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
1069
1070         * Control.cs: As a followup to invalidating implicit children when
1071         a control is invalidated, only invalidate them if they are in the
1072         clip rectangle.
1073
1074 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1075
1076         * ThemeVisualStyles.cs: Implemented partial support for ToolTip.
1077
1078 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1079
1080         * ThemeWin32Classic.cs: Refactored: Extracted ToolTipDrawBackground.
1081
1082 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1083
1084         * GroupBoxRenderer.cs: Fixed text area clipping in the Visual Styles case.
1085         * XplatUIWin32.cs: Made Win32DeleteObject public.
1086
1087 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
1088
1089         * GridEntry.cs: Determine HasDefaultValue more strictly by using 
1090         PropertyDescriptor.ShouldSerializeValue.
1091         [Fixes bug #391924]
1092
1093 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1094
1095         * ThemeVisualStyles.cs: Enabled support for ScrollBar element styles not present
1096         in the classic theme.
1097
1098 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1099
1100         * ScrollBar.cs: Added FirstButtonEntered, SecondButtonEntered, ThumbEntered,
1101         ThumbPressed.
1102         * Theme.cs, ThemeWin32Classic.cs: Added ScrollBarHasHotElementStyles,
1103         ScrollBarHasPressedThumbStyle.
1104
1105 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1106
1107         * TextRenderer.cs: Included some methods in the 1.1 profile.
1108
1109 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
1110
1111         * Control.cs: When we make a control visible, it may have been
1112         previously visible and while it wasn't visible, the z-order of
1113         things may have been shuffled, so the control needs to have its
1114         z-order updated just in case.  [Fixes bug #391518]
1115
1116 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1117
1118         * ThemeVisualStyles.cs: Added support for GroupBox.
1119
1120 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
1121
1122         * GroupBoxRenderer.cs: Included in the 1.1 profile.
1123
1124 2008-05-16  Atsushi Enomoto  <atsushi@ximian.com>
1125
1126         * XplatUIX11.cs, X11Keyboard.cs : redoing r103060 with fix for
1127           bug #389996; XSelectInput() behaved as mouse handler robber,
1128           so remove extra call to it.
1129
1130 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
1131
1132         * Control.cs: Simplify ControlCollection.Contains method.
1133
1134 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
1135
1136         * DataGridViewRow.cs: Implement GetPreferredSize.
1137
1138 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
1139
1140         * DataGridViewComboBoxCell.cs: Don't declare text twice.  Fixes build.
1141
1142 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
1143
1144         * DataGridViewComboBoxCell.cs: Implement some NIEX stuffs, better
1145         painting and edit control fixes.
1146
1147 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
1148
1149         * DataGridView.cs, DataGridViewCell.cs: Work around some external
1150         checks to make sure we are in an actual row/col for top left header cell.
1151         * DataGridViewTopLeftHeaderCell.cs: Implement some NIEX's.
1152
1153 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
1154
1155         * Control.cs: Use long instead of int when handling WParam from
1156         mousewheel scrolling.  Int was overflowing on Win64.
1157
1158 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
1159
1160         * FlowLayoutPanel.cs, ScrollableControl.cs: We need to layout the
1161         flow panel without scrolling first, and then calculate the 
1162         scrolling based on the new layout.  [Fixes bug #390149]
1163
1164 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
1165
1166         * ListBox.cs: Invalidate after scrolling up when selected index
1167         changes.  [Fixes bug #390151]
1168
1169 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1170
1171         * ComboBox.cs: When setting mode to Simple *and* height hasn't been
1172         set, default height to 150. I tried first with DefaultSize, but this
1173         is not generating a SetBoundsCore call before handle creation time, so
1174         we can take it into account. This is just what .net does.
1175
1176 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
1177
1178         * XplatUIX11.cs, X11Keyboard.cs: Had to revert eno's r103060,
1179         as it broke some stuff.  Calberto is filing a bug for eno to
1180         work with.
1181
1182 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1183
1184         * ComboBox.cs: When handling PageDown pressed event, set SelectedIndex
1185         to 0 is the current value is -1, and if style is not Simple, just
1186         return, like .net does.
1187         Fixes part of #374713.
1188
1189 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
1190
1191         * ThemeWin32Classic.cs, ThemeVisualStyles.cs: When calculating
1192         progress bar stuffs, use doubles instead of ints to prevent
1193         overflow.  [Fixes bug #389798]
1194
1195 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
1196
1197         * XplatUIX11.cs, X11Keyboard.cs :
1198           Significant refactoring on XIM support. Now IM engine UI
1199           should show up, at mostly-correct preedit position.
1200           - Eliminated use of FocusWindow, as it is never mapped
1201             and hence blocks correct preedit position. XIC is now
1202             created per window, and it must be destroyed too when
1203             the window is destroyed.
1204           - WM_QUIT messages should not be filtered even when hwnd
1205             is zombie. Filtering it could cause endless loop.
1206           - Preedit position must move only when the window is alive.
1207           - Make it IDisposable and make sure to release XIM/XICs.
1208
1209 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
1210
1211         * Timer.cs, Control.cs, Form.cs, ApplicationContext.cs,
1212           XplatUIX11.cs, XplatUIWin32.cs :
1213           fix for bug #325033 and #387693;
1214           - WM_QUIT should not be sent when no running application
1215             exists.
1216           - SetTimer/KillTimer (especially on win32) should be
1217             invoked for the window that the timer is/will_be attached.
1218           - There could be unattached timers to a window when it's
1219             started. For those timers, hold pending timers and when
1220             a window is mapped, attach them to it.
1221           - WaitForHwndMessage() could run into loop when
1222             WM_SHOWWINDOW is handled before this method is called.
1223             So, strictly check wm_showwindow state.
1224           - Tick handler should not be invoked while one Tick handler
1225             call is still running (introduced Busy state).
1226
1227 2008-05-13  Andreia Gaita <avidigal@novell.com> 
1228
1229         * WebBrowserBase.cs: Override Internal alternative methods for
1230           SetBoundsCore and OnResize instead of the protected ones.
1231         * Control.cs: Move SetBoundsCore and OnResize implementations to
1232           SetBoundsCoreInternal and OnResizeInternal, so they can be
1233           overriden internally (WebBrowserBase needs to catch them but can't
1234           override the protected methods without api compat problems)
1235
1236 2008-05-13  Andreia Gaita <avidigal@novell.com> 
1237
1238         * WebBrowserBase.cs: Hiding away non-public overrides for api compat
1239
1240 2009-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1241
1242         * Binding.cs:
1243         * ListView.cs: Remove debug messages.
1244
1245 2008-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1246
1247         * ComboBox.cs: Don't do any calculation for simple mode if the listbox
1248         area is empty. Also calculate scrollbars in Simple mode based in area
1249         height and total number of items, not in MaxDropDownItems.
1250         Fixes part of #371991.
1251
1252 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1253
1254         * PictureBox.cs: Always invalidate on resize.  Fixes an app for jhill.
1255
1256 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1257
1258         * BindingSource.cs: GetListSortDescription is not public.
1259
1260 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1261
1262         * WebBrowser.cs, WebBrowserBase.cs, WebBrowserSiteBase.cs: corcompare.
1263
1264 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1265
1266         * HtmlElement.cs: Fix parameter names to match MS.
1267         * HtmlWindowCollection.cs: Should not be sealed.
1268
1269 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1270
1271         * ThemeWin32Classic.cs: Always draw the scrollbar area under the thumb
1272         button, because the thumb button will not get drawn if the scrollbar
1273         is disabled.  [Fixes bug #389262]
1274
1275 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1276
1277         * ListBox.cs: Handle End key for multi-column listboxen.
1278         [Fixes bug #389266]
1279
1280 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1281
1282         * ListBox.cs: Fix algorithm to determine which column our item is in.
1283         [Fixes bug #389265]
1284
1285 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1286
1287         * ListBox.cs: Invalidate when the listbox is resized.
1288         [Fixes bug #389256]
1289
1290 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1291
1292         * ListBox.cs: There is always at least one row in the ListBox (if
1293         we are doing these calculations.)  [Fixes bug #389253]
1294
1295 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
1296
1297         * ListBox.cs: There is always at least one column in the ListBox.
1298         [Fixes bug #389250]
1299
1300 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1301
1302         * ComboBox.cs: When handle is created call UpdateComboBoxBounds to
1303         ensure in Simple mode that the height is exactly the requested one.
1304         Also add the ComboBoxListControl to the controls collection in Simple
1305         mode even if handle hasn't been created.
1306         Fixes part of #371991.
1307
1308 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1309
1310         * ComboBox.cs: For ComboListBox control -specially in Simple mode-, give focus to
1311         our ComboBox owner instead of giving it back to the previous control (
1312         as done in other controls). Also remove the empty override of Select
1313         method, since we want to be selected *and* give focus to our owner.
1314         This should let the user do keys-navigation in Simple mode. 
1315
1316 2008-05-10  Geoff Norton  <gnorton@novell.com>
1317
1318         * XplatUICarbon.cs: Dont use HIViewScrollRect as it's causing painting
1319         problems with rapid scrolling of treeviews. Fixes #381084
1320
1321 2008-05-10  Geoff Norton  <gnorton@novell.com>
1322
1323         * XplatUICarbon.cs: Deactivate the active window before
1324         activating the desired window.  Completes fixing #386504
1325
1326 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1327
1328         * ListView.cs: When calculating scrollbars, set horizontal scroll bar
1329         SmallChange to the item size width plus the padding, to match .net.
1330
1331 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1332
1333         * FileDialog.cs: Apply the custom filter typed by the user in the file
1334         name combobox as much as possible while navigating in the file dialog.
1335         Fixes #385261.
1336
1337 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1338
1339         * Binding.cs: Actually use NullValue if the retrieved value of
1340         data source is null or DBNull. Makes a test pass.
1341
1342 2008-05-09  Jonathan Pobst  <monkey@jpobst.com>
1343
1344         * ErrorProvider.cs, Form.cs: Get icons from ResourceImageLoader.
1345         * MimeIcon.cs: Provide a way to get icons from resources.
1346
1347 2008-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1348
1349         * Binding.cs: When the value retrieved from the control to be assigned
1350         to the data source is null, actually use the 2.0 DataSourceNullValue
1351         value. Make pass a data binding test.
1352
1353 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
1354
1355         * Control.cs: We need to invalidate implicit children even when
1356         invalidate is called with invalidatechildren = false.  (Implicit
1357         children are really part of the parent.)
1358         * ListView.cs: Double-buffer internal child controls for less
1359         flicker.
1360         * ThemeWin32Classic.cs: Remove an extra nested loop in drawing
1361         owner ListView subitems for greatly increased performance.
1362         [Fixes bug #388477]
1363
1364 2008-05-08  Carlos Alberto Cortez <calebrto.cortez@gmail.com>
1365
1366         * FileDialog.cs: When the user types a wildcard character in the
1367         filename combobox, update the contents of the folder using the text as
1368         a filter.
1369         Fixes part of #385261.
1370
1371 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
1372
1373         * ListBox.cs: Various fixes for MultiColumn listboxen.
1374         [Fixes bug #388114]
1375
1376 2008-05-08  Andreia Gaita <avidigal@novell.com> 
1377
1378         * HtmlElement.cs: Implement Style property
1379
1380 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
1381
1382         * ListBox.cs: Respect checkboxes when measuring item size.
1383         * ThemeWin32Classis.cs: When drawing list items, don't draw
1384         text outside of the item's bounds to prevent overlapping.
1385         (.Net actually overlaps, but that's just silly.)
1386         [Fixes bug #388117]
1387
1388 2008-05-08  Everaldo Canuto  <ecanuto@novell.com>
1389
1390         * NotifyIcon.cs: Call SetForegroundWindow before show context menu. Thanks
1391         Gert Driesen. Fixes bug #324830. 
1392
1393 2008-05-07  Everaldo Canuto  <ecanuto@novell.com>
1394
1395         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: SetForegroundWindow
1396         method implemented.
1397
1398 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1399
1400         * BindingSource.cs: When calling IsSynchronized, return the value of
1401         the related IList list.
1402
1403 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1404
1405         * ListBindingHelper.cs: Fix some bits in GetListItemProperties, to
1406         make a test pass.
1407
1408 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
1409
1410         * DataGridView.cs: Implement PageUp/PageDown keys.  Extend keyboard
1411         navigation to scroll the grid if the current cell is not visible.
1412
1413 2008-05-07  Andreia Gaita <avidigal@novell.com> 
1414
1415         * HtmlElement.cs: Implement TabIndex
1416
1417 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
1418
1419         * ListBox.cs: Respect ScrollAlwaysVisible and HorizontalScrollbar
1420         properties, even when there are no items.
1421         [Fixes bug #387611]
1422
1423 2008-05-07  Ivan N. Zlatev  <contact@i-nz.net>
1424
1425         * NativeWindow.cs: Add support for multiple handles per window.
1426         * NativeWindows.cs, LibSupport.cs, Control.cs, XplatUIX11GTK.cs, 
1427         XplatUIX11.cs, X11Display.cs: Do not access NativeWindow.windows_collection 
1428         directly - use FromHandle instead.
1429         [Fixes bug #374660]
1430
1431 2008-05-07  Andreia Gaita <avidigal@novell.com> 
1432
1433         * HtmlElement.cs: Implement InnerHTML setter
1434
1435 2008-05-07  Andreia Gaita <avidigal@novell.com> 
1436
1437         * HtmlDocument.cs: Implement Focused
1438
1439 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1440
1441         * BindingSource.cs: Minor fixes to the the ApplySort and Remove sort
1442         methods, as well as add messages to the exceptions.
1443
1444 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1445
1446         * BindingSource.cs: Setting DataSource should only reset DataMember if
1447         the previous value was null (make pass a not working test).
1448
1449 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1450
1451         * BindingSource.cs: When EndInit call is postponed and is called until
1452         DataSource.EndInit is called, remove the handler for data source.
1453
1454 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
1455
1456         * ToolStripManager.cs: Don't use IsAlive, race condition, etc. etc.
1457
1458 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
1459
1460         * ToolStripManager.cs: Store references to toolstrips as
1461         weak references so they do not prevent forms from getting collected.
1462         [Fixes bug #386483]
1463
1464 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
1465
1466         * TrackBar.cs: We can't set ResizeRedraw because it isn't set
1467         on .Net.  So do the same thing in WndProc.
1468
1469 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
1470
1471         * TrackBar.cs: Commit patch from Andy Hume that corrects
1472         the clickable areas to better match .Net.
1473         [Fixes bug #387074]
1474
1475 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
1476
1477         * TrackBar.cs: Commit patch from Andy Hume that adds the
1478         ResizeRedraw control flag so the track bar repaints itself
1479         when it is resized.  [Fixes bug #387072]
1480
1481 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
1482
1483         * TrackBar.cs: Commit patch from Andy Hume that adds better
1484         support for keyboard navigation when the TrackBar is vertical.
1485         [Fixes bug #387071]
1486
1487 2008-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1488
1489         * BindingSource.cs: Implement ISupportInitializeNotification support.
1490
1491 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
1492
1493         * ThemeVisualStyles.cs: Added support for ToolBar.
1494
1495 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
1496
1497         * ToolBar.cs: Made the Vertical property internal.
1498
1499 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
1500
1501         * ThemeVisualStyles.cs: Added support for TrackBar.
1502
1503 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
1504
1505         * ThemeWin32Classic.cs: Refactored: Extracted TrackBarGetThumbSize,
1506         TrackBarDrawVerticalTrack, TrackBarDrawVerticalThumbRight,
1507         TrackBarDrawVerticalThumbLeft, TrackBarDrawVerticalThumb,
1508         TrackBarGetVerticalTickPainter, TrackBarDrawHorizontalTrack,
1509         TrackBarDrawHorizontalThumbBottom, TrackBarDrawHorizontalThumbTop,
1510         TrackBarDrawHorizontalThumb, TrackBarGetHorizontalTickPainter.
1511
1512 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
1513
1514         * ThemeVisualStyles.cs: Added support for UpDownBase.
1515
1516 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
1517
1518         * Theme.cs, ThemeWin32Classic.cs, UpDownBase.cs: Refactored:
1519         Extracted Theme.UpDownBaseDrawButton.
1520
1521 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
1522
1523         * ToolStrip.cs, ToolStripDropDownItem.cs: Make sure toolstrips are
1524         removed from the static toolstrips collection in ToolStripManager
1525         when they are disposed.  Provides a workaround for bug #386483.
1526
1527 2008-05-05  Ivan N. Zlatev  <contact@i-nz.net>
1528
1529         * GridEntry.cs: Read-only properties with Editor with 
1530         UITypeEditorEditStyle.Modal shouldn't be read-only in the PropertyGrid.
1531         [Fixes bug #384184]
1532
1533 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
1534
1535         * MenuStrip.cs, ToolStrip.cs: Guard against an NRE when pressing
1536         the menu key and there are no items on the menu.
1537         [Fixes bug #386644]
1538
1539 2008-05-05  Sebastien Pouliot  <sebastien@ximian.com>
1540
1541         * Control.cs: Avoid calling ToString on a string.
1542         * Form.cs: Avoid calling ToString on a string. Found using Gendarme.
1543         * GroupBox.cs: In FlatStyle property throw, not just create, the 
1544         exception. Avoid calling ToString on a string.
1545         * ProgressBar.cs: Avoid calling ToString on a string. 
1546         * ScrollBar.cs: Avoid calling ToString on a string. 
1547         [All issues were found using Gendarme]
1548
1549 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
1550
1551         * NotifyIcon.cs: Prevent click events to be trigger after double click 
1552         events. Fixes remaining issues of bug #324832.
1553
1554 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
1555
1556         * NotifyIcon.cs: Trigger click and mouseclick events after mouseup event
1557         to mimic win32 behavior. Partially fixes bug #324832.
1558
1559 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1560
1561         * BindingSource.cs: Implement Find methods.
1562
1563 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1564
1565         * BindingSource.cs: Implement Sort, ApplySort overloads, and
1566         RemoveSort methods.
1567
1568 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1569
1570         * ListBindingHelper.cs: When calling GetListItemProperties and the
1571         passed object is ITypedList, return the result of
1572         ITypedList.GetItemProperties instead.
1573
1574 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
1575
1576         * LinkLabel.cs: Set default value of name on constructor of Link class
1577         only for 2.0 profile.
1578
1579 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
1580
1581         * LinkLabel.cs: Fix implementation of LinkCollection.LinksAdded property.
1582         Fixes remaining issues of bug #346154.
1583
1584 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
1585
1586         * LinkLabel.cs: Set a default value for name on internal contructor of
1587         Link class. It fixes assert B5 of LinkCollectionTest.Constructor1.
1588
1589 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
1590
1591         * LinkLabel.cs: Move links collection from LinkCollection to LinkLabel
1592         and refer all instances to owner.links. Partially fixes #346154.
1593
1594 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1595
1596         * LinkLabel.cs: Fix linkarea values for empty text, must have start and 
1597         length equal zero. Also called CreateLinkPieces in constructor. It fixes
1598         the LinkLabel test 'TestLinkArea'.
1599
1600 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1601
1602         * Form.cs: Remove menu before close form to prevent form to be not gaced.
1603         [Fixes #386460]
1604
1605 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1606
1607         * MenuAPI.cs: Dispose popup window after hide. Thanks to Jesse Jones.
1608         [Fixes #386463]
1609
1610 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1611
1612         * MenuAPI.cs: Implemented keyboard navigation for ContextMenu.
1613         [Fixed bug #357004]
1614
1615 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1616
1617         * MenuAPI.cs: Remove unused ProcessCmdKey method.
1618
1619 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1620
1621         * MenuAPI.cs: Prevent NRE in menu deactivation when shortcut is used. 
1622         [Fixes bug #375398]
1623
1624 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1625
1626         * MenuAPI.cs: Enable implicit mnemonics for menus. Fixes remaining issues
1627         of bug #367492.
1628
1629 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
1630
1631         * MenuAPI.cs: Check if mouse down comes from menu, we need it because
1632         sometimes we open a conext menu on mouse down of some controls and the mouse
1633         up is dispatched to menu and dont need to. It fix remaining issues of 
1634         #363711 and other problems related to menu mouse click events.
1635
1636 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
1637
1638         * MonthCalendar.cs: Implemented "Go to today" context menu, also changed
1639         some var names to better fit changes, now we have month_menu and today_menu
1640         vars. Fixes bug #363711.
1641
1642 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
1643
1644         * MonthCalendar.cs: Handle every right mouse click to open context menu,
1645         right now the default month menu but it will be change to have "Go to today"
1646         menu.
1647
1648 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1649
1650         * FileDialog.cs, MaskedTextBox.cs, OpenFileDialog.cs: corcompare.
1651
1652 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
1653
1654         * ThemeWin32Classic.cs: Fix MonthCalendar arrows drawing.
1655
1656 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
1657
1658         * ThemeVisualStyles.cs: Added support for TreeView.
1659
1660 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
1661
1662         * Theme.cs, ThemeWin32Classic.cs, TreeView.cs: Refactored:
1663         Moved TreeView.DrawNodePlusMinus to Theme.TreeViewDrawNodePlusMinus.
1664
1665 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1666
1667         * OpenFileDialog.cs: Implement 2.0 SP1 stuffs.
1668
1669 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1670
1671         * FileDialogCustomPlace.cs, FileDialogCustomPlacesCollection.cs:
1672         Implement 2.0 SP1 stuffs.
1673
1674 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1675
1676         * FileDialog.cs: Implement 2.0 SP1 stuffs.
1677
1678 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1679
1680         * Control.cs, ContainerControl.cs, DataGridView.cs, TextBoxBase.cs:
1681         Implement CanEnableIme property. (2.0 SP1)
1682
1683 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1684
1685         * BindingManagerBase.cs, PropertyManager.cs: Hide GetItemProperties
1686         from the 2.0 API.
1687
1688 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1689
1690         * Control.cs: Provide an internal way for a control to override
1691         the setting of Height.
1692         * DateTimePicker.cs: Remove SetBoundsCore from 2.0 profile,
1693         set height using new method.
1694
1695 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
1696
1697         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawMixedCheckBox.
1698
1699 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
1700
1701         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
1702         ControlPaint.DrawMixedCheckBox now calls Theme.CPDrawMixedCheckBox.
1703
1704 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
1705
1706         * ThemeVisualStyles.cs: Added support for StatusBar.
1707
1708 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1709
1710         * DataObject.cs: Add the other IDataObject interface.
1711
1712 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
1713
1714         * ThemeWin32Classic.cs: Refactored: extracted DrawStatusBarBackground,
1715         DrawStatusBarSizingGrip, DrawStatusBarPanelBackground.
1716
1717 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1718
1719         * DataGridViewCheckBoxCell.cs, DataGridViewImageCell.cs: Fix parameter names.
1720         * ListView.cs: Hide non-public API.
1721         * MaskedTextBox.cs: Remove extra attribute.
1722
1723 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
1724
1725         * DataGridViewImageCell.cs: Use formatted value instead of value
1726         to calculate preferred size.
1727
1728 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
1729
1730         * ListBox.cs: Move some initialization around so that selected_indices
1731         is not accessed before it is created.
1732
1733 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
1734
1735         * InputLanguageCollection.cs: Implement the collection better.
1736         [Fixes bug #385506]
1737
1738 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
1739
1740         * ToolStripDropDownItem.cs: Get the correct event object for
1741         DropDownItemClicked.
1742         * ToolStripMenuItem.cs: Raise DropDownItemClicked on our owner.
1743         [Fixes bug #385475]
1744
1745 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
1746
1747         * DataGridViewRowCollection.cs: We don't currently support shared 
1748         rows.  Should fix test failures caused by previous commit.
1749
1750 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
1751
1752         * DataGridViewRow.cs: Fixes for cloning the row, ensure header cell's
1753         datagridview gets set.  Only paint cells in visible columns.
1754         * DataGridViewCell.cs: Draw border after cell content.
1755         * DataGridView.cs: Invalidate after setting some properties.  Only
1756         use visible columns.  Fit hit test bug with areas in the col/row header
1757         area but not in a row or col.  Implement UpdateCell/Row methods.
1758
1759 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
1760
1761         * DataGridViewElement.cs: Don't throw NIEX.
1762         * DataGridViewColumnHeaderCell.cs: Draw error icons for top left header cells.
1763         * DataGridViewColumnDesignTimeVisibleAttribute.cs: Don't throw NIEX.
1764         * DataGridViewCheckBoxColumn.cs: Implement ToString.
1765         * DataGridViewCheckBoxCell.cs: Allow DBNull as a value.
1766         * DataGridViewCell.cs: Don't raise CellFormatting for RowHeader cells,
1767         if the user filled in the formatting Value, use it.
1768
1769 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
1770
1771         * DataGridViewTextBoxCell.cs: Fix for objects that cannot be cast
1772         to a string.
1773
1774 2008-04-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1775
1776         * BindingSource.cs: Some corrections to Filter property, as well as
1777         setting it for our list when resetting it.
1778
1779 2008-04-29  Jonathan Pobst  <monkey@jpobst.com>
1780
1781         * ScrollBar.cs: Don't let dragging the thumb grip set the value greater
1782         than the maximum.  Fixes reopened bug #384182.
1783
1784 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
1785
1786         * ToolStripDropDown.cs: Fix offscreen position for DropDown itens.
1787         Fixes remaining issues of #367490.
1788
1789 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
1790
1791         * ToolStripDropDown.cs: Screen.Bound dont return right value then use 
1792         SystemInformation.WorkingArea to get max_screen value.
1793
1794 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1795
1796         * BindingSource.cs: Implement Filter and RemoveFilter.
1797
1798 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
1799
1800         * MenuAPI.cs: Prevent sub-menu positon to be less than zero.
1801
1802 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1803
1804         * X11Dnd.cs: When trying to convert data and we know we started the
1805         dnd loop, don't try to use the cached data if the loop is not running,
1806         which means that the data has been resetted.
1807         Fixes #378191.
1808
1809 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
1810
1811         * MenuAPI.cs: Force first menu subitem to show from left to right to mimic
1812         win32 behavior.
1813
1814 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
1815
1816         * MenuAPI.cs: Check the screen limits before show sub-menus and prevent
1817         it to drawn off screen edge. Fixes bug #367490.
1818
1819 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
1820
1821         * MenuAPI.cs: In PopupWindow.RefreshItems uses a temp point var to store
1822         menu position to have only one assignment of Location var.
1823
1824 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
1825
1826         * MenuAPI.cs: Implement the right key for sub-menus. Thanks Ernesto Carrea
1827         for this patch. Fixes bug #384115.
1828
1829 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
1830
1831         * ScrollBar.cs: If SmallChange is larger than LargeChange, make them
1832         the same.  If LargeChange is zero, set a minimum size for the scroll
1833         thumb grip.  [Fixes bug #384182]
1834
1835 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
1836
1837         * TextBoxTextRenderer.cs: Don't turn &A into a prefix for textboxen.
1838         [Fixes bug #384181]
1839
1840 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
1841
1842         * ListBox.cs: Math.Min should be Math.Max.  [Fixes bug #384183]
1843
1844 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
1845
1846         * ThemeVisualStyles.cs: Added partial support for ScrollBar (based on the
1847         patch from Ernesto).
1848
1849 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
1850
1851         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawComboButton.
1852
1853 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
1854
1855         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawButton.
1856
1857 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
1858
1859         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawRadioButton.
1860
1861 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
1862
1863         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawScrollButton.
1864
1865 2008-04-27  George Giolfan  <georgegiolfan@yahoo.com>
1866
1867         * ThemeVisualStyles.cs: Added support for ButtonBase.UseVisualStyleBackColor.
1868
1869 2008-04-27  Andreia Gaita <avidigal@novell.com> 
1870
1871         * HtmlWindow.cs, HtmlHistory.cs: Throw on DomHistory getter (it's
1872           supposed to return a reference to an mshtml interface, which we
1873           don't support).
1874         * HtmlElement.cs: Throw on DomElement getter (it's supposed to return a
1875           reference to an mshtml interface, which we don't support). Code
1876           formatting cleanup.
1877         * HtmlDocument.cs: Add DefaultEncoding getter implementation. Throw on
1878           DomDocument getter (it's supposed to return a reference to an
1879           mshtml interface, which we don't support). Code formatting cleanup.
1880
1881 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1882
1883         * ListView.cs: Ouch, forgot to commit.
1884
1885 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1886
1887         * ListView.cs: 
1888         * ThemeWin32Classic.cs: Fire the -until now- forgotten CacheVirtualItems event.
1889
1890 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1891
1892         * ListView.cs: When calculating box selection for virtual mode, don't
1893         look for intersection with item's text, but item bounds, since that
1894         would mean read ListViewItem's text for _every_ item, and that's
1895         something we just can't do in virtual mode (items are only requested
1896         when drawn).
1897
1898 2008-04-26  George Giolfan  <georgegiolfan@yahoo.com>
1899
1900         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCaptionButton and
1901         partial support for managed windows (based on the patch from Ernesto).
1902
1903 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1904
1905         * ListView.cs: When doing a key search use FindItemWithText method
1906         instead of doing the search by ourselves, this way we avoid
1907         duplicating the code and also we handle the special case for virtual
1908         mode. To achieve that make our private overload of FindItemWithText
1909         internal and also have a 'roundtrip' parameter.
1910
1911 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1912
1913         * ListView.cs: When doing the layout don't request the
1914         ListViewItem instance if we are in virtual mode (since we can't request it
1915         until the item is actully drawn).
1916
1917 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
1918
1919         * ThemeVisualStyles.cs: Added support for ProgressBar (based on the patch 
1920         from Ernesto).
1921
1922 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
1923
1924         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCheckBox (based on 
1925         the patch from Ernesto).
1926
1927 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
1928
1929         * ThemeEngine.cs: Added code to select ThemeVisualStyles.
1930         * ThemeVisualStyles.cs: Added.
1931
1932 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
1933
1934         * IDeviceContext.cs: Added a missing using.
1935
1936 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
1937
1938         * ButtonBase.cs: Made IsDefault protected internal.
1939         * ButtonRenderer.cs: Made GetPushButtonRenderer(PushButtonState) internal.
1940
1941 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
1942
1943         * Application.cs: Included VisualStyles-related members in the 1.1 profile.
1944         * ButtonRenderer.cs, CheckBoxRenderer.cs, Padding.cs, PaddingConverter.cs,
1945         RadioButtonRenderer.cs: Included in the 1.1 profile.
1946         * IDeviceContext.cs: Added.
1947         * TextRenderer.cs: Included a member in the 1.1 profile.
1948
1949 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
1950
1951         * ThemeWin32Classic.cs: Added ShouldPaintFocusRectangle(ButtonBase).
1952
1953 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
1954
1955         * ErrorProvider.cs: Make the error icons come after the control
1956         they refer to.  It isn't the way the MS does it, but its better
1957         than what we were doing.  See bug #368587.
1958
1959 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
1960
1961         * InputLanguage.cs, InputLanguageCollection.cs: Apply patch
1962         from Eric Albright that lazy loads the input language as ensures
1963         everything gets properly initialized.  Fixes bug #373871.
1964
1965 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
1966
1967         * ToolStrip.cs: Don't use ToolStripControlHosts when figuring up
1968         implicit mnemonics.  [Fixes bug #383000]
1969
1970 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1971
1972         * X11Dnd.cs: When canceling the operation, automatically restore the
1973         default cursor - normally the default cursor is restored when the
1974         mouse buttons are released, but we should be able to restore it even
1975         if the buttons are still pressed (for example, when pressing ESC to
1976         cancel).
1977         Fixes #381894.
1978
1979 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1980
1981         * X11Dnd.cs: When starting a new drad and drop operation, set control
1982         field to null, just as the other fields, to avoid calling any
1983         operation on a previous control. Also, when calling DndLeave on a
1984         control, set it to null, thus we don't fire that event multiple times
1985         for that control.
1986         Fixes #209264.
1987
1988 2008-04-23  Geoff Norton  <gnorton@novell.com>
1989
1990         * XplatUICarbon.cs: Ensure that we have a valid hwnd before accessing
1991         the whole_window object.  Fixes #377084.
1992
1993 2008-04-23  Andreia Gaita <avidigal@novell.com> 
1994
1995         * HtmlElement.cs: Implement RaiseEvent (event injection into the
1996           embedded browser)
1997
1998 2008-04-23  Jonathan Pobst  <monkey@jpobst.com>
1999
2000         * DataGridViewColumnHeaderCell.cs: Implement some NIEX stuffs.
2001
2002 2008-04-23  Andreia Gaita <avidigal@novell.com> 
2003
2004         * HtmlElement.cs, HtmlDocument.cs: Implement javscript method
2005           invocation
2006
2007 2008-04-23  Andreia Gaita <avidigal@novell.com> 
2008
2009         * HtmlElement.cs, HtmlDocument.cs: Implement custom event handler
2010           attaching/detaching
2011
2012 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2013
2014         * X11Dnd.cs: When the drop was cancelled, or could just not be
2015         performed, return DragDropEffect.None always (match .net).
2016
2017 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
2018
2019         * DataGridViewRowHeaderCell.cs: Fill in some NIEX stuff.
2020
2021 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
2022
2023         * DataGridViewRowCollection.cs: Revert something I didn't mean to commit.
2024
2025 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
2026
2027         * DataGridView.cs: Add support for error icon tool tips.
2028         * DataGridViewCell.cs: ErrorIconBounds needs to call GetErrorIconBounds.
2029         * DataGridViewRowHeaderCell.cs: Need internal way to get ErrorIconBounds.
2030
2031 2008-04-22  Ivan N. Zlatev  <contact@i-nz.net>
2032
2033         * X11Structs.cs: Add mouse button masks enum.
2034         * XplatUIX11.cs, Hwnd.cs: Send WM_ENTERSIZEMOVE and 
2035         WM_EXITSIZEMOVE only once at the beginning and at the end of the 
2036         form resize/move operation instead of for each step of it.
2037         [Fixes bug #346529 for the x11 backend]
2038
2039 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
2040
2041         * DataGridView*: Implement support for drawing error icons.
2042
2043 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
2044
2045         * TreeView.cs: Make vbar and hbar internal.
2046         * TreeNode.cs: If collapsing the node removes one of the TreeView's
2047         scrollbars, invalidate the whole thing.
2048         [Fixes bug #382001]
2049
2050 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
2051
2052         * TreeView.cs: Calling Sort() sets Sorted = true.
2053         * TreeNodeCollection.cs: Try to find the owner TreeView to determine
2054         if the nodes need to be sorted.
2055         [Fixes bug #382028]
2056
2057 2008-04-21  Ivan N. Zlatev  <contact@i-nz.net>
2058
2059         * Form.cs: Fire SizeChanged for both when the form is minimized and 
2060         restored.
2061         * XplatUIX11.cs: Instead of tracking minimization on UnmapNotify track it 
2062         on PropertyNotify of _NET_WM_STATE. Much much cleaner.
2063
2064 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
2065
2066         * ComboBox.cs: If the combobox is disabled, draw a disabled
2067         background before painting anything else.
2068         [Fixes bug #381729]
2069
2070 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2071
2072         * X11Dnd.cs: Wehn the drag and drop operation is cancelled don't
2073         forget to send a Leave event to the target window - just as .net does
2074         when cancelling dnd operations.
2075
2076 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2077
2078         * X11Dnd.cs: Stop tracking messages as part of the dnd operation as
2079         soon as possible - this happens when we send the drop message to the
2080         target window. This way we avoid firing any DragOver _after_ drop finished.
2081         Fixes #378179.
2082
2083 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
2084
2085         * XplatUIX11.cs: Send WM_WINDOWPOSCHANGED when a toplevel is minimized.
2086         * Form.cs: Handle form minimization as a special state, where size doesn't 
2087         change, but we have to fire SizeChanged.
2088         [Fixes bug #325122 for the win32 and x11 backends]
2089
2090 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
2091
2092         * XplatUIX11.cs: Win32 doesn't send WM_(KILL|SET)FOCUS 
2093         if the handle is disabled.
2094         [Fixes bug #371751]
2095
2096 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
2097
2098         * XplatUIX11.cs: Enable Maximize/Minimize/Close ability (not decorations) 
2099         for forms with FormBorderStyle.None.
2100         [Fixes bug #349571]
2101
2102 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
2103
2104         * XplatUIX11.cs: Implement support for WM_ENTERSIZEMOVE and 
2105         WM_EXITSIZEMOVE.
2106         [Fixes bug #346529 for the X11 backend]
2107
2108 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
2109
2110         * XplatUIX11.cs: 
2111           - Send a mouse Enter message after say dragging the mouse with a 
2112           button down and then release it in another client.
2113           - Reset the cursor to prevent X11 from remembering it and setting it 
2114           before the control gets WM_SETCURSOR.
2115           - Qeueue a mouse move after a mouse enter like win32.
2116           [Fixes bug #323234]
2117
2118 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
2119
2120         * XplatUIX11.cs: Implement limited support for WM_SYSCOMMAND. 
2121         It's sent when the form gets moved, resized, closed.
2122         * XplatUIStructs.cs: Add SystemCommands enum for WM_SYSCOMMAND.
2123         [Fixes bug #359193 for X11]
2124
2125 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
2126
2127         * Form.cs: Add a ValidateChildren for the 1.1 profile. Fixes 
2128         the build.
2129
2130 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
2131
2132         * ListView.cs: Move CalculateDetailsGroupItemsCount to the NET_2_0 
2133         group. Fixes the 1.1 build.
2134
2135 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2136
2137         * ListView.cs: Use display indexes for selection in Details view, as
2138         well as do the proper layout based on display indexes for that view
2139         too.
2140
2141 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2142
2143         * ListView.cs: Focused item information is now stored as a display
2144         index, and display indexes are used all over the place for selection,
2145         instead of ListViewItem.Index values, which doesn't give us enough
2146         information to modify the selection in groups mode, and was broken.
2147
2148 2008-04-18  Ivan N. Zlatev  <contact@i-nz.net>
2149
2150         * Control.cs: Do not fire MouseDown if validation of the control has 
2151         failed.
2152         * Form.cs: Validate the form before closing.
2153         [Fixes bugs #330501 and #353310]
2154
2155 2008-04-18  Andreia Gaita <avidigal@novell.com> 
2156
2157         * WebBrowserBase.cs: Added WndProc, DrawToBitmap,
2158           CreateWebBrowserSiteBase implementations
2159         * HtmlElement.cs: Add missing OuterHTML, OuterText setters, stubbed
2160           Style and TabIndex setters
2161
2162 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2163
2164         * ListViewGroup.cs: When returning the actual item count, return the
2165         proper count for default group.
2166         Fix the tests.
2167
2168 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2169
2170         * ListView.cs:
2171         * ListViewGroup.cs: When calculating groups layout, get the actual
2172         number of items per group, since groups added to the group BUT not
2173         added to the ListView are just ignored, and can cause some nasty
2174         exceptions because of the lack of synchronization. Also for
2175         ListViewGroup don't use lazy initialization for items, since we 
2176         the common scenario is to use it always - and it helps us to  refactor
2177         and clean the .ctor overloads.
2178
2179 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2180
2181         * ListView.cs: When adding an item to a ListViewItemCollection
2182         belonging to a group (ListViewGroup.Items), don't generate a redraw if
2183         the added item hasn't beeen previously added to the ListView instance
2184         refered by the group, since it will be ignored. This should avoid some 
2185         really nasty flickering.
2186
2187 2008-04-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2188
2189         * ListView.cs: When accessing an item in a specific display
2190         position, use the helper method GetItemAtDisplayIndex, instead of
2191         direct access to the reordered_items_indices array. When doing layout
2192         for groups set the correct Items index for the display position (since
2193         in groups mode items don't have the same position as in Items
2194         collection).
2195         * ListViewGroup.cs: Add a field to store the starting item number,
2196         which is later used when calculating the layout.
2197
2198         Fixes #360805.
2199
2200 2008-04-17  Gert Driesen  <drieseng@users.sourceforge.net>
2201
2202         * Application.cs: Fixed ProductVersion to fallback to the assembly
2203         version. Fixes regression for bug #325413.
2204
2205 2008-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2206
2207         * ListView.cs: New helper method to retrieve an item in a _specific
2208         display_ position (the items can be displayed in a different order
2209         than one of Items collection).
2210         * ThemeWin32Classic.cs: When drawing, instead of iterating over Items
2211         collection, use ListView.GetItemAtDisplayIndex, to get an item in a
2212         specific display position (again remember that items can be sorted
2213         different than Items).
2214
2215 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
2216
2217         * DataGridViewColumnCollection.cs: Create a cached copy of our sorted
2218         list and update it when the collection changes.  We were recreating
2219         this several times per row paint and for every pixel the mouse moved
2220         across the grid.
2221         * DataGridViewColumn.cs: Regenerate cached sorted list when DisplayIndex
2222         changes.
2223
2224 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
2225
2226         * DataGridViewColumnCollection.cs: Convert our internal sorted columns
2227         list to use generics.
2228         * DataGridView.cs, DataGridViewRow.cs: Use generic sorted column list
2229         and remove unneccessay casts.
2230
2231 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
2232
2233         * DataGridViewBand.cs: Add internal way to set displayed variable.
2234         * DataGridViewRow.cs: Don't paint cells in non-displayed columns.
2235         * DataGridView.cs: Make sure we always keep track of Displayed
2236         rows and columns, and only draw things that are displayed.
2237
2238 2008-04-16  Atsushi Enomoto  <atsushi@ximian.com>
2239
2240         * X11Keyboard.cs, XplatUIX11.cs : manage key state regardless of
2241           whether the key events are filtered or not. Introduced
2242           PreFilter() process for this purpose. This fixes atokx3/iiimx
2243           shift state issue.
2244
2245 2008-04-16  Andreia Gaita <avidigal@novell.com> 
2246
2247         * HtmlHistory.cs: Implement Length property
2248
2249 2008-04-15  Jonathan Pobst  <monkey@jpobst.com>
2250
2251         * DataGridView.cs: Call EndEdit when a sort is performed so we take
2252         away the edit textbox.  Refactor to reuse column sort code.
2253
2254 2008-04-12  Everaldo Canuto  <ecanuto@novell.com>
2255
2256         * MenuAPI.cs: Remove the code that save and restore capture status of 
2257         grab_control, this fixes some Menu and Context menu bugs but maybe it can
2258         cause some others, I cant figure the possible problems of this patch but
2259         right now remove the code looks to be better than keep it. This patch fixes
2260         bugs #357638, #378721 and #379570.
2261
2262 2008-04-12  Andreia Gaita <avidigal@novell.com> 
2263
2264         * HtmlDocument.cs, HtmlElement.cs, HtmlHistory.cs, WebBrowser.cs:
2265         Implement OuterHtml, OuterText, Enabled, Scroll*, *Rectangle properties,
2266         add missing properties and event handlers.
2267         
2268 2008-04-14  Jonathan Pobst  <monkey@jpobst.com>
2269
2270         * ListBox.cs: Make sure the LargeChange we are setting is at least
2271         zero, to prevent an IOORE.  [Fixes bug #379531]
2272
2273 2008-04-13  Andy Hume <andyhume32@yahoo.co.uk>
2274
2275         * ComboBox.cs: Support item navigation by entering text.  Firstly, 
2276         in DropDownList mode, for each key-press select the next item 
2277         starting with that letter.
2278         For other modes, when no item selected, on arrow-up/-down and open 
2279         drop-down select the first item matching the text in the textbox.
2280
2281 2008-04-14  Atsushi Enomoto  <atsushi@ximian.com>
2282
2283         * X11Keyboard.cs : Control.FromHandle() could return null
2284           in MoveCurrentCaretPos().
2285
2286 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2287
2288         * ListView.cs: When changing the size in VirtualMode, also Reset the
2289         selection.
2290         * ListViewItem.cs: Don't call SelectedIndexCollection.Reset when
2291         changing selection info for VirtualMode.
2292         Fixes #372618.
2293
2294 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2295
2296         * ThemeWin32Classic.cs: When drawing ListViewItem instancesin Details
2297         view, don't use LineLimit for the first item - use NoWrap *always*
2298         instead, since ListView.LabelWrap is not used for this view.
2299         Fixes #378054.
2300
2301 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2302
2303         * Binding.cs: Call UpdateIsBinding when setting control - probably
2304         Binding is already usable and we don't need to wait to check the
2305         IsBinding state. Also for 1.1 profile use IsHandleCreated instead of
2306         Created, just like 2.0 does.
2307         * CurrencyManager.cs: I'm so lame - the previous check was wrong.
2308
2309 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2310
2311         * Binding.cs: Just realized we don't need to have a handler for
2312         BindingContextChanged, since this info should be now consumed directly
2313         in the BindingManagerBase. And also, the manager.IsBindingSuspended
2314         state info is checked directly, instead of caching it.
2315
2316         * CurrencyManager.cs: IsSuspended should return always false if Count
2317         == 0.
2318
2319 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2320
2321         * Binding.cs: When calling PushData, return if manager.Count == 0,
2322         since we just don't have data to be read. Also, when setting the
2323         Control for binding, hook up some events to refresh the IsBinding
2324         state when BindingContext change or control gets created; use
2325         Control.IsHandleCreated instead of Control.Created check to set
2326         IsBinding state - we *actually* need to modify IsBinding when control
2327         is created, but we don't have any Created event, only HandleCreated.
2328         Fixes part of #349364.
2329
2330 2008-04-11  Geoff Norton  <gnorton@novell.com>
2331
2332         * XplatUICarbon.cs: Expose Caret to the Carbon layer.  Guard against
2333         warping a null Caret.
2334
2335 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
2336
2337         * DataGridView.cs: Implement row/column autosizing methods. Implement
2338         autosorting.
2339         * DataGridViewColumnHeaderCell.cs: Add painting of the sort glyph.
2340         * DataGridViewRowCollection.cs: Add an internal sorting method.
2341
2342 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
2343
2344         * ThemeWin32Classic.cs: Apply patch from Ernesto to cache an expensive
2345         value in ListView drawing code.
2346
2347 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
2348
2349         * FileDialog.cs: Only call FileOk when Ok is clicked, not when Cancel
2350         is clicked.  Respect the user setting Cancel in FileOk.
2351
2352 2008-04-11  Geoff Norton  <gnorton@novell.com>
2353
2354         * ListView.cs: Avoid setting and resetting control Width/Heights and
2355         calculate the final value and set it once.  Prevents a feedback loop
2356         on the mac.
2357
2358 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
2359
2360         * TreeView.cs: Clamp setting the scrollbar value using SafeValueSet.
2361         [Fixes bug #378869]
2362
2363 2008-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2364
2365         * X11Keyboard.cs, X11Structs.cs : make over-the-spot mode default.
2366           Add some on-the-spot code, but it seems we don't need it.
2367
2368 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
2369
2370         * Form.cs: Add method for DataGridView to trigger focus cues
2371         even when it handles the tab keypress.
2372
2373 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
2374
2375         * DataGridView.cs: More keyboard handling, tab, esc.
2376         * DataGridViewTextBoxEditingControl.cs: Don't request arrow keys
2377         when at the beginning or end of the text in the text box.
2378
2379 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
2380
2381         * DataGridViewCell.cs: Guard against an NRE causing a test to fail.
2382
2383 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
2384
2385         * DataGridView.cs: Some fixups for showing and adding the edit control.
2386         * DataGridViewButtonColumn.cs: Implement ToString.
2387         * DataGridViewCell.cs: Size and position the control simultaneously.
2388         * DataGridViewTextBoxCell.cs: Use base to position control.
2389
2390 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
2391
2392         * DataGridViewCell.cs: Fix up some formatting and painting code.
2393         * DataGridViewImageCell.cs: Implement some NIEX methods.
2394
2395 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
2396
2397         * ToolStripItemCollection.cs: What moving an item from one owner
2398         to another, remove from source owner before adding to destination.
2399         [Fixes bug #378109]
2400
2401 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
2402
2403         * PictureBox.cs: Call Load when ImageLocation is set.
2404         [Fixes bug #378308]
2405
2406 2008-04-09  Atsushi Enomoto  <atsushi@ximian.com>
2407
2408         * X11Keyboard.cs, XplatUIX11.cs :
2409           Implement over-the-spot mode (with some odd offsets).
2410           - set preedit position when caret is set.
2411           - Wrap XMoveResizeWindow() to move preedit position.
2412
2413 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
2414
2415         * X11keyboard.cs: Fix last patch, maxval must be less not greater than
2416         array lenght.
2417
2418 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
2419
2420         * KeyboardLayouts.cs: Uses GENERATING_RESOURCES to make VKeyTableIndex
2421         and ScanTableIndex public, it fix compilations errors when compiling
2422         WinForms to generate keyboard layout resources.
2423
2424 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
2425
2426         * X11keyboard.cs: Prevent keyboard errors when vitual table theres 
2427         different element count than scan table. It prevents some errors in non
2428         standard keyboards.
2429
2430 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
2431
2432         * DataGridViewHeaderCell.cs: Implement some NIEX methods.
2433
2434 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
2435
2436         * DataGridView.cs: Call OnContentClick.
2437         * DataGridViewCell.cs: Do a null check on ValueType instead
2438         of valueType.
2439         * DataGridViewCheckBoxCell.cs: Implement.
2440
2441 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
2442
2443         * X11Keyboard.cs : Do not cast IntPtr to int. Use long.
2444
2445 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
2446
2447         * X11Keyboard.cs : Check XGetIMValues() return value in
2448           case it does not return input styles in some environment.
2449
2450 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
2451
2452         * X11Keyboard.cs : sizeof(IntPtr) != 4 on amd64.
2453
2454 2008-04-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2455
2456         * BindingContext.cs: Stub UpdateBinding method.
2457
2458 2008-04-07  Atsushi Enomoto  <atsushi@ximian.com>
2459
2460         * X11Structs.cs : added couple of structs for XIM support.
2461         * X11Keyboard.cs :
2462           Release XIM in case it failed to create XIC. 
2463           Use consts for XNblah string.
2464           Add support for IM style customization and XIC creation
2465           for preedit-position and preedit-callback.
2466           Right now use MONO_WINFORMS_XIM_STYLE environment variable
2467           (list of: over-the-spot | on-the-spot | root). Only root
2468           mode works so far.
2469
2470           (redoing r99172 with fix.)
2471
2472 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
2473
2474         * TreeView.cs: Center the checkbox a little better.
2475
2476 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
2477
2478         * ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs, ThemeWin32Classic.cs:
2479         Apply very nice patch from Ernesto Carrea that simplifies our
2480         scrollbar drawing.  [From bug #376146]
2481
2482 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
2483
2484         * TreeView.cs: Correct the location of the root node checkbox when
2485         ShowRootLines = false.  Don't draw the root lines for the root node
2486         when ShowRootLines = false.  [Fixes bug #377535]
2487
2488 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
2489
2490         * WebBrowserBase.cs: Added missing attributes and fixed attributes.
2491         Fixed line endings.
2492         * WebBrowser.cs: Added missing attributes and fixed attributes. Fixed
2493         line endings.
2494         * MaskedTextBox.cs: Added missing attribute. Code formatting.
2495         * PageSetupDialog.cs: Added missing attribute. Code formatting.
2496         * HtmlWindowCollection.cs: Code formatting. Fixed line endings.
2497         * ImeMode.cs: Added missing field.
2498         * HtmlWindow.cs: Code formatting. Fixed line endings.
2499         * HtmlElement.cs: Code formatting. Fixed line endings. Fixed compiler
2500         warnings.
2501         * HtmlHistory.cs: Code formatting. Fixed line endings.
2502         * HtmlDocument.cs: Code formatting. Fixed line endings.
2503         * ToolStripPanel.cs: Added missing IList implementation.
2504         * HtmlElementCollection.cs: Code formatting. Fixed line endings.
2505
2506 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
2507
2508         * BindingContext.cs: Changed argument names to fix corcompare errors.
2509         * DataGridView.cs: Removed extra explicit interface implementation
2510         of IDropTarget. Code formatting.
2511         * FlowLayoutPanel.cs: Changed argument names to fix corcompare errors.
2512         * ComboBox.cs: Changed argument names to fix corcompare errors.
2513         * DataGridTextBoxColumn.cs: Changed argument names to fix corcompare
2514         errors.
2515         * GridColumnStylesCollection.cs: Changed argument names to fix
2516         corcompare errors. Removed extra tabs.
2517         * GridTableStylesCollection.cs: Changed argument names to fix corcompare
2518         errors.
2519         * Control.cs: Changed argument names to fix corcompare errors. Code
2520         formatting. Removed extra explicit IList implementation.
2521         * TextBox.cs: Changed argument names to fix corcompare errors. Code
2522         formatting. Use string.Empty instead of "".
2523         * GridItemCollection.cs: Changed argument names to fix corcompare
2524         errors. Code formatting.
2525         * DataGridViewTopLeftHeaderCell.cs: Changed argument names to fix
2526         corcompare errors. Code formatting.
2527         * ImageList.cs: Changed argument names to fix corcompare errors.
2528         * ToolStripItem.cs: Changed argument names to fix corcompare errors.
2529         * DataGridViewRowCollection.cs: Changed argument names to fix
2530         corcompare errors. Code formatting.
2531         * TableLayoutPanel.cs: Changed argument names to fix corcompare errors.
2532         * DataGridViewSelectedCellCollection.cs: Changed argument names to
2533         fix corcompare errors. Code formatting.
2534         * DataGridViewComboBoxCell.cs: Changed argument names to fix
2535         corcompare errors. Code formatting.
2536         * LinkLabel.cs: Changed argument names to fix corcompare errors.
2537         * TreeNode.cs: Changed argument names to fix corcompare errors. Code
2538         formatting.
2539         * PropertyGrid.cs: Changed argument names to fix corcompare errors.
2540         Code formatting.
2541         * BindingSource.cs: Changed argument names to fix corcompare errors.
2542         Removed extra explicit interface implementations.
2543         * DataGridViewSelectedRowCollection.cs: Changed argument names to
2544         fix corcompare errors. Code formatting.
2545         * ToolStripItemCollection.cs: Removed extra explicit interface
2546         implementation of IList.ReadOnly.
2547         * DataGridViewColumnCollection.cs: Changed argument names to fix
2548         corcompare errors. Code formatting.
2549         * DataGridViewRow.cs: Rename converter to match MS. Code formatting.
2550         * ListView.cs:  Changed argument names to fix corcompare errors.
2551         * DataGridViewHeaderCell.cs: Changed argument names to fix corcompare
2552         errors.
2553         * DataGridBoolColumn.cs: Changed argument names to fix corcompare
2554         errors.
2555         * ListBindingHelper.cs: Changed argument names to fix corcompare
2556         errors.
2557         * DataGridViewSelectedColumnCollection.cs: Changed argument names to
2558         fix corcompare errors. Code formatting.
2559         * ToolStripPanel.cs: Removed extra explicit implementation of
2560         IDropTarget interface.
2561         * ListBox.cs: Changed argument names to fix corcompare errors. Code
2562         formatting. Removed extra tabs and spaces.
2563         * DataGridViewCellCollection.cs: Changed argument names to fix
2564         corcompare errors.
2565         * Help.cs: Changed argument names to fix corcompare errors. Code
2566         formatting.
2567         * TabControl.cs: Changed argument names to fix corcompare errors.
2568         * DataGridColumnStyle.cs: Changed argument names to fix corcompare
2569         errors.
2570         * TableLayoutSettings.cs: Changed argument names to fix corcompare
2571         errors.
2572
2573 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2574
2575         * ListBindingHelper.cs: When returning properties, only return those
2576         that are browsable. Also, don't do a linear search of the properties,
2577         but use the indexer of the PropertyDescriptorCollection class.
2578
2579 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2580
2581         * BindingSource.cs: Implement GetRelatedCurrencyManager by adding a
2582         Dictionary containing the related (child) currency managers. Also,
2583         when setting DataSource, add datasource to our List if it is not a list.
2584
2585 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
2586
2587         * PropertyGridTextBox.cs: Fix background color of the buttons.
2588         * PropertyGridView.cs: Make the entry less jumpy.
2589
2590 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
2591
2592         * PropertyGrid.cs: Fix unused variable warnings.
2593
2594 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
2595
2596         * PropertyGridView.cs: Fix expansion via [+] misbehavior on 
2597         double-click. It expanded it once in the mouse down and then 
2598         again in the double-click handler.
2599
2600 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
2601         
2602         * GridEntry.cs: ICustomTypeDescriptor support for PropertyOwner, 
2603         TypeConverter and UITypeEditors.
2604
2605 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
2606
2607         * Control.cs: Visibility should be set synchronously, 
2608         so we must also redraw once it is and not rely on layouting or 
2609         other code to repaint.
2610         [Fixes bug #339898]
2611
2612 2008-04-04  Jonathan Pobst  <monkey@jpobst.com>
2613
2614         * DataGridViewCell.cs: Respect DataGridView.GridColor.
2615
2616 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
2617
2618         * Control.cs: Invalidate when the alpha channel is less than 255,
2619         not only when control is transparent.
2620
2621 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
2622
2623         * DataGridViewRowPrePaintEventArgs.cs, DataGridViewRowPostPaintEventArgs.cs:
2624         Implement some painting convenience methods that threw NIEX.
2625
2626 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
2627
2628         * DataGridView.cs: Call CellMouse[Enter|Move|Leave] properly.
2629         * DataGridViewLinkCell.cs: Implement.
2630
2631 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
2632
2633         * GridEntry.cs: Report the conversion exception error description.
2634         [Fixes bug #375792]
2635
2636 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
2637
2638         * PropertyGridView.cs: Do not scroll to item on resize.
2639         [Fixes bug #375789]
2640
2641 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2642
2643         * BindingContext.cs: When retrieving a BindingManagerBase, if the
2644         dataSource parameter is ICurrencyManagerProvider, then return
2645         ICurrencyManagerProvider.CurrencyManager/GetRelatedCurrencyManager
2646         instead of creating a new one.
2647
2648 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2649
2650         * BindingSource.cs: Implement support for Type instances as
2651         DataSource.
2652
2653 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
2654
2655         * DataGridView.cs: Minor cleanups and call CellMouseUp.
2656         * DataGridViewCell.cs: Make some painting routines internally virtual.
2657         * DataGridViewButtonCell.cs: Implement.
2658
2659 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
2660
2661         * Control.cs: We always need to invalidate our children with
2662         transparent backgrounds when we are invalidated.
2663         [Fixes bug #376081]
2664
2665 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2666
2667         * BindingSource.cs: EndEdit and CancelEdit should call EndCurrentEdit
2668         and CancelCurrentEdit on CurrencyManager respectively. Implement
2669         support for ICancelAddNew too.
2670
2671 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2672
2673         * CurrencyManager.cs: When calling EndCurrentEdit/CancelCurrentEdit,
2674         call EndNew/CancelNew if list is ICancelAddNew.
2675
2676 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
2677
2678         * DataGridView.cs: Guard against an exception while painting
2679         if there are no rows.
2680
2681 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
2682
2683         * DataGridView.cs: Implement a bunch of keyboard commands.
2684
2685 2008-03-31  Jonathan Pobst  <monkey@jpobst.com>
2686
2687         * ToolBar.cs: Don't do our painting if UserPaint is set.  If UserPaint
2688         isn't set, don't call OnPaint.  [Fixes bug #375300]
2689
2690 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2691
2692         * BindingSource.cs: IsBindingSuspended, ResumeBinding and
2693         SuspendBinding depend on CurrencyManager. Implement RemoveCurrent,
2694         hookup the remaining events related to CurrencyManager, and fire
2695         OnListChanged also for the Clear () method.
2696
2697 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2698
2699         * BindingSource.cs: Use Current and Position implementations in
2700         CurrencyManager instead of using our own routines, since we need 
2701         to be in synch with it. Count should NEVER return a -1 value, and 
2702         also report ListChanged events for both simple IList data 
2703         sources (manually) as well for IBindingList ones (by hooking up an
2704         event handler for it).
2705
2706 2008-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2707
2708         * BindingSource.cs: Make one .ctor call the another, to avoid
2709         duplicate code. Add the CurrencyManager property, and also for AddNew
2710         throw the proper exceptions and show better error messages.
2711
2712 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
2713
2714         * ComboBox.cs: Only adjust selectedindex if Handle has been
2715         created.  Fixes failing test.
2716
2717 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
2718
2719         * ComboBox.cs: Adjust selectedindex if we insert a new item
2720         above the current selectedindex in a sorted ComboBox.
2721         [Fixes bug #374654]
2722
2723 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
2724
2725         * ComboBox.cs: Support PageUp/PageDown when dropdown is closed.
2726         [Fixes bug #374712]
2727
2728 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
2729
2730         * DataGridViewTextBoxCell.cs: Implement stuffs.
2731
2732 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
2733
2734         * TreeView.cs: Create the scrollbars even earlier to be
2735         double dog certain they are created before they are accessed.
2736
2737 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
2738
2739         * XplatUIX11.cs: Remove a no-op line that csc was choking on.
2740
2741 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
2742
2743         * ScrollBar.cs: Create an internal safe Value setter so we
2744         won't crash if we try to set a value outside the min and max.
2745         * TextBoxBase.cs: Use safe value setter to guard against a
2746         potential NRE that is being reported by Reflector.
2747
2748 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
2749
2750         * TreeView.cs: Create the scrollbars earlier in the constructor
2751         to attempt to guard against an NRE in SetTop in Reflector.
2752
2753 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
2754
2755         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCell.cs,
2756         DataGridViewRowCollection.cs: Do not scroll column and row headers,
2757         show messagebox on data format error, use column display index
2758         correctly, make sure HitTest supports new layout stuff,
2759         make sure scrollbars support new layout stuff.
2760
2761 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
2762
2763         * XplatUIX11.cs : Patch by Doug Rintoul.
2764           For some IM engines, keypress events need to delay call
2765           to XPending() and XNextEvent() in the loop so that it
2766           does not mess the orders in XIM commit callback.
2767           Some KeyRelease events such as shift keys need to be
2768           processed both in the IM engine and winforms driver
2769           itself since winforms holds its own state check.
2770
2771           For details, see: http://lists.ximian.com/pipermail/mono-winforms-list/2008-March/003279.html
2772
2773 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
2774
2775         * X11Keyboard.cs, XplatUIX11.cs :
2776           add primitive support for XIM input support (preedit-
2777           nothing and status-nothing). It requires precise event
2778           capturing (XSelectInput/"filterEvents") and different
2779           call to XFilterEvent against root window.
2780           Get composed string and send dummy WM_IME_COMPOSITION.
2781           Free XIM and XIC instances in finalizer.
2782
2783           (This first patch does not include suggested changes
2784            by Doug Rintoul. It will follow.)
2785
2786 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
2787
2788         * DataGridView.cs: When binding to a property, if the property
2789         doesn't have a setter, set the column to readonly.
2790         [Fixes bug #343965]
2791
2792 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
2793
2794         * ComboBox.cs: Guard against NRE if an arrow key is hit while
2795         we aren't dropped down.  Support Home/End in DropDownList mode.
2796         [Fixes bug #371990]
2797
2798 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
2799
2800         * TreeNodeCollection.cs: Don't increment count until we've
2801         saved our index to return.
2802         [Fixes bug #373603]
2803
2804 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
2805
2806         * Label.cs: Add padding to the label's AutoSize calculation.
2807         [Fixes bug #373792]
2808
2809 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2810
2811         * ListBindingHelper.cs: Actually implement GetListName method.
2812
2813 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2814
2815         * BindingSource.cs: Throw the propert expceptions for some methods, as
2816         well as detect the list item type for Add method if DataSource is null.
2817
2818 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
2819
2820         * DataGridViewCell.cs: I don't know why I commented this out,
2821         putting it back for now.
2822
2823 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
2824
2825         * DataGridViewCell.cs: Remove storage for owning column, just
2826         use column index.
2827         * DataGridViewColumn.cs: Make getter for HeaderTextSet.
2828         * DataGridViewColumnHeaderCell.cs: If the header text has been
2829         explicitly set, return it.
2830         [Fixes bug #325979]
2831
2832 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
2833
2834         * DataGridViewRowCollection.cs: Disable row sharing when
2835         using data binding.  Its a great feature, but lets work on
2836         getting DGV usable first before we worry about optimizations.
2837
2838 2008-03-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2839
2840         * BindingSource.cs: When resetting our internal list, compute list
2841         item type information to be used for indirect list access. Also
2842         implement/tune some properties and methods related to the list access
2843         too.
2844         * ListBindingHelper.cs: Add a stub for GetListName method, used from
2845         BindingSource.
2846
2847 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
2848
2849         * DataGridView.cs: If RowCount is increased while ColumnCount
2850         is zero, add a column.  [Fixes bug #331649]
2851
2852 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
2853
2854         * DataGridViewRowCollection.cs: When adding new rows for
2855         databinding, make sure they are place before the add row.
2856         [Fixes bug #343961]
2857
2858 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
2859
2860         * DataGridViewRow.cs: Draw cells in column DisplayIndex order
2861         instead of Index order.
2862
2863 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
2864
2865         * DataGridView.cs: If columns are added by increasing ColumnCount,
2866         they need to be DataGridViewTextBoxColumns, not DataGridViewColumn.
2867         [Fixes bug #325588]
2868
2869 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
2870
2871         * DataGridView.cs: Turn off and on the "new row" when 
2872         AllowUserToAddRows is toggled.  When the handle is created,
2873         set current cell and selected cell/row/col.
2874
2875 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
2876
2877         * ComboBox.cs: When navigating the drop down by keyboard, we
2878         need to scroll the list box if our selection moves out of the
2879         currently shown items.  [Fixes bug #371990]
2880
2881 2008-03-24  Luke Page <luke.a.page@gmail.com>
2882
2883         * RichTextBox.cs: Handles visible rtf tag and no longer shows the text
2884         on the control. Also now handles unicode compatibility characters and
2885         stores the unicode compatibility length on the stack. Fixes Bugs
2886         #355198 and #366436.
2887
2888 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2889
2890         * BindingSource..cs: Take into account DataMember when re-creating the
2891         List property, and also create a specific kind of list as needed.
2892
2893 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2894
2895         * ListBindingHelper.cs: Add a new case for GetList () method - when we
2896         get an empty IEnumerable, try to detect whether the datamember is
2897         valid or not for that type, if true, return null, and throw exception
2898         otherwise.
2899
2900 2008-03-22  Jonathan Pobst  <monkey@jpobst.com>
2901
2902         * ComboBox.cs: Alt-Down should drop down the list, Esc should
2903         retract it.  [Fixes bug #371989]
2904
2905 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
2906
2907         * PropertyGrid.cs: Initialize the sorting button as pushed.
2908
2909 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
2910
2911         * PropertyGrid.cs: 
2912          - Visually select the PropertyTab.
2913          - Filter Properties by Attributes properly.
2914
2915 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
2916
2917         * MenuItem.cs: Remove menu item from parent when disposed.
2918         [Fixes bug #372845]
2919
2920 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
2921
2922         * ToolBar.cs: Don't reset layout_type if Dock = None.
2923
2924 2008-03-21  Andreia Gaita <avidigal@novell.com> 
2925
2926         * UserControl.cs: Select the first available control when we get focus.
2927           Fixes #372616
2928
2929 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
2930
2931         * DataGridViewCell.cs, DataGridViewTextBoxCell.cs: Don't paint
2932         the content if we are in edit mode.  [Fixes bug #343964]
2933
2934 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
2935
2936         * DataGridViewCell.cs: Fix border painting for column headers.
2937
2938 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2939
2940         * BindingSource.cs: When setting or resetting data source,
2941         use ListBindingHelper.GetList () method, since it will get the list in
2942         case datasource is IListSource.
2943
2944 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
2945
2946         * DataGridViewCell.cs: Implement lots more stuffs.
2947
2948 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
2949
2950         * PropertyGridView.cs, GridEntry.cs: Implement support for 
2951         UITypeEditor.IsDropDownResizable.
2952
2953 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
2954
2955         * DataGridViewCell.cs: Remove unused variables, improve how
2956         several of the property getters work.
2957         * DataGridViewRow.cs: Don't call setSize on a cell, cell should
2958         get its size from the parent row/col.
2959
2960 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
2961
2962         * PropertyGrid.cs: Ensure PropertiesTab is visible even if the 
2963         user alters manually the PropertyTabs collection via the 
2964         PropertyTabs property.
2965
2966 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2967
2968         * ListBindingHelper.cs: Implement -previously- ignored cases. We have
2969         new tests for them to be sure to be compatible with .net.
2970
2971 2008-03-20  Andreia Gaita <avidigal@novell.com> 
2972
2973         * WebBrowserBase.cs: Fix attributes, add events
2974         * WebBrowser.cs: Fix Padding signature
2975
2976 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
2977
2978         * PropertyGrid.cs, PropertyGridView.cs: Implement PropertyTab support.
2979
2980 2008-03-19  Jonathan Pobst  <monkey@jpobst.com>
2981
2982         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCellStyle.cs,
2983         DataGridViewLinkCell.cs, DataGridViewRow.cs, DataGridViewRowHeaderCell.cs,
2984         DataGridViewTextBoxCell.cs: Changes so that DataGridViewCell
2985         passes the new suite of tests for it.
2986
2987 2008-03-18  Andreia Gaita <avidigal@novell.com> 
2988
2989         * WebBrowser.cs: Add missing attributes, missing Padding and
2990           DefaultSize properties, remove extraneous getters
2991
2992 2008-03-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2993
2994         * ListBindingHelper.cs: Implement a pair of GetListItemProperties
2995         method overloads.
2996
2997 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
2998
2999         * ComboBox.cs: Move resetting the selected index to keypress
3000         instead of textchanged.  Changing the text programmatically
3001         should not trigger resetting the selected index.  Fixes test.
3002
3003 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
3004
3005         * ComboBox.cs: When the user types into the textbox, reset
3006         the selected index to -1.  [Fixes bug #371672]
3007
3008 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
3009
3010         * FileDialog.cs: Support Control-A for selecting everything
3011         in an OpenFileDialog.  [Fixes bug #371564]
3012
3013 2008-03-15  Jonathan Pobst  <monkey@jpobst.com>
3014
3015         * DataGridView.cs: When row/column visible/height properties
3016         change, invalidate.  Take the NIEX out of InvalidateRow/Column
3017         etc.  We don't support them yet, but we can just invalidate
3018         everything until we do support them.  (Added MonoTODO).  Set
3019         proper control styles.
3020         * DataGridViewRow.cs: Don't call PaintHeader if row headers
3021         are turned off. 
3022
3023 2008-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3024
3025         * ListBindingHelper.cs: Implement 2.0 GetListItemType methods.
3026
3027 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
3028
3029         * DataGridViewRow.cs: Only paint the white background in
3030         cell bounds, the row bounds extends past the cells if the 
3031         grid width isn't as wide as the DGV.
3032
3033 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
3034
3035         * DataGridView*: Completely revamp the drawing to match the
3036         public API.  Our grids now look better, and call all the
3037         appropriate methods and event to allow users to override
3038         the painting and do their own.
3039
3040 2008-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3041
3042         * ListBindingHelper.cs: Implement 2.0 GetList methods.
3043
3044 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
3045
3046         * DataGridView.cs: Implement BorderStyle.
3047
3048 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
3049
3050         * FileDialog.cs: Apply patch from Andy Hume: Any time we
3051         are comparing attributes, make sure we only look at the
3052         one we are interested.  These calls were failing if there
3053         were more than one attribute.
3054         [Fixes bug #370385]
3055
3056 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
3057
3058         * DataGridColumnStyle.cs: Hide ctor from 1.1 profile.
3059
3060 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
3061
3062         * PageSetupDialog.cs: Stub EnableMetric.
3063         * PrintControllerWithStatusDialog.cs: Implement IsPreview.
3064         * PrintPreviewDialog.cs: Add ProcessDialogKey,
3065         ProcessTabKey.
3066
3067 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
3068
3069         * MonthCalendar.cs: Remove unused variable.
3070
3071 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
3072
3073         * DataGridView*.cs: corcompare stuffs.
3074
3075 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
3076
3077         * MonthCalendar.cs: Remove an incorrect invalidate optimization.
3078         The savings aren't worth the extra code to fix the optimization.
3079         [Fixes bug #368585]
3080
3081 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
3082
3083         * ToolBar.cs: Always call base.Dock in the Dock override so that
3084         Control's layout_type gets reset correctly.
3085         [Fixes bug #368882]
3086
3087 2008-03-11  Ivan N. Zlatev  <contact@i-nz.net>
3088
3089         * X11Dnd.cs: End DnD operation also for the middle mouse button.
3090
3091 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
3092
3093         * ContainerControl.cs: We can't do MenuStrip implicit mnemonics
3094         at the same time we do explicit ones, because we have to give all
3095         other controls on the container a chance to handle explicit ones
3096         first.  If no one has an explicit mnemonic, then we can let the
3097         MenuStrip have a shot at implicit mnemonics.
3098         * MenuStrip.cs: Create an implicit mnemonic function.
3099         * ToolStrip.cs: When processing explicit mnemonics, don't do implicit
3100         mnemonics for MenuStrips.
3101         [Fixes bug #368493]
3102
3103 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
3104
3105         * AxHost.cs, Binding.cs, DataGridView.cs, DataGridViewCell.cs,
3106         DataGridColumnStyle.cs: corcompare stuffs.
3107
3108 2008-03-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3109
3110         * FileDialog.cs: Don't add any ColumnHeader to Columns if view is not
3111         Details - This is needed after we added the bits to use any available
3112         column also for List and SmallIcon view. 
3113
3114 2008-03-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3115
3116         * ListBox.cs: Fire SelectedIndexChanged and SelectedValueChanged events
3117         at the proper place, not only when changing SelectedIndex and changing
3118         the selection using keys/mouse, as .net does.
3119
3120 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3121
3122         * ControlBindingsCollection.cs: Implement last 2.0
3123         DefaultDataSourceUpdateMode property. Also fix a wrong instruction
3124         in the new 2.0 Add methods.
3125
3126 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3127
3128         * ListBox.cs: When calling SelectedIndexCollection.Clear,
3129         return if no items are previously selected - this is done to avoid 
3130         firing OnSelectedIndexChanged without need to do so. Also,
3131         when creating handle ensure that the focused item is visible (as
3132         .net does).
3133
3134 2008-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3135
3136         * ListBox.cs: Rewrote/refactored most of selection code. We require
3137         the following things in selection: a) keep selection sorted (both
3138         indices and items), b) SelectedIndices automatically detect the
3139         selection mode, c) SelectedIndex should be the first selected item
3140         index, d) Need to Focus/adjust scroll bar when selecting a new item,
3141         not only for SelectedIndex, which is specially important in Multi*
3142         selection modes. To achieve this we are moving the selection core to
3143         SelectedIndexCollection and make depend all selection modifications on
3144         it.
3145         Fixes #366438.
3146
3147 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
3148
3149         * ToolStrip.cs: Enable implicit mnemonics for drop down
3150         menu strips.  [Fixes part of bug #367692]
3151
3152 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
3153
3154         corcompare - fix parameter names [stragglers].
3155         Binding.cs, BindingsCollection.cs, GridColumnStylesCollection.cs,
3156         HelpEventHandler.cs, Label.cs, ListView.cs, Message.cs,
3157         TabControl.cs.
3158
3159 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
3160
3161         Control.cs: Don't call ProcessMenuKey on WM_SYSKEYUP if there
3162         was a mnemonic pressed as well as Alt.  Also, if nothing handles a
3163         mnemonic, let the ToolStripManager have it even if it doesn't
3164         have a matching mnemonic.
3165         [Fixes bug #367499]
3166
3167 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
3168
3169         corcompare - fix warning about implicit implementation
3170         * ToolStrip.cs: Add IToolStripData interface.
3171         * IToolStripData.cs: Add.
3172
3173 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
3174
3175         corcompare - fix warning about implicit implementation
3176         * Control.cs, ToolStripPanelRow.cs: Add IBounds interface.
3177         * IBounds.cs: Add.
3178
3179 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
3180
3181         corcompare - fix parameter names [N-Z].
3182         LinkArea.cs, NativeWindow.cs, NotifyIcon.cs, PageSetupDialog.cs,
3183         Panel.cs, PrintDialog.cs, PrintPreviewControl.cs, PropertyGrid.cs,
3184         PropertyManager.cs, RichTextBox.cs,
3185         ScrollBar.cs, SelectionRange.cs, SplitContainer.cs, StatusBar.cs,
3186         StatusBarDrawItemEventArgs.cs, StatusBarPanelClickEventArgs.cs,
3187         StatusStrip.cs, TabControl.cs, TableLayoutColumnStyleCollection.cs,
3188         TableLayoutRowStyleCollection.cs, TableLayoutStyleCollection.cs,
3189         TextBoxBase.cs, ThreadExceptionDialog.cs, ToolStrip.cs,
3190         ToolStripContentPanel.cs, ToolStripDropDown.cs,
3191         ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
3192         ToolStripPanel.cs, ToolStripSeparator.cs,
3193         TreeNode.cs, TreeView.cs, TreeViewHitTestInfo.cs,
3194         UICuesEventHandler.cs, UpDownBase.cs.
3195
3196 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
3197
3198         corcompare - fix parameter names [G-M].
3199         GridColumnStylesCollection.cs, GridItemCollection.cs,
3200         GridTableStylesCollection.cs, GroupBox.cs, Help.cs,
3201         HelpProvider.cs, ImageListStreamer.cs, InputLanguageCollection.cs,
3202         Label.cs, LayoutEngine.cs, LinkClickedEventArgs.cs,
3203         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewGroupCollection.cs,
3204         ListViewItem.cs, Menu.cs, MenuItem.cs, MenuStrip.cs, MouseEventArgs.cs.
3205
3206 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
3207
3208         corcompare - fix parameter names [A-F].
3209         Control.cs, DataGridBoolColumn.cs, DataGridColumnStyle.cs,
3210         DataGridTextBoxColumn.cs, DataGridViewButtonCell.cs,
3211         DataGridViewCellCollection.cs, DataGridViewCellParsingEventArgs.cs,
3212         DataGridViewCheckBoxCell.cs, DataGridViewColumnDesignTimeVisibleAttribute.cs,
3213         DataGridViewComboBoxCell.cs, DataGridViewHeaderCell.cs,
3214         DataGridViewImageCell.cs, DataObject.cs, DomainUpDown.cs,
3215         DrawItemEventArgs.cs, FolderBrowserDialog.cs, FontDialog.cs, Form.cs.
3216
3217 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
3218
3219         * GridEntry.cs: Do not convert not only if the types match, 
3220         but also if the property type is assigneable from the value's
3221         type.
3222         [Fixes bug #366566]
3223
3224 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
3225
3226         * PropertyGridView.cs: 
3227          - Subscribe to the listbox only once and not everytime.
3228          - Update the textbox even if SetValue fails.
3229          - Close the listbox before calling TrySetValue just in case.
3230          [Fixes bug #366569]
3231
3232 2008-03-03  Jonathan Pobst  <monkey@jpobst.com>
3233
3234         * Control.cs: Hide ICollection.CopyTo from the 1.1 profile.
3235
3236 2008-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3237
3238         * ListView.cs: Implement support for custom column width based on
3239         Columns collection (we were previously using this collection only
3240         with Details view).
3241         Fixes #364484.
3242
3243 2008-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3244
3245         * ListViewItem.cs: For Tile view, always set bounds for the first
3246         subitem (which is the main one), and also don't let Width be larger
3247         than ListView.TileSize.Width. Improve code readibility also.
3248         * ThemeWin32Classic.cs: When painting the ListViewItem instances
3249         in Tile view, _always_ use the NoWrap flag.
3250         Fixes #360798.
3251
3252 2008-02-29  Ivan N. Zlatev  <contact@i-nz.net>
3253
3254         * PropertyGrid.cs: Check for null PropertyDescriptor.Name just 
3255         in case.
3256         * GridEntry.cs: For MS compitability make all child properties 
3257         readonly if the parent is readonly. Ugh.
3258         [Fixes bug #365945 and #365944]
3259
3260 2008-02-29  Andreia Gaita <avidigal@novell.com> 
3261
3262         * HtmlHistory.cs: Fix sigs for Forward and Back to navigate by index
3263           relative to the history
3264
3265 2008-02-29  Andreia Gaita <avidigal@novell.com>
3266
3267         * HtmlElement.cs: More handlers for mouse and key events
3268
3269 2008-02-28  Andreia Gaita <avidigal@novell.com>
3270
3271         * WebBrowserBase.cs: MouseClick sig changed.
3272         * HtmlHistory.cs: Implement history navigation
3273         * HtmlElement.cs: Add event handlers, and connect them.
3274
3275 2008-02-28  Ivan N. Zlatev  <contact@i-nz.net>
3276
3277         * GridEntry.cs: 
3278          - Use PropertyDescriptor.DisplayName instead of .Name for Label,
3279            so that DisplayNameAttribute doesn't get ignored.
3280          - Check for ParenthesizeNameAttribute and parenthesize the Label.
3281          - Add support for PasswordPropertyTextAttribute
3282         * PropertyGridView.cs: Check if an entry is a password.
3283         [Fixes bugs #365589, #365586, #365588]
3284
3285 2008-02-28  Andreia Gaita <avidigal@novell.com>
3286
3287         * PropertyGridView.cs: Revert the message filtering change, as we
3288         need it to block after all. Remove block parameter, unnecessary.
3289
3290 2008-02-27  Jonathan Pobst  <monkey@jpobst.com>
3291
3292         * UserControl.cs: Better implementation of GetPreferredSize.
3293         First step to fixing bug #361441.
3294
3295 2008-02-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3296
3297         * Binding.cs: Actually implement data binding support for 
3298         classes implementing IBindableComponent.
3299         * ControlBindingsCollection.cs: Likewise.
3300
3301 2008-02-26  Andreia Gaita  <avidigal@novell.com>
3302
3303         * PropertyGridView.cs: Use a message filter to check when to 
3304         close the dropdown
3305
3306 2008-02-26  Andreia Gaita  <avidigal@novell.com>
3307
3308         * Application.cs: Change the message_filters loop so a filter 
3309         can be removed while looping.
3310
3311 2008-02-26  Ivan N. Zlatev  <contact@i-nz.net>
3312
3313         * GridEntry.cs: Optimization in ToggleValue so that it caches
3314         the current value.
3315         * PropertyGridView.cs: An optimization so that the property isn't 
3316         re-read twice for each StandardValue added to the drop-down menu.
3317         Patch by Andy Hume <andyhume32@yahoo.co.uk> under the MIT/X11
3318         license.
3319         [Fixes bug #362755]
3320
3321 2008-02-26  Jonathan Pobst  <monkey@jpobst.com>
3322
3323         * Application.cs: Apply patch from Justin Cherniak to match
3324         MS better for ProductName, ProductVersion, and CompanyName.
3325         [Fixes bug #361709]
3326
3327 2008-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3328
3329         * Binding.cs: Actually implement 2.0 NullValue property. Also
3330         when changing the formatting related properties, only update the state
3331         if formatting_enabled is true (we don't mind otherwise).
3332
3333 2008-02-25  Jonathan Pobst  <monkey@jpobst.com>
3334
3335         * ToolStrip.cs: Don't raise ItemClicked for disabled items.
3336         [Fixes bug #364486]
3337
3338 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
3339
3340         * GridEntry.cs: Use the PropertyDescriptor.PropertyType instead 
3341         of GetType on the current value as it uses reflection to 
3342         determine the type. This fixes the case where the new value is 
3343         null. 
3344
3345 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
3346
3347         * PropertyGridView.cs: Limit mousewheel scrolling to not scroll
3348         past the view.
3349
3350 2008-02-24  Luke Page  <luke.a.page@gmail.com>
3351
3352         * Line.cs, TextControl.cs: Implement offset x and y so that a
3353         document doesn't have to begin  at (0,0) on the viewpoint.
3354         * TextBox.cs, TextBoxBase.cs: RightToLeft switches the scroll
3355         bars and switches the text alignment (and therefore is now
3356         implemented for textbox). Fixes #321383.
3357
3358 2008-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3359
3360         * Binding.cs: Actually implement 2.0 FormatString and FormatInfo
3361         properties. Also when changing FormattingEnabled update the control
3362         property -as .Net does-.
3363
3364 2008-02-22  Carlos Alberto Cortez <calberto.cortez@Å‹mail.com>
3365
3366         * ControlBindingsCollection.cs: Add the missing 2.0 Add overloads.
3367         * Binding.cs: Add stubs for the overloads of the Add method in
3368         CBCollection.
3369
3370 2008-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3371
3372         * Binding.cs: PullData () returns a false value if we got an exception.
3373         Also when validating the control and we get an error, instead of
3374         setting the value of the previous one, cancel the event (tested in 1.1
3375         and 2.0).
3376
3377 2008-02-22  Jonathan Pobst  <monkey@jpobst.com>
3378
3379         * TreeView.cs: Make selected_node and highlighted_node internal.
3380         * TreeNodeCollection.cs: Reset selected_node and highlighted_node
3381         to null when Nodes.Clear is called.
3382         [Fixes bug #363884]
3383
3384 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
3385
3386         * FontDialog.cs: Ensure that when the Font is set in code,
3387         all the gui pieces are updated accordingly.
3388         [Fixes bug #361020]
3389
3390 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
3391
3392         * TextRenderer.cs: Respect proposed size for MeasureString.
3393         * ThemeWin32Classics.cs: If our CheckBox/RadioButton isn't
3394         autosize, use a proposed width to force wrapping for long text.
3395         [Fixes bug #360981]
3396
3397 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
3398
3399         * TreeView.cs: Factor in checkboxes = false and state images in
3400         to HitTest.  [Fixes bug #363360]
3401
3402 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
3403
3404         * ThemeWin32Classic.cs: Only look at the Date part of a DateTime
3405         when drawing the selected range.
3406         [Fixes bug #363648]
3407
3408 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
3409
3410         * ToolStripContainer.cs: Add SupportsTransparentBackColor and
3411         ResizeRedraw control styles.
3412         [Fixes bug #363555]
3413
3414 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
3415
3416         * TreeView.cs: StateImages are basically custom checkboxes, so
3417         factor their size the same as real checkboxes when determining
3418         what got clicked.
3419         [Fixes bug #363367]
3420
3421 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
3422
3423         * MessageBox.cs: Make the message box wider if the form caption
3424         is longer than the text in the form.
3425         [Fixes bug #361137]
3426
3427 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
3428
3429         * PropertyGridView.cs: Fix a NRE when closing the drop down form.
3430
3431 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
3432
3433         * TreeNode.cs: Guard against an NRE when the parent's
3434         StateImageList hasn't been set.
3435         [Fixes bug #363353]
3436
3437 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
3438
3439         * SplitContainer.cs: Add SupportsTransparentBackColor and
3440         OptimizedDoubleBuffering control styles.
3441         [Fixes bug #363303]
3442
3443 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
3444
3445         * Application.cs: For the app data paths and the registry key paths,
3446         ensure they are created before returning them to the user.
3447         [Fixes bug #361709]
3448
3449 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
3450
3451         * Application.cs: Guard against an NRE in CompanyName and
3452         ProductName.
3453
3454 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
3455
3456         * Application.cs: For CompanyName, ProductName, and ProductVersion,
3457         make sure we handle all three cases correctly: attribute is present,
3458         attribute is present but is an empty string, and attribute is not
3459         present.
3460
3461 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
3462
3463         * PropertyGridView.cs: 
3464          - Fix a NRE that caused a test failure
3465          - Another performance improvement - cache the standard values
3466          listbox.
3467
3468 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
3469
3470         * ComboBox.cs: Fix previous change to affect both 1.1 and 2.0
3471         code paths.
3472
3473 2008-02-19  Ivan N. Zlatev  <contact@i-nz.net>
3474
3475         * PropertyGridView.cs: Fix a big performance bug.
3476
3477 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
3478
3479         * SelectionRange.cs: Apply patch from Andy Hume to make
3480         constructor behavior more accurate.  [Fixes bug #362117]
3481
3482 2008-02-19  Andreia Gaita <avidigal@novell.com> 
3483
3484         * Control.cs: Added a new flag is_disposing to track if the
3485         window is currently in the process of being disposed of.
3486         This is used so that, when firing visibility changes triggered
3487         by unparenting controls during Dispose, the control doesn't
3488         get created again.      
3489
3490 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
3491
3492         * ComboBox.cs: Set height to preferred height when the handle
3493         is created.  [Fixes bug #360862]
3494
3495 2008-02-18  Andreia Gaita <avidigal@novell.com>
3496
3497         * XplatUIX11.cs: Create FosterParent with border width at 0.
3498         With the previous value of 4, everytime a control got reparented
3499         from parent = null, it's location would be shifted right and 
3500         down by 4, since these coordinates would be offset by the 
3501         FosterParent's border width.
3502
3503 2008-02-18  Ivan N. Zlatev  <contact@i-nz.net>
3504
3505         * Control.cs: During diposing firstly remove ourselfes from
3506         the parent and *then* destroy our handle, because removing
3507         ourselfes from the parent controls collection causes 
3508         VisibilityChange, etc events, which require a handle and end
3509         up recreating the control.
3510
3511 2008-02-17  Ivan N. Zlatev  <contact@i-nz.net>
3512
3513         * GridEntry.cs: Set expanded state before notifying that the
3514         expansion has taken place.
3515         * PropertyGridView.cs:
3516          - Set the propertygridtextbox text to the selected 
3517          StandardValue before proceeding to setting it.
3518          - Scrolling bugfixes.
3519
3520 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
3521
3522         * GridEntry.cs:
3523          - Fix ValueText to not return null.
3524          - Fix conversion error reporting to actually happen.
3525         * PropertyGridView.cs: Set entry only if the text has changed.
3526         [Fixes bug #362116]
3527
3528 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
3529
3530         * GridEntry.cs: 
3531          - Fix handling of a null current value.
3532          - Swallow editor exceptions.
3533         [Fixes bug #362114]
3534
3535 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
3536
3537         * PropertyGrid.cs: Clear current items first thing before 
3538         repopulating subitems.
3539         * GridEntry.cs: 
3540          - Handle null StandardValuesCollection.
3541          - Mark as not editable if there is no PropertyDescriptor and
3542          if the Converter cannot convert from string.
3543         [Part of fix for bugs #360666 and #358332]
3544
3545 2008-02-15  Luke Page  <luke.a.page@gmail.com>
3546         * MaskedTextBox.cs: Now skips non editable characters after a
3547         character has been entered and we are progressing to the next
3548         position in the MaskedTextBox.
3549
3550 2008-02-15  Luke Page  <luke.a.page@gmail.com>
3551         * TextBoxBase.cs: Handles MouseDown when shift key is clicked so
3552         that it changes the selection rather than just repositioning the
3553         cursor. Fixes Bug #360873.
3554
3555 2008-02-15  Luke Page  <luke.a.page@gmail.com>
3556         * TextBoxBase.cs, TextControl.cs, RichTextBox.cs: TextChanged fires
3557         when Undo/Redo changes the text. Undo/Redo/Undo/Redo now works
3558         correctly. See #359330
3559
3560 2008-02-15  Andreia Gaita <avidigal@novell.com>
3561
3562         * XplatUIX11.cs: If the handle is null when posting a message, use the
3563         current thread queue to post instead. Fixes #332409
3564
3565         * SendKeys.cs: Slight optimization
3566
3567 2008-02-14  Ivan N. Zlatev  <contact@i-nz.net>
3568
3569         * PropertyGrid.cs, PropertyGridView.cs:
3570         Fix multiple scrolling and sizing issues.
3571         [Fixes bug #359199]
3572
3573 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
3574
3575         * PropertyGridView.cs: Ensure that drop down editors are shown
3576         in the WorkingArea of the screen.
3577         [Fixes bug #359807]
3578
3579 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
3580
3581         * GridEntry.cs: Fail silently when UITypeEditor is missing.
3582         [Fixes bug #360666]
3583
3584 2008-02-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3585
3586         * Binding.cs: Implement 2.0 DataSourceNullValue property.
3587
3588 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
3589
3590         * PropertyGridView.cs:
3591          - Clear the controls in the drop down form after it is hidden.
3592          - Fix Width sizing of the dropdown editors to match MSFT.
3593
3594 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
3595
3596         * PropertyGridView.cs: 
3597          - Fix height for drawing the grid entry
3598          text value, so that it clips multiline text properly.
3599          - Fix unfocusing to match MSFT.
3600
3601 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
3602
3603         * PropertyGrid.cs: Do not populate subgriditems unless expandable.
3604         Fixes a bug where on repopulation after value changed items become
3605         expandable.
3606
3607 2008-02-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3608
3609         * Binding.cs: For the 2.0 profile, look for a 
3610         'PropertyChanged' event in the target control, and add checks for
3611         DataSourceUpdateMode property to change -or not- the data source
3612         from validation/control property change.
3613
3614 2008-02-10  Atsushi Enomoto  <atsushi@ximian.com>
3615
3616         * Binding.cs : build fix (operator == is not overriden in 1.x. Do
3617           not compare struct with null in 2.0).
3618
3619 2008-02-10  Luke Page <luke.a.page@gmail.com>
3620
3621         * MaskedTextBox.cs: UseSystemPasswordChar updates PasswordChar, PasswordChar
3622         updates the provider and if not using a provider, uses the internal document
3623         class implementation of password char. Also when showing text, uses display string
3624         from the provider, instead of the actual text.
3625
3626 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3627
3628         * Binding.cs: Ooooops, forgot to take into account the data_source
3629         and binding_member_info null case (it was breaking the Binding tests).
3630
3631 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3632
3633         * Binding.cs: Implement support for data source changes exposed by
3634         'PropertyNameChanged' events, and update the control property as
3635         needed.
3636
3637 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3638
3639         * Binding.cs: Implement 2.0 WriteValue method.
3640
3641 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
3642
3643         Commit patch from James Purcell for better AutoScale implementation:
3644
3645         * ScaleControl should call GetScaledBounds with the control's total size rather
3646         than client size.  GetScaledBounds should handle ignoring the borders in its
3647         calculations.  Cleaned up ScaleControl/GetScaledBounds overrides in controls
3648         (for the most part they just call the base code now since that is fixed).
3649         * Added ScaleChildrenInternal to allow controls to disable scaling of children
3650         without having to override ScaleChildren (since none of .NET's controls do). 
3651         This is required for most controls in Mono that have scrollbars to prevent the
3652         scrollbars from being moved/resized.
3653         * Nested ContainerControls can have a different scale mode than their parent. 
3654         This is briefly mentioned in MSDN but is buggy in MS.NET (the runtime and
3655         designer produce different results both of which look incorrect).
3656         * Default AutoScaleMode for ContainerControl should be Inherit.
3657         * Simplified workaround for ComboBox scaling issue.
3658         * 1.0 style auto-scaling now uses its own methods instead of sharing 2.0's. 
3659         1.0 style auto scaling should scale the whole control's size instead of
3660         ignoring the borders (except for Form) and the rounding is done differently to
3661         preserve control alignment.
3662         * ApplyAutoScaling (used for 1.0 style) should use the rounded result of
3663         GetAutoScaleSize.
3664         * Cleaned up fix for "Bug 355703 - Setting AutoScale = true doesn't stick".
3665         * CurrentAutoScaleDimensions should round the estimated character width instead
3666         of truncating.
3667         * ListBox's GetScaledBounds should always use the height it was set to instead
3668         of the height that was passed in.  This prevents rounding errors from
3669         accumulating quickly with IntegralHeight.
3670         [Bug #359098]
3671
3672 2008-02-08  Andreia Gaita <avidigal@novell.com>
3673
3674         * Form.cs: Add a null check (darn it). 
3675
3676 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
3677
3678         * MdiClient.cs: Make sure the requesting form actually owns the
3679         control menu items before removing them.  Also, use
3680         Suspend/ResumeLayout when adding or removing items so we only
3681         layout once.
3682         [Fixes bug #359887]
3683
3684 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
3685
3686         * Control.cs: Guard against an NRE in ShowFocusCues.
3687         [Fixes bug #359830]
3688
3689 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3690
3691         * Binding.cs: Implement 2.0 ReadValue method and ControlUpdateMode
3692         property, as well as stubbing DataSourceUpdateMode.
3693
3694 2008-02-08  Andreia Gaita <avidigal@novell.com>
3695
3696         * Form.cs: When closing forms, get focus back to the active control of the
3697         active form. [Fixes #341314, corner case]
3698         
3699 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
3700
3701         * MdiClient.cs: After we move the scrollbars, invalidate the NC
3702         area, so any old scrollbar artifacts are cleaned up.
3703         [Fixes bug #336305]
3704
3705 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
3706
3707         * MdiWindowManager.cs: If we are maximized and using MainMenuStrip
3708         for our menus, display that control box menu instead of the 1.1
3709         menu one.
3710
3711 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
3712
3713         * MdiControlStrip.cs: Add property to access the mdi form tied to
3714         each toolstripitem.
3715         * MdiClient.cs: Be smarter about removing and adding toolstripitems
3716         to the implicitly merged menu.  Every time we clicked the form, items
3717         were getting removed and the re-added, causing the form to jump around
3718         as the menu resized.
3719
3720 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
3721
3722         * MdiClient.cs: Make sure the NormalBounds always gets set.  It
3723         was being reset by the implicit menu merge for menustrips.
3724         [Fixes bug #336296]
3725
3726 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
3727
3728         * Form.cs: Don't do the previous change when WindowState = Normal,
3729         or it messes up where the window is placed.  Fixes test failure.
3730
3731 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
3732
3733         * Form.cs: When becoming visible, if we are an MDI child, call
3734         SetWindowState with a dummy old_state so that changes will actually
3735         be made.
3736         [Fixes the 2nd part of bug #325473]
3737
3738 2008-02-07  Andreia Gaita <avidigal@novell.com>
3739
3740         * Control.cs: Reset properties to their pre parent-change values in case
3741         the new parent == null (in which case we're basically removing the control, 
3742         and don't want any events fired due to fake property changes)
3743         [Fixes #355850]
3744
3745 2008-02-06  Ivan N. Zlatev  <contact@i-nz.net>
3746
3747         * PropertyGridView.cs: 
3748          - Refactor SetValue to allow setting the value
3749         when a custom editor is used, but the entry is not editable.
3750          - Remove the custom editor control on CloseDropDown.
3751         [Fixes #359196]
3752
3753 2008-02-06  Andreia Gaita <avidigal@novell.com>
3754
3755         * PrintControllerWithStatusDialog.cs: Set PrintFileName value through
3756         reflection only on 1.1, this property is public on system.drawing on 2.0.
3757         Fixed #359247
3758
3759 2008-02-06  Andreia Gaita  <avidigal@novell.com>
3760         
3761         * WebBrowser.cs: Do a normal page refresh by default.
3762
3763 2008-02-05  Andreia Gaita  <avidigal@novell.com>
3764
3765         * XplatUIWin32.cs, XplatUICarbon.cs: set the hwnd.Mapped flag when we create 
3766         the window so that the check on Control.UpdateZOrderOfChild passes on non-X
3767         platforms. Fixes #359036
3768         
3769         Note: Control.UpdateZOrderOfChild needs to be rewritten to not rely on 
3770         platform-specific flags.
3771
3772 2008-02-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3773
3774         * Binding.cs: Add 2.0 BindableComponent property - just return control
3775         by now.
3776
3777 2008-02-05  Everaldo Canuto  <ecanuto@novell.com>
3778
3779         * MenuAPI.cs: Check if control is disposable when track popup menu. Thanks
3780         Jonathan for this patch. Fixes #358442.
3781
3782 2008-02-05  Jonathan Pobst  <monkey@jpobst.com>
3783
3784         * Form.cs: If we change the active MDI child form, let the others
3785         know they need to repaint their title bar so it will appear inactive.
3786         [Fixes part 1 of bug #325473]
3787
3788 2008-02-05  Ivan N. Zlatev  <contact@i-nz.net>
3789
3790          * PropertyGridView.cs: Do not trucate custom editors' width
3791          and align them to the left.
3792          [Fixes #358353 and #358349]
3793
3794 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3795
3796         * BindingsCollection.cs: Implement 2.0 CollectionChanging event.
3797         Also fix the arguments passed to CollectionChangeEventArgs in the
3798         related methods.
3799
3800 2008-02-04  Geoff Norton  <gnorton@novell.com>
3801
3802         * Hwnd.cs: The conversion to Quartz coordinates happens in
3803         System.Drawing.  Removing this translation from here.
3804
3805 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
3806
3807          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs,
3808          CategoryGridEntry.cs, RootGridEntry.cs, GridItem.cs,
3809          GridItemCollection.cs:
3810          PropertyGrid rewrite part 2. Tons of bugfixes and new features.
3811
3812 2008-02-04  Geoff Norton  <gnorton@novell.com>
3813
3814         * X11Keyboard.cs: VK_MENU should send a KEYUP instead of 
3815         SYSKEYUP if any other key has been pressed in the mean time.
3816         Fixes #324404
3817
3818 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3819
3820         * ListView.cs: In ItemControl.ItemsMouseMove, only fire ItemDrag event
3821         when the item in current position is different than 0. Also, save the
3822         item index in the beginning of the operation, instead of getting the
3823         index of the item when the event is actually performed. Lastly clean
3824         the related fields in ItemsMouseUp if the ItemDrag operation wasn't
3825         triggered.
3826         [Fixes #357873]
3827
3828 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
3829
3830         * Form.cs: Alt-Minus for MDI children system menu should work
3831         with both the minus keys on the keyboard.
3832         [Fixes bug #336295]
3833
3834 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
3835
3836         * Control.cs: Don't invalidate on region change.  The WM should
3837         take care of this automagically.  Keeps us out of an infinite
3838         paint loop if someone changes the Region in the OnPaint.
3839         [Fixes bug #358327]
3840
3841 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
3842
3843          * ImageIndexConverter.cs: ConvertFrom must handle "(none)".
3844
3845 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
3846
3847         * DateTimePicker.cs: Apply patch from Srikanth Madikeri so we drop
3848         down the MonthCalendar only on F4, not Alt+F4.
3849         * MonthCalendar.cs: If we are a popup, close ourselves on Alt+F4.
3850         [Fixes bug #358340]
3851
3852 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
3853
3854         * ThemeWin32Classic.cs: For MonthCalendar, draw a dark border
3855         if its part of a DateTimePicker, else, use the back color.
3856         [Fixes bug #358339]
3857
3858 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
3859
3860         * Hwnd.cs: Use GraphicContext instead of the uninitialized bmp_g.
3861         [Fixes bug #358342]
3862
3863 2008-02-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3864
3865         * CurrencyManager.cs: When we get a ListChanged event from our source,
3866         always fire our own ListChanged event, as .Net does.
3867
3868 2008-02-03  Luke Page  <luke.a.page@gmail.com>
3869
3870         * RichTextBox.cs: AutoSize now defaults to false. Fixes Bug
3871         #358379.
3872
3873 2008-02-03  Luke Page  <luke.a.page@gmail.com>
3874
3875         * TextBoxBase.cs, RichTextBox.cs, TextControl.cs: Sets richtext
3876         property. Removed if for richtext property that was always true.
3877         PgUp/PgDn at top/bottom fixed for RTB. Fixes bug #358237.
3878
3879 2008-02-03  Luke Page  <luke.a.page@gmail.com>
3880
3881         * TextBoxBase.cs - commited patch from James Purcell that
3882         correctly sets the FixedHeight control style when the MultiLine
3883         property is changed on a TextBox control. Fixes bug 358229.
3884
3885 2008-02-02  Luke Page  <luke.a.page@gmail.com>
3886
3887         * Line.cs, LineTag.cs, RichTextBox.cs, TextControl.cs
3888         Fixes bug 351938 - caret is positioned correctly when drawn
3889         and when calculating textual position of caret, no longer
3890         has a NRE in certain situations.
3891         
3892 2008-02-01  Geoff Norton  <gnorton@novell.com>
3893
3894         * Hwnd.cs: Ensure that windows moved into -'ve coordinate space
3895         get that region removed from the paint event.
3896         * XplatUICarbon.cs: Remove the window mapping after disposing of 
3897         window.  Prevents a crash with handle reuse.  Optimize exposes
3898         only onto visible windows (rare; but possible).
3899
3900 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
3901
3902         * UpDownBase.cs: Make sure the internal textbox calls the base's
3903         OnMouseDown and OnMouseUp so the textbox will function correctly.
3904         There were notes saying it doesn't chain up, but its an internal
3905         class, so our implementation may differ.
3906         [Fixes bug #357482]
3907
3908 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
3909
3910         * ListBox.cs: Fix a logic error and don't process MouseDown
3911         for mouse buttons other than Left.
3912
3913 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
3914
3915         * Control.cs: Remove HeightInternal.
3916         * ListBox.cs: Commit patch from James Purcell that correctly
3917         calculates heights for ListBoxen.
3918         [Fixes bug #357152]
3919
3920 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
3921
3922         * Label.cs: Apply patch from James Purcell that corrects the 
3923         signature of the AutoSize property.
3924         [Fixes bug #357605]
3925
3926 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
3927
3928         * ListBox.cs: Don't throw [Mouse]Click events for buttons
3929         other than the left mouse button.
3930
3931 2008-01-31  Jonathan Pobst  <monkey@jpobst.com>
3932
3933         * Control.cs: Remove my awesome optimization as it caused some
3934         regressions with control ordering.  :(
3935         [Fixes bug #357467]
3936
3937 2008-01-31  Ivan N. Zlatev  <contact@i-nz.net>
3938
3939          * PropertyGridView.cs: Fix a NRE on double click when there is no
3940          selected object.
3941
3942 2008-01-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3943
3944         * BindingManagerBase.cs: Implement IsBindingSuspended 2.0 property.
3945
3946 2008-01-30  Jonathan Pobst  <monkey@jpobst.com>
3947
3948         * ListBox.cs: Call MouseClick and MouseDoubleClick.
3949         [Fixes bug #357146]
3950
3951 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
3952
3953         * Hwnd.cs: Make bmp, bmp_g variables threadstatic and private.
3954         * Control.cs, DataGridViewCell.cs, LineTag.cs: Use Hwnd.GraphicsContext
3955         instead of Hwnd.bmp_g.
3956
3957 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
3958
3959         * TextRenderer.cs: Don't maintain private bitmap/graphics contexts.
3960         Use the Hwnd one instead.
3961
3962 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
3963
3964         * Form.cs: Remove duplicated copy of GetAutoScaleSize.
3965
3966 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
3967
3968         * Form.cs: corcompare for RestoreBounds.
3969
3970 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
3971
3972         * Control.cs: Add MarshalAs attribute to Font getter for corcompare.
3973
3974 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
3975
3976         * Form.cs: Handle Alt-Minus for MDI children forms.
3977         * MdiWindowManager.cs: Make ShowPopup internal so Form can call it.
3978         Add mnemonics to the control menu.
3979         [Fixes bug #336295]
3980
3981 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3982
3983         * Binding.cs: Initial implementation bits of FormattingEnabled
3984         property and BindingComplete event (2.0). 
3985         * BindingCompleteEventArgs.cs: Internal methods for setting error text
3986         and exception.
3987
3988 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
3989
3990         * TableLayoutPanel.cs: Draw the table border at 0,0 instead of
3991         table.Location.  [Fixes bug #354672]
3992
3993 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
3994
3995         * Form.cs: Handle WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE to raise
3996         ResizeBegin and ResizeEnd.  [Fixes bug #346529 for win32]
3997
3998 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3999
4000         * ComboBox.cs: When OnDisplayMemberChanged method is reached, instead
4001         of doing all the re-bound work, just invalidate and call SetControlText 
4002         to set the updated text of selected item to our textbox.
4003         Fixes #333750.
4004
4005 2008-01-28  Andreia Gaita <avidigal@novell.com>
4006
4007         * HtmlWindow.cs: Add event handler support. Add Document, Frames, 
4008         IsClosed, Opener, StatusBarText, Url properties, stub out the remaining
4009         missing properties and methods. Add Load, Unload, Error, GotFocus, 
4010         LostFocus, Resize, Scroll events (only load and unload are connected)
4011
4012 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
4013
4014         * AccessibleObject.cs: Modified argument names to match MS.
4015         * Button.cs: Modified argument names to match MS.
4016         * BindingContext.cs: Modified argument names to match MS.
4017         * BindingMemberInfo.cs: Modified argument names to match MS.
4018         * ButtonBase.cs: Modified argument names to match MS.
4019         * ComboBox.cs: Modified argument names to match MS.
4020         * Control.cs: Modified argument names to match MS.
4021         * CheckedListBox.cs: Modified argument names to match MS.
4022         * CommonDialog.cs: Modified argument names to match MS.
4023         * DataGrid.cs: Modified argument names to match MS.
4024         * CursorConverter.cs: Modified argument names to match MS.
4025         * ControlPaint.cs: Modified argument names to match MS.
4026         * CheckBox.cs: Modified argument names to match MS.
4027         * ControlBindingsCollection.cs: Modified argument names to match MS.
4028         * BindingSource.cs: Modified argument names to match MS.
4029         * DataFormats.cs: Modified argument names to match MS.
4030         * ContainerControl.cs: Modified argument names to match MS.
4031         * CurrencyManager.cs: Modified argument names to match MS.
4032         * Application.cs: Modified argument names to match MS.
4033         * ContextMenuStrip.cs: Modified argument names to match MS.
4034         * ContextMenu.cs: Modified argument names to match MS.
4035         * BindingManagerBase.cs: Modified argument names to match MS.
4036         * WindowsFormsSection.cs: Fixed line ending.    
4037
4038 2008-01-27  Andreia Gaita <avidigal@novell.com>
4039
4040         * PropertyGridView.cs: Rearrange the dropdown loop so that it exits when
4041         detecting that the dropdown toolwindow is hidden. EndLoop outside the
4042         while.
4043
4044 2008-01-26  Gert Driesen  <drieseng@users.sourceforge.net>
4045
4046         * PropertiesTab.cs: Fixed argument name of GetDefaultProperty to match
4047         MS. Code formatting.
4048
4049 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4050
4051         * Binding.cs: Don't avoid the Format event if the control 
4052         property type is object. Also, if the value retrieved by 
4053         the data source is null _and_ the control proeprty type 
4054         is object, return Convert.DBNull (match .Net).
4055         Fixes part of #324286.
4056
4057 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4058
4059         * ListControl.cs: Since we are getting two BinginContextChanged events
4060         for the same binding context instance (when the control is added to
4061         form, and when the form is actually shown), take it into account only the
4062         first time for a given binding context instance.
4063         Fixes part of #324286.
4064
4065 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
4066
4067          * PropertryGridView.cs: Ops.
4068
4069 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
4070
4071          * PropertyGridView.cs: Close dropdown form if the owner form is
4072          moved or minimized.
4073          [Fixes bug #322446]
4074
4075 2008-01-25  Ivan N. Zlatev  <contact@i-nz.net>
4076
4077          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs, GridItem.cs, 
4078          RootGridEntry.cs, CategoryGridEntry.cs:
4079          PropertyGrid rewrite.
4080          - Rewrite all of the control logic in PropertyGrid.
4081          - Rewrite all of the ComponentModel logic in GridEntry.
4082          - Rewrite all UI work in PropertyGridView.
4083          - Many bugfixes, etc.
4084
4085 2008-01-24  Jonathan Pobst  <monkey@jpobst.com>
4086
4087         * TableLayoutPanel.cs: Enhance GetPreferredSize to take into account
4088         when all contained controls are autosize or dock-fill.  Also take into
4089         account when the total percentage of column/row sizes is not 100%.
4090         [Fixes bug #354672]
4091
4092 2008-01-24  Andreia Gaita <avidigal@novell.com>
4093
4094         * HtmlDocument.cs:
4095         - Save a reference to the IDocument in the instance and
4096           use that one instead of going to WebHost.Document; the document that the 
4097           WebHost returns might not be the right one (in case of frames).
4098         - Use the hashcode returned from the IDocument interface.
4099         - Implemented: ActiveElement, ActiveLinkColor, All, BackColor, Cookie, 
4100           Domain (setter is not supported), Encoding, ForeColor, Forms, Images, 
4101           LinkColor, Url, VisitedColor, Window
4102
4103         * HtmlElement.cs: 
4104         - Implemented: CanHaveChildren, Children, Document, GetAttribute, 
4105           set_Attribute, NextSibling, Parent, TagName, AppendChild, 
4106           GetElementsByTagName, GetHashCode, HasAttribute, InsertAdjacentElement,
4107           SetAttribute, Equals, equality operators.
4108         - Added stubs for: AttachEventHandler, DetachEventHandler, Focus, 
4109           InvokeMember, RaiseEvent, RemoveFocus, ScrollIntoView, 
4110         
4111         * HtmlElementCollection.cs: Change implementation to use a generic
4112         collection. Implemented Enumerator and CopyTo
4113
4114         * HtmlHistory.cs: Add constructor, no implementation yet.
4115
4116         * HtmlWindow.cs: Initial implementation with: Name, Parent, Alert,
4117         Confirm, Prompt, Navigation, ScrollTo, Open, OpenNew, GetHashCode, 
4118         Equals, equality operators.
4119
4120         * HtmlWindowCollection.cs: Implemented. 
4121
4122         * WebBrowser.cs: Use the Navigation object to navigate (WebHost.Navigate
4123         has been deprecated).
4124
4125         * WebBrowserBase.cs: Use Completed event to track document loading
4126         (Navigated has been deprecated)
4127
4128 2008-01-24  Jonatham Pobst  <monkey@jpobst.com>
4129
4130         * ThemeWin32Classic.cs: Add tab stops and NoWrap to dropdown MenuItems.  Top
4131         level MenuItems do not respect tabs.
4132         [Fixes bug #355196]
4133
4134 2008-01-23  Geoff Norton  <gnorton@novell.com>
4135
4136         * XplatUICarbon.cs:  Ensure that windows are created in their initial 
4137         FormWindowState.  Finished fixing Fullscreen windows on Carbon
4138
4139 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
4140
4141         * MenuAPI.cs: When FindForm fails uses FindRootParent to find the control to
4142         be used as grab_control. Also save status of capture before show ContextMenu
4143         and restore it after close.
4144
4145 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
4146
4147         * Control.cs: Internal FindRootParent method added to return high control
4148         in parent tree.
4149
4150 2008-01-23  Geoff Norton  <gnorton@novell.com>
4151
4152         * Hwnd.cs: Refactor Whole/Client pointer to 1 element for Cursors.
4153         * XplatUICarbon.cs: Refactor some dead code out to Cursor.cs and make
4154         it work again.  Handle HITTEST events.
4155
4156 2008-01-23  Geoff Norton  <gnorton@novell.com>
4157
4158         * XplatUICarbon.cs: Ensure that we always have a host window.  Prevents
4159         a crash in certain cases.  Support for fullscreen windows in certain cases.
4160
4161 2008-01-23  Jonathan Pobst  <monkey@jpobst.com>
4162
4163         * Form.cs: Don't set AutoScaleMode in AutoScale if we don't have to.
4164         [Fixes bug #355703]
4165
4166 2008-01-23  Geoff Norton  <gnorton@novell.com>
4167         
4168         * XplatUICarbon.cs: Remove some dead code that was causing warnings.
4169
4170 2008-01-23  Geoff Norton  <gnorton@novell.com>
4171
4172         * XplatUICarbon.cs:  Re-enabled Carets in QuickDraw as a overlay window.
4173
4174 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
4175
4176         * SplitContainer.cs: Remove unused declarations.
4177         * Binding.cs: Remove unused declarations.
4178
4179 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
4180
4181         * Form.cs: Remove unused declaration of 'active' in Activate method.
4182         * Control.cs: Move declaration of nested_layout inside '#if NET_2_0" to 
4183         prevent compilation warnings.
4184         * TextControl.cs: Remove unused declaration of selection_pos_on_line.
4185         * Hwnd.cs: Remove unused declaration of clip in GetClippingRectangles.
4186         * Bindings.cs: Remove unused formatting_enabled declaration.
4187         * ToolTip.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
4188         warnings.
4189         * TreeView.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
4190         warnings.
4191         * PropertyGridView.cs: Remove usused 'ex' declaration.
4192         * DataGridView.cs: Remove unused declarations.
4193
4194 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
4195
4196         [Fixes bugs #343966, #338511 and other non reported (context)menu bugs]
4197         
4198         * Form.cs: Remove all active_tracker (used by menu) stuff, it is now moved 
4199         to Control class, it makes possible to grab menu to controls that can't 
4200         reach Form using parent tree. Handle for WmButtonUp, WmButtonDown and
4201         WmMouseMove removed since it was used only to track menu events.
4202
4203         * Control.cs:
4204         - Moved all active_tracker stuff from Form.
4205         - ProcessActiveTracker added to prevent code duplicity, now mouse events 
4206         can call this method instead of reimplement all necessary code handle for
4207         menu tracker.
4208         - Call to ProcessActiveTracker for mouse events (WmButtonUp, WmButtonDown
4209         and WmMouseMove).
4210         
4211         * MenuAPI.cs: 
4212         - Remove special handle to ToolStripOverflow, now we can grab menu to 
4213         controls that can't reach Form using parent tree.
4214         - Change type of grab_control from Form to Control.
4215
4216 2008-01-22  Geoff Norton  <gnorton@novell.com>
4217
4218         * TextBoxBase.cs: Split up the sizing of controls and placing of 
4219         controls.  Fixes a bug where scrollbars in Reflector could be sized
4220         wrong and have non-working thumbers.
4221
4222 2008-01-23  Geoff Norton  <gnorton@novell.com>
4223
4224         * XplatUI.cs: Refactor environment variables to default support to the
4225         Carbon driver on the Mac.
4226
4227 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
4228
4229         * Label.cs: Uses new LabelPainter for drawing operations.
4230         * ThemeWin32Classic.cs: DrawLabel and LabelDefaultSize removed.
4231         * Theme.cs: DrawLabel and LabelDefaultSize removed.
4232
4233 2008-01-22  Geoff Norton  <gnorton@novell.com>
4234
4235         * XplatUICarbon.cs: Enable packing scroll delta into the mouse wParam
4236
4237 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
4238
4239         * ThemeWin32Classic.cs: Run Flat, Button appearance, 2.0 CheckBoxes
4240         through the normal flat button code and don't draw the checkbox glyph.
4241         * Theme.cs: Button->ButtonBase signature change.
4242         [Fixes bug #324755]
4243
4244 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
4245
4246         * LinkLabel.cs: Uses new class LinkLabelPainter.
4247
4248 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
4249
4250         * MessageBox.cs: Adjust right border space, we don't need to add 
4251         "space_border*2" two times.
4252
4253 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
4254
4255         * ScrollableControl.cs: With the advent of 2.0's Padding, DockPadding
4256         becomes a wrapper around Padding.
4257         [Fixes a part of bug #354676]
4258
4259 2008-01-22 Geoff Norton  <gnorton@novell.com>
4260
4261         * Mime.cs:  Avoid a needles exception on OSX if we dont have a buffer
4262         acquired.  Also ensure the buffer is large enough to grab the header
4263         we need on linux boxes.
4264
4265 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
4266
4267         * Control.cs: Implement a custom enumerator so people can delete
4268         from the Controls collection while in a foreach.
4269         [Fixes bug #355074]
4270
4271 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
4272
4273          * PropertyGridView.cs: Fix focusing behavior:
4274          - Tab should focus the grid text box.
4275          - Clicking on the labels shouldn't focus the grid text box.
4276
4277 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
4278
4279          * PropertyGridView.cs: IsValueTypeGridItem should return true 
4280          for Arrays as well.
4281
4282 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
4283
4284          * PropertyGrid.cs, GridEntry.cs, PropertyGridView.cs:
4285           - Renamed GridEntry.SelectedObjects to TargetObjects to better
4286           reflect the property name role.
4287           - PropertyGrid.GetTarget is not required as the target is known
4288           (TargetObjects).
4289           - Setting values will handle value types as a special case now and
4290           populate them up in the chain.
4291           [Fixes #354990]
4292
4293 2008-01-21  Jonathan Pobst  <monkey@jpobst.com>
4294
4295         * Hwnd.cs: Create a public property for the Graphics we keep around.
4296
4297 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
4298
4299          * PropertyGridView.cs: Just hide the grid textbox and do nothing more 
4300          when the current object selection changes. 
4301          Fixes failing test SelectedObject_Null2.B5.
4302
4303 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
4304
4305          * PropertyGrid.cs: Process Browsable properties with 
4306          DesignerSerializationVisibilityAttribute.Content as being expandable.
4307          This seems also what MS does. Without this e.g SplitContainer.Panel1/2
4308          will not be expandable. We should be nested components-friendly now.
4309
4310 2008-01-21  Andreia Gaita <avidigal@novell.com>
4311
4312         * WebBrowserBase.cs: Check if control was loaded properly, 
4313         don't bind if it wasn't.
4314
4315         * HtmlDocument.cs: Implement CreateElement, Equals, Focus, 
4316         GetElementFromPoint, equality operators, OpenNew, Write.
4317         Remove extra set_Body
4318
4319 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
4320
4321         * ContainerControl.cs, Control.cs: Apply patch from James Purcell
4322         that makes our AutoScale* stuff more tolerant to different orders
4323         of being set.  [Fixes bug #354669]
4324
4325 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
4326
4327          * PropertyGridView.cs, PropertyGridTextBox.cs: 
4328          Drop WM_LBUTTONDOWN msg sending and use focusing instead.
4329          [Fixes #339005 and #348209]
4330
4331 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
4332
4333          * PropertyGridView.cs: Hide the grid text box before adjusting it
4334          for the newly selected GridItem.
4335          [Fixes #338999]
4336
4337 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
4338
4339         * Form.cs: Give MDI children the opportunity to cancel the parent form
4340         attempting to close.  Ensure that all [Form]Clos[ing,ed] events get called
4341         properly for both the parent and child.
4342         * Application.cs: Signature of internal method changed, pass the previous
4343         default of false.
4344         [Fixes bug #354286]
4345
4346 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
4347
4348         * PropertyGridView.cs: Set the property value only if it has changed.
4349         [Fixes bug #338997]
4350
4351 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
4352
4353         * MenuAPI.cs: Windows sends us MOUSEMOVE messages when any key is pressed.
4354         If the mouse hasn't actually moved, ignore these messages so the currently
4355         highlighted menuitem isn't reset to the one under the mouse.
4356         [Fixes bug #333668]
4357
4358 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
4359
4360         * PropertyGridView.cs: When the property changes Invalidate the GridItem
4361         in order for the properties with UITypeEditor.GetPaintValueSupported == true
4362         to reflect the change visually.
4363         [Fixes bug #338998]
4364
4365 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
4366
4367         * ButtonBase.cs: Add LineLimit to 1.1 button drawing, and TextBoxControl
4368         to 2.0 button drawing.
4369         * ThemeWin32Classic.cs: Ensure that the rectangle we are using to draw 
4370         the button text is tall enough for one line.  LineLimit says it will
4371         always draw at least one line, but it is a lie.
4372         [Fixes bug #324941]
4373
4374 2008-01-17  Atsushi Enomoto  <atsushi@ximian.com>
4375
4376         * XplatUIStructs.cs, X11Keyboard.cs :
4377           added some more VK_* keys to be handled.
4378
4379 2008-01-16  Andreia Gaita <avidigal@novell.com>
4380
4381         * Control.cs: Check if there is a container before setting or getting
4382         the validation flag.
4383
4384 2008-01-16  Andreia Gaita <avidigal@novell.com>
4385
4386         * ContainerControl.cs: Add flag to track if a control cancels validation, 
4387         so we don't fire click events.
4388
4389         * Control.cs: 
4390         - (HandleClick) Check if validation was cancelled before  firing the click
4391         events (doubleclicks are fired, but not clicks)
4392         - (WmLButtonDown) Reset validation flag. The flag is normally reset on 
4393         ContainerControl.set_ActiveControl, but in the case of non-selectable
4394         controls, like a Label, activecontrol is not set. 
4395
4396         * ButtonBase.cs: Only fire clicks if validation passes.
4397         
4398         Fixes #353310
4399
4400 2008-01-16  Geoff Norton  <gnorton@novell.com>
4401
4402         * XplatUICarbon.cs: Implement GetAutoScaleSize to fix Reflector on
4403         trunk
4404
4405 2008-01-16  Jonathan Pobst  <monkey@jpobst.com>
4406
4407         * FolderBrowserDialog.cs: If we cannot interpret the user's requested
4408         SelectedPath, just display the default dialog instead of crashing.
4409         [Fixes bug #348989]
4410
4411 2008-01-16  Geoff Norton  <gnorton@novell.com>
4412
4413         * XplatUICarbon.cs:  Flicker be gone!  Generate our messages in
4414         AddExpose instead of trusting apples compositing manager which doesn't
4415         work for our use case.  Remove some dead code causing warnings and 
4416         redecorate some other code to prevent warnings.
4417
4418 2008-01-16  Geoff Norton  <gnorton@novell.com>
4419
4420         * XplatUICarbon.cs:  Avoid some unecessary invalidation calls when
4421         carbon signals us to redraw.  Fixes another portion of the flickering bug
4422
4423 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
4424
4425         * Form.cs: Prevent the MdiParent property to be set when value is the same
4426         as value already set. Fixes bug #328019.
4427
4428 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
4429
4430         * Form.cs: Don't set mdi_parent as null when mdi window close is prevented, 
4431         it prevents NRE when closing mdi child windows. Fixes bug #325211.
4432
4433 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
4434
4435         * InternalWindowManager.cs: Invalidade close button after mouse up when 
4436         mdi form is prevented to close.
4437
4438 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
4439
4440         * MdiClient.cs: Fix the minimum bounds on child window sizes when cascade,
4441         thanks to Andy Hume. Fixes bug #325433.
4442
4443 2008-01-16  Andreia Gaita <avidigal@novell.com>
4444
4445         * LinkLabel.cs: Reset focused_index when resellecting the control.
4446         Fixes #323190
4447
4448 2008-01-15  Geoff Norton  <gnorton@novell.com>
4449
4450         * XplatUICarbon.cs:  Rework Grab/Ungrab handling to send some needed 
4451         messages.
4452
4453 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
4454
4455         * Form.cs: Change 2 more AutoScaleBaseSize calculation to round instead
4456         of truncate.
4457
4458 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
4459
4460         * ContainerControl.cs: Setting AutoScaleMode to anything should set
4461         Form.AutoScale to false.
4462         * Form.cs: Setting AutoScale to true should set AutoScaleMode to None.
4463         AutoScaleBaseSize should be changed on Font change unless it has been
4464         explicitly set.
4465         [Fixes bug #353827]
4466
4467 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
4468
4469         * MenuAPI.cs: On instance of MenuTracker check if source control is
4470         ToolStripOverflow and use properly method to find form.
4471         [Fixes bug #338511]
4472
4473 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
4474
4475         [Fixes bug #323241 Transparent toolbar support]
4476
4477         * ToolBar.cs: Define ToolBarStyles.TBSTYLE_FLAT in CreateParams when toolbar
4478         is flat.
4479
4480         * Control.cs: Paint background as transparent in case of TBSTYLE_FLAT is
4481         defined in control style to mimic win32 behavior.
4482
4483         * ThemeWin32Classic.cs: Don't paint background for flat apparence toolbar, 
4484         it will be transparent.
4485
4486 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
4487
4488         * XplatUIStructs.cs: Implement ToolBarStyles to use in Style property of
4489         CreateParams for ToolBar controls.
4490
4491 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
4492
4493         * Form.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs: Forms with
4494         FixedToolWindow, SizeableToolWindow, or None for border styles have
4495         different minimum sizes than regular forms.  Implemented to fix
4496         regression in PDN with toolbox being too wide.
4497
4498 2008-01-14  Andreia Gaita <avidigal@novell.com>
4499
4500         * HtmlElementCollection.cs: Implemented
4501
4502         * HtmlElement.cs: Implemented:
4503           - All
4504           - InnerHtml
4505           - InnerText
4506           - Id
4507           - Name
4508           - FirstChild
4509
4510         * HtmlDocument.cs: Implemented GetElementsByTagName.
4511
4512 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
4513
4514         * Screen.cs: Stub BitsPerPixel to always return 32.
4515
4516 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
4517
4518         * Form.cs: Implement RestoreBounds.
4519
4520 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
4521
4522         * RichTextBox.cs, ToolStrip.cs: Fix some typos pointed out by
4523         Sebastien and his fabulous magical problem-finding machine:
4524         Gendarme.  Also put a MonoTodo on AutoWordSelect since we don't
4525         respect the value set.
4526
4527 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
4528
4529         * Form.cs: In WmWindowPosChanged call base.WndProc including when state is
4530         minimized. Fixes bug #325122 for Win32. Thanks  Srikanth Madikeri.
4531
4532 2008-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4533
4534         * X11Dnd.cs: Since we don't propagate the WM_LBUTTONUP/WM_RBUTTONUP
4535         messages (to match .Net), we need to remove the capture ourselves.
4536
4537 2008-01-11  Jonathan Pobst  <monkey@jpobst.com>
4538
4539         * MenuAPI.cs: If we get an Alt-F4, release our capture so Windows
4540         will process the message and close our window.
4541         [Fixes bug #324328]
4542
4543 2008-01-10  Geoff Norton  <gnorton@novell.com>
4544
4545         * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
4546         tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
4547         window manager.
4548
4549 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
4550
4551         * Form.cs: Enforce the Form minimum size in SetBoundsCore.  Fixed
4552         failing test.
4553
4554 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
4555
4556         * XplatUIX11.cs: Set a minimum window size and enforce it.  Even though
4557         Linux doesn't care, having a minimum matches MS and keeps the window
4558         from becoming too small to use window decorations.
4559         [Fixes bug #338996]
4560
4561 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
4562
4563         * ThemeWin32Classic.cs: Tie CheckBox/RadioButton focus rectangles to
4564         ShowFocusCues.  Make focus rectangles fit the text instead of the whole
4565         control.  [Fixes bug #325419]
4566
4567 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
4568
4569         * ComboBox.cs: Guard against an NRE if the user open a new form from a
4570         SelectedIndexChanged event.  This closes the combobox dropdown, and we
4571         were trying to dispose it.  [Fixes bug #352830]
4572
4573 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
4574
4575         * Control.cs, Form.cs: Implement the necessary semantics for
4576         ShowFocusCues.  All paint code will need to check Control.ShowFocusCues
4577         to determine if a focus rectangle should be drawn.
4578         * PropertyGrid.cs: Fix property visibility to match override.
4579         * ThemeWin32Classic.cs: Use ShowFocusCues for Button.
4580
4581 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
4582
4583         * Application.cs: Use GetCommandLineArgs to calculate ExecutablePath.
4584         [Fixes bug #323552]
4585
4586 2008-01-09  Geoff Norton  <gnorton@novell.com>
4587         
4588         * XplatUICarbon.cs: Scroll windows in the correct direction.
4589
4590 2008-01-09  Geoff Norton  <gnorton@novell.com>
4591
4592         * XplatUICarbon.cs: Track all created utility windows so we can hide them
4593         when the app is deactivated or spaces is enabled.
4594
4595 2008-01-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4596
4597         * ListViewItem.cs: Cosmetic fix - When calculating layout for item, don't add an
4598         extra separation pixel for the label rect origin if SmallImageList is
4599         null, and thus we don't need that separation between icon and label
4600         rects.
4601         Patch by Ernesto Carrea.
4602         Fixes # 340195.
4603
4604 2008-01-08  Jonathan Pobst  <monkey@jpobst.com>
4605
4606         * StatusStrip.cs: Invalidate after completing a layout.  The base
4607         OnLayout does this, but we don't call the base.
4608         * ToolStripItem.cs: Revert the previous change to invalidate after
4609         the item moves.
4610         [Fixes bug #351341 better.]
4611
4612 2008-01-07  Geoff Norton  <gnorton@novell.com>
4613
4614         * XplatUICarbon.cs:  WM_DESTROY is a teardown of a single window
4615         not a notification to exit the application.  Listen for WM_QUIT
4616         instead.
4617
4618 2008-01-07  Andreia Gaita <avidigal@novell.com>
4619
4620         * HtmlDocument.cs: Fix case on GetElementById (interface changed)
4621
4622 2008-01-07  Jonathan Pobst  <monkey@jpobst.com>
4623
4624         * ToolStripItem.cs: If the bounds of an item changes, invalidate it
4625         so it can repaint at the correct location.
4626         [Fixes bug #351341]
4627
4628 2008-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4629
4630         * ListControl.cs: SelectedValue should return a null value if
4631         SelectedIndex is -1. Also, when setting it, it should throw an
4632         ArgumentNullException if the value is null, as well as taking
4633         into account the String.Empty value, instead of ignoring it (we have
4634         tests for that now).
4635         Fixes part of #324286.
4636
4637 2008-01-06  Jonathan Pobst  <monkey@jpobst.com>
4638
4639         * TextBoxBase.cs, TextControl.cs: Patch from Luke Page to ensure
4640         SelectionStart is updated after pressing enter.  Fixes bug #351918.
4641
4642 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
4643
4644         * TextControl.cs: Revert a piece r92316 that prevented the fix
4645         from working when there were multiple tags in the text box.
4646         Fixes bug #351881.
4647
4648 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
4649
4650         * TextControl.cs: Apply patch from Luke Page that prevents an
4651         NRE when determining the beginning of a paragraph.
4652         Fixes bug #351886.
4653
4654 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
4655
4656         * TextBoxBase.cs: Apply patch from Luke Page that ensures the
4657         caret gets moved with clicking away from a selected block of
4658         text.  Fixes bug #351885.
4659
4660 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
4661
4662         * TextControl.cs: Apply patch from Luke Page that takes line
4663         alignment into account for mouse selection, so that center and
4664         right aligned text can be selected.
4665         Fixes bug #351881.
4666
4667 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
4668
4669         * RichTextBox.cs: Apply patch from Luke Page that fixes some caret
4670         issues after loading an RTF file by using the correct line feeds.
4671         Fixes bug #351841.
4672
4673 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
4674
4675         * TextControl.cs: When deleting multiple line selections, we need
4676         to invalidate every line beginning at the first line of the selection.
4677         Patch from Luke Page fixes bug #351791.
4678
4679 2008-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4680
4681         * ListControl.cs: When getting a CurrencyManager.PositionChanged
4682         event, don't set SelectedIndex if the number of items is 1. This is
4683         because, for the first item, PositionChanged is fired _before_
4684         ItemChanged (the place where we actually populate the items), and
4685         leave us in a temporary invalid state (since items collection is
4686         empty).
4687         Fixes #349655.
4688
4689 2008-01-04  Geoff Norton  <gnorton@novell.com>
4690
4691         * XplatUICarbon.cs:  Create native toolwindows instead of
4692         the managed drawing ones.
4693
4694 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
4695
4696         * LineTag.cs: If the line doesn't have any characters, return
4697         0 for GetCharIndex.  Fixes an AOORE exception after certain
4698         caret movements.  Fixes bug #351683.  Patch by Luke Page.
4699
4700 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
4701
4702         * TextBoxBase.cs: Apply patch from Luke Page so when backspace
4703         is hit when there is selected text, only the selected text gets
4704         deleted, not the character in front of the selection as well.
4705         Fixes bug #351578.
4706
4707 2008-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4708
4709         * ComboBox.cs: When the values are displayed, calculate the
4710         ComboListBox scrollbar's LargeChange based on the visible area's
4711         height and  the actuall ItemHeight, instead of calculating it
4712         based on MaxDropItems value, since it's not used by our _current_ 
4713         2.0 profile.
4714         Fixes #332366.
4715
4716 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
4717
4718         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
4719         Patch from Luke Page that fixes issues with font colors and styles
4720         not showing up in a readonly RichTextBox.  Fixes bug #324354.
4721
4722 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
4723
4724         * Line.cs, RichTextBox.cs, TextControl.cs: Another awesome patch
4725         from Luke Page.  This one fixes bug #349926.
4726
4727 2007-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4728
4729         * CurrencyManager.cs: Actually fire the 2.0 ListChanged event when
4730         an item in the IBindingList source changes with
4731         ListChangedType.ItemAdded. Ignore for now firing the event for other
4732         changes, since we want to have tests for those cases as well.
4733
4734 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
4735
4736         * TextBoxBase.cs: Don't store a 1x1 Bitmap for every TextBox
4737         created.
4738
4739 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
4740
4741         * TextBoxTextRenderer.cs: Implement a cache for measuring each
4742         character.  This is effective because the typical usage of a
4743         TextBox is with a limited amount of fonts and characters, and
4744         the current implementation of TextBox measures everything one
4745         character at a time.  Another second or two speedup for bug #347238.
4746
4747 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
4748
4749         * Control.cs: Rewrite the Font getter to only query the parent's
4750         Font property once instead of twice.  Since this operation is
4751         recursive, the queries were growing exponentially as the control
4752         tree got deeper.  Another second or two speedup for bug #347238.
4753
4754 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
4755
4756         * Control.cs: Avoid setting a parent (and more importantly, updating
4757         the zorder of all its children) if the parent is already correct in
4758         WmShowWindow.  Decreases the startup time of the test case on bug
4759         #347238 from 35 seconds to 11 seconds.
4760
4761 2007-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4762
4763         * X11Dnd.cs: When the dnd operation has started and we are 
4764         in the dnd loop, don't dispatch either WM_LBUTTONUP nor WM_RBUTTONUP.
4765         This is done to match .Net, which doesn't send those messages after
4766         dnd operation was completed/cancelled.
4767         Fixes #349922.
4768
4769 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
4770
4771         * ToolStrip.cs: Previous change should be != null, not == null.
4772         Thanks Gert!
4773
4774 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
4775
4776         * ToolStrip.cs: Guard against an NRE after ItemClicked is called, the
4777         user may have moved the mouse off the current item during the event.
4778
4779 2007-12-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4780
4781         * ListView.cs: In ItemControl.ItemsMouseMove, try to avoid
4782         calling GetItemAt for every MouseMove event by also taking into
4783         account whether any mouse button is pressed (probably dragging); 
4784         if so, we can call GetItemAt, and if not, try to not call it 
4785         (GetItemAt can be quite expensive when used with a large number of items).
4786
4787 2007-12-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4788
4789         * ListView.cs: Implement -finally- support for dnd, by calling
4790         OnItemDrag as needed. Also, remove the dnd TODO, and add myself to the
4791         authors list ;-).
4792         * ListViewInsertionMark.cs: Implement NearestIndex method, by doing a
4793         simple calculation of distances for all the items in the owner
4794         listview.
4795
4796 2007-12-21  Geoff Norton  <gnorton@novell.com>
4797
4798         * XplatUICarbon.cs:  Ensure that we create WindowMapping handles
4799         for windows that are originally created as invisible.  Fixes missing
4800         main window in paint-mono.
4801
4802 2007-12-21  Geoff Norton  <gnorton@novell.com>
4803
4804         * XplatUICarbon.cs:  Register our D&D handler.  Register our custom
4805         subclass handler for com.novell.mwfview subclassing HIView.  Implement
4806         Pasteboard and Dnd methods.
4807
4808 2007-12-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4809
4810         * ListBox.cs: When we got focus, give focus to first item if there
4811         wasn't any pervious focused item. Also update navigation to depend on
4812         SelectedIndex rather than FocusedItem, just as .Net does.
4813         Fixes #349174.
4814
4815 2007-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4816
4817         * ListBox.cs: Both FindString and FindStringExact methods must do an
4818         case insensitive search, should allow the last valid index to be
4819         passed in the overload taking an initial index, and should also
4820         continue searching from the top back to the specified index when it
4821         reaches the bottom.
4822
4823 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
4824
4825         * TextControl.cs: Apply patch from Luke Page that fixes a scrolling
4826         redraw issue, and allows RichTextBox to draw colored text even while
4827         disabled or readonly.
4828
4829 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
4830
4831         * RichTextBox.cs, TextBoxBase.cs: Apply patch from Luke Page that
4832         disallows cut/paste in a readonly textbox, adds support for Shift-Insert,
4833         and doesn't grey text in a disabled RichTextBox.
4834
4835 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
4836
4837         * RichTextBox.cs: Apply patch from Luke Page that adds better support
4838         for many RTF commands: quad alignment, separate formatting for blocks
4839         inside groups, and ParDef support.  Makes the test case from bug #324589
4840         look much better.
4841
4842 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
4843
4844         * LineTag.cs: Fix an error in the new Draw method that caused
4845         a crash when rendering the document on bug #324589.
4846
4847 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
4848
4849         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs,
4850         TextControl.cs: Apply patch from Luke Page that adds support
4851         for URL links in RichTextBox.
4852         [Fixes enhancement #342516]
4853
4854 2007-12-18  Everaldo Canuto  <ecanuto@novell.com>
4855
4856         * MenuItem.cs: When cloning menuitem clone also name and tag properties for
4857         2.0 profile. Thanks Ernesto Carrea and Luke Page. Fixes bug #340289.
4858
4859 2007-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4860
4861         * ListBox.cs: When a key gets pressed, try to find a string
4862         if the key is a character or a digit.
4863         Fixes #343971.
4864
4865 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
4866
4867         * TableLayoutPanel.cs: Remove some unused variables.
4868
4869 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
4870
4871         * DateTimePicker.cs: Commit patch from Luke Page that ensures
4872         we don't end up at an invalid date when we click the up/down
4873         spinner to change the month or year.  Fixes bug #348682.
4874
4875 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
4876
4877         * Application.cs: Calling Exit in 2.0 should chain to the
4878         Exit (CancelEventArgs) version so it can be cancelled.
4879         * Form.cs: Create a flag to allow raising the Closing
4880         events to be skipped.  We raise them once in Application.Exit
4881         and don't want to raise them again when the Form is actually
4882         closed.  [Fixes bug #349073]
4883
4884 2007-12-16  Jonathan Pobst  <monkey@jpobst.com>
4885
4886         * ToolStripDropDown.cs: Guard against an NRE when there
4887         hasn't been a mainform set in the application context.
4888         [Fixes bug #349108]
4889
4890 2007-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4891
4892         * ListBox.cs: When SetBoundsCore gets called, besides
4893         calling UpdateScrollBars, update the value of
4894         last_visible_index, since we could need to show more items
4895         than before, and we need to let the paint routines know that.
4896         Fixes #344445.
4897
4898 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4899
4900         * ListView.cs: Add DesignerSerializationVisibility attribute to
4901         InsertionMark property.
4902         * ListViewItem.cs: Add same attribute to Position property.
4903
4904 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4905
4906         * ListViewItem.cs: .ctor (SerializationInfo, StreamingContext)
4907         is 2.0 only.
4908
4909 2007-12-14  Jonathan Pobst  <monkey@jpobst.com>
4910
4911         * ThemeWin32Classic.cs: Don't draw the background on a
4912         flat button if there is a background image.
4913         [Fixes bug #348649]
4914
4915 2007-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4916
4917         * ListBox.cs: If we remove the item currently selected,
4918         remove it not only from SelectedItems, but also
4919         resetting selected_index. Moreover, set focused_item to Items.Count - 1 if 
4920         the items count decreased and focused_item has bigger value than that.
4921
4922 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
4923
4924         * Control.cs: Perform our layout after we resize ourselves
4925         if we had to adjust our AutoSize.  Missed commit for bug
4926         #346246.
4927
4928 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
4929
4930         * TableLayoutPanel.cs: Override GetPreferredSizeCore so
4931         we can provide an implementation of AutoSize.
4932         [Fixes bug #346246]
4933
4934 2007-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4935
4936         * ListBox.cs: Add the internal overload Sort (bool paint),
4937         to indicate whether we actually need a paint or we will
4938         call Refresh ourselves. This way we don't request a paint
4939         _before_ having an updated and valid layout.
4940         Fixes #347233.
4941
4942 2007-12-12  Andreia Gaita <avidigal@novell.com>
4943
4944         * XPlatUIX11.cs: Send paint messages when updating a systray icon
4945         * NotifyIcon.cs: Invalidate the window before doing a systray change so it is
4946         properly invalidated. 
4947         Fixes #324237
4948
4949 2007-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4950
4951         * ListViewItem.cs: When using a .ctor taking a ListViewGroup,
4952         don't simply assign it to our internal group field, but instead 
4953         use our Group property, which should do all the neccessary work
4954         required to support groups. Fixes an issue reported to me (mail) by a 
4955         guy using this new feature.
4956
4957 2007-12-11  Jonathan Pobst  <monkey@jpobst.com>
4958
4959         * Control.cs: Use Scale instead of ScaleControl to ensure the
4960         whole hierarchy gets scaled.
4961         [Fixes bug #347282]
4962
4963 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
4964
4965         * DateTimePicker.cs: Don't set the internal MonthCalendar's
4966         Parent property.  Doing this causes the control to be hosted by
4967         the Form instead of being a popup window.
4968         [Fixes bug #347665]
4969
4970 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
4971
4972         * ToolStripItemCollection.cs: If we try to insert a ToolStripItem
4973         at an index higher than Count, just use Add instead of Insert.
4974         [Fixes bug #347669]
4975
4976 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
4977
4978         * ThemeWin32Classic.cs: Don't draw a PictureBox's background in
4979         DrawPictureBox, this is handled by Control.PaintBackground.
4980         [Fixes bug #347276]
4981
4982 2007-12-10  Everaldo Canuto  <ecanuto@novell.com>
4983
4984         * MenuAPI.cs: When process menu keys return true by default only if menu is
4985         active. Fixes bug #342892.
4986
4987 2007-12-09  Andreia Gaita <avidigal@novell.com>
4988
4989         * Control.cs: check if windows are actually mapped before
4990         trying to zorder. Fixes #342509, #346955
4991
4992 2007-12-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4993
4994         * ListView.cs:
4995         * ListViewInsertionMark.cs:
4996         * ThemeWin32Classic.cs: Implement the drawing side of the
4997         new 2.0 ListView.InsertionMark property.
4998
4999 2007-12-07  Jonathan Pobst  <monkey@jpobst.com>
5000
5001         * CurrencyManager.cs: Silence some debug spew.
5002
5003 2007-12-07  Geoff Norton  <gnorton@novell.com>
5004         
5005         * Hwnd.cs: Refactor GetClippingRectangles to suppose returning the
5006         masks for our children as well as siblings to avoid having to query
5007         Quartz for this information.
5008         * XplatUICarbon.cs: Implement a delegate based system to pass
5009         information to System.Drawing.  Implement Async methods.  Remove
5010         the hack for the resize thumb and imlpement a transparent Grow Box.
5011         Rework the messaging system to proplery create window's and messages,
5012         fixes TabControl.
5013
5014 2007-12-06  Andreia Gaita <avidigal@novell.com>
5015
5016         * X11Keyboard.cs: Use Xutf8LookupString to support international 
5017         characters under alternate codepages. Patch from #340878
5018
5019 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5020
5021         * ListView.cs: When doing layout computations, set position in the
5022         ListView instances (we cache the position just as .Net does).
5023         * ListViewItem.cs: New internal setter method for Position. Also set
5024         position field as also available in 1.1, since we are going to use it
5025         now in the common case.
5026
5027 2007-12-06  Andreia Gaita <avidigal@novell.com>
5028
5029         * Control.cs: When removing controls, get the actual container
5030         to notify about active control changes. Fixes 341314.
5031
5032 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5033
5034         * ListViewItem.cs: Forgot to add Font to our serialization stuff.
5035
5036 2007-12-05  Andreia Gaita <avidigal@novell.com>
5037
5038         * Control.cs: When updating the zorder, ignore windows that are not
5039         mapped. Fixes #342509
5040
5041 2007-12-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5042
5043         * ListViewItem.cs: Actually implement serialization on this class.
5044
5045 2007-12-05  Gert Driesen  <drieseng@users.sourceforge.net>
5046
5047         * LinkLabel.cs: Fixed paramname of ArgumentNullException in ctor of
5048         LinkCollection. Spaces to tabs, and removed extra tabs.
5049
5050 2007-12-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5051
5052         * XplatUIX11.cs: Make toolwindows' decorations show up without causing any
5053           tests to fail (hopefully).
5054
5055 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
5056
5057         * ToolStripDropDownMenu.cs: Fill in AffectedBounds when drawing
5058         the image margin so custom renderers can correctly place it.
5059
5060 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
5061
5062         * StatusStrip.cs: Fill in AffectedBounds when drawing the grip
5063         so custom renderers can correctly place it.
5064
5065 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
5066
5067         * Application.cs: Let WM_CHAR messages flow through to controls
5068         hosted in Strips.  [Fixes bug #343972]
5069
5070 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
5071
5072         * ToolStripManager.cs: Guard against an NRE I ran into.
5073
5074 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
5075
5076         * LinkLabel.cs: Apply patch from George to fix bug 344012.  If
5077         a Link is manually added to the Links collection, we need to set
5078         its owner, so it can invalidate properly.
5079         [Fixes bug #344012]
5080
5081 2007-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5082
5083         * ListView.cs: When changing ListViewItem.Position (which calls
5084         ListView.ChangeItemLocation), invalidate not only the area
5085         corresponding to the main item, but also to the area occupied
5086         by the items being moved.
5087
5088 2007-11-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5089
5090         * ListView.cs: When changing the position of a given item,
5091         don't use item bounds, but item areas (which includes the item spacing
5092         between them). Also, use first/last position if the requested
5093         position is outside bounds (as .Net does). Invalidate the previous and
5094         new bounds. Finally, in ItemControl.ItemsMouseDown use the actual item
5095         in a specific position, instead of directly accessing Items collection
5096         (this is done to get the right item - remember an Item can have a
5097         different position in the grid than in the Items collection).
5098
5099 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
5100
5101         * MessageBox.cs: Calculate text area instead of just top left, this rect 
5102         area will be used in DrawString. Fixes bug #343364.
5103
5104 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
5105
5106         * MessageBox.cs: Calculate max amount for text area width, it must be 60% of
5107         screen width. Partially fixes bug #343364.
5108
5109 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
5110
5111         * NotifyIcon.cs: Remove duplicated code before call realculate and put this
5112         code inside recalculate, it makes code more simple.
5113
5114 2007-11-22  Everaldo Canuto  <ecanuto@novell.com>
5115
5116         * NotifyIcon.cs: When recalculate icon verify if icon is active to decide
5117         between update or add icon. Fixes bug #324344.
5118
5119 2007-11-21  Andreia Gaita <avidigal@novell.com>
5120
5121         * XPlatUIX11.cs: Do not treat tool windows as if they have no 
5122         window manager, since that stretches the drawing area to include
5123         the window decorations, and they get hidden. Reverts r84444 and fixes
5124         #335849 and #342790 (mdi and pdn3 regression)
5125
5126 2007-11-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5127
5128         * ListView.cs: When setting focused item, try to give focus to the
5129         previous one _only_ if the previous one remains valid. 
5130         Fixes #342504.
5131
5132 2007-11-20  Jonathan Pobst  <monkey@jpobst.com>
5133
5134         * Application.cs: Revert r89650, as it broke a common case to fix
5135         an obscure case.  Fixes bug #342606.
5136
5137 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
5138
5139         * ThemeWin32Classic.cs: Fix extra space on end of tooltip.
5140
5141 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
5142
5143         * ThemeWin32Classic.cs: Fix tooltip text align removing horizontal 
5144         alignment. [Fixes #324228]
5145
5146 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
5147
5148         * ToolStrip.cs: Handle flow layout in GetPreferredSize to fix PDN3.
5149         [Fixes bug #342123]
5150
5151 2007-11-19  Everaldo Canuto  <ecanuto@novell.com>
5152
5153         * Form.cs: Check for empty Text before assign to cp.Caption in CreateParams
5154         it prevent problems when empty captions. [Fixes #342141]
5155
5156 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
5157
5158         * Label.cs: Use Size instead of None.  Fixes bug #342077.
5159
5160 2007-11-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5161
5162         * ListViewItem.cs: Implement 2.0 FindNearestItem method.
5163
5164 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
5165
5166         * MenuStrip.cs: Guard against a NRE when a MdiWindowItem is set
5167         but there isn't a MdiContainer.
5168         [Fixes bug #342358]
5169
5170 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
5171
5172         * TextControl.cs: Don't recalculate document if the recalc_start and
5173         recalc_end hasn't changed.
5174         [Fixes bug #342505]
5175
5176 2007-11-17  Gert Driesen  <drieseng@users.sourceforge.net>
5177
5178         * DataGridViewTextBoxCell.cs: Removed CWL.
5179
5180 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5181
5182         * ListView.cs: Implement 2.0 SearchForVirtualItem event support.
5183
5184 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
5185
5186         * TextControl.cs: Missed some code for bug 341534 to trigger a
5187         recalculation when the font changes.
5188
5189 2007-11-16  Andreia Gaita <avidigal@novell.com>
5190
5191         * Control.cs: When updating the zorder, check if the child to update is
5192         the same control that is set to always be on top (i.e., scrollbars), and 
5193         just put it on top directly. Fixes BadMatch error on pdn3
5194
5195 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5196
5197         * ListView.cs: Throw the needed exceptions for FindNearestItem.
5198
5199 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
5200
5201         * Control.cs: Don't perform a new layout when a label changes its text,
5202         cause label handles its own autosizing.
5203         [Fixes bug #342077]
5204
5205 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5206
5207         * ListView.cs: Implement 2.0 FindNearestItem methods.
5208
5209 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
5210
5211         * ToolStripPanel.cs: Make Join at least add the control to the panel,
5212         even if the rest of what Join does isn't supported.  Add some more
5213         support for vertical toolbars.
5214         * ToolStripPanelRow.cs: Add some more support for vertical toolbars.
5215         [Fixes the application breaking parts of bug #341998]
5216
5217 2007-11-15  Jonathan Pobst <monkey@jpobst.com>
5218
5219         * ToolStripItem.cs: When determining if we have a check/image margin,
5220         we need to look at ShowCheckMargin as well as ShowImageMargin.
5221
5222 2007-11-15  Geoff Norton  <gnorton@novell.com>
5223
5224         * XplatUIOSX.cs: Rename to...
5225         * XplatUICarbon.cs: and refactor all event handling out to the new event handling
5226         system in System.Windows.Forms.CarbonInternal.  Lots of code cleanup as well.
5227
5228 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
5229
5230         * KeysConverter.cs: The default values should be an array of Keys, not
5231         strings.  Also, the array has more values for 2.0.
5232         [Fixes bug #341851]
5233
5234 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
5235
5236         * Application.cs: Change ExecutablePath to use 
5237         Process.GetCurrentProcess ().MainModule.FileName instead of Assembly.GetEntryAssembly.
5238         [Fixes bug #323552]
5239
5240 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
5241
5242         * LineTag.cs: Don't attempt to draw '\r', treat it like it doesn't exist.
5243         When measureing CR or LF, use /u000D instead of /u0013. (Hex, not decimal.)
5244         * TextControl.cs: Fix a case in GetLineEnding where a \n before a \r would
5245         be ignored.  Create a new GetLineEnding that can specify which types of
5246         line endings to look for.  On Insert, only create new lines for \n and \r\n.
5247         [Fixes bug #324274]
5248
5249 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
5250
5251         * TextBoxBase.cs: As we loop through each line changing the font, tell
5252         the document that the line needs to be recalculated.  Fixes bug #341534.
5253
5254 2007-11-13  Jonathan Pobst  <monkey@jpobst.com>
5255         [Another round of refactoring]
5256         * Line.cs: Add DeleteCharacters.
5257         * LineTag.cs: Add Delete.
5258         * TextBoxBase.cs: Update to use new methods.
5259         * TextControl.cs: Refactor the Delete* methods.
5260
5261 2007-11-13  Everaldo Canuto  <ecanuto@novell.com>
5262
5263         * Win32DnD.cs: Implement Win32 Drop files, thank you Srikanth Madikeri for
5264         the patch. [Fixes #324856]
5265
5266 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5267
5268         * ListView.cs:
5269         * ListViewItem.cs: Add an initial implementation of
5270         2.0 ListViewItem.Position getter.
5271
5272 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5273
5274         * ListView.cs: Add a reordered_items_indices array, to allow us
5275         to have a different sorting than that of Items (the sorting in Items
5276         could not match the actual sorting in screen). This is needed to
5277         implement a pair of 2.0 features.
5278         * ListViewItem.cs: Add a DisplayIndex property to keep track of the
5279         actual position in the ListView grid, since it could have a position
5280         different than its Index (position in ListViewItemCollection). 
5281
5282 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
5283
5284         * Label.cs: Add StringFormatFlags.LineLimit.  This tells DrawString to
5285         not draw partial lines.
5286         * LinkLabel.cs: Change FormatFlags setter from = to |= so that the
5287         LineLimit flag from the base is preserved.
5288         Fixes the windows part of bug #338965.
5289
5290 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
5291
5292         * TextBoxBase.cs: Move handling of the enter key from KEYDOWN to CHAR
5293         so that it can be canceled in KeyPress.
5294         Fixes bug #340078.
5295
5296 2007-11-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5297
5298         * ListView.cs: In ItemControl, reset mouse-handling related
5299         fields even if we dont' have items (we still should reset them when
5300         we had items but then called Items.Clear). Partially based in a patch
5301         by George Giolfan.
5302         Fixes #338399.
5303
5304 2007-11-08  Gert Driesen  <drieseng@users.sourceforge.net>
5305
5306         * Application.cs: In ProductVersion first try AssemblyFileVersion
5307         before falling back to assembly version. Fixes bug #339787.
5308
5309 2007-11-08  Andreia Gaita <avidigal@novell.com>
5310
5311         * HtmlElement.cs: Implement InnerText setter.
5312         * WebBrowserBase.cs: Implement Navigated event support.
5313         Add flag to track when the browser "document" is ready to be retrieved.
5314         * WebBrowser.cs: Implement CanGoBack, CanGoForward, Title, Url.
5315         Make sure browser document is ready before retrieving it.
5316         Clean up cached objects (document) when moving to a new page through
5317         any of the navigation methods.
5318         Use the new Mono.WebBrowser.INavigation interface to control navigation.
5319         Implement OnNavigated event.
5320
5321 2007-11-07  Jonathan Pobst  <monkey@jpobst.com>
5322
5323         * ThemeWin32Classic.cs: Don't draw the background in DrawLabel or
5324         DrawLinkLabel, this is handled by OnPaintBackground.
5325         Fixes bug #339565, part II.
5326
5327 2007-11-07  Andreia Gaita <avidigal@novell.com>
5328
5329         * Control.cs: Revert r88915. Selecting text on a textbox depends on
5330         getting a Select call on click, so this call needs to be here for now.
5331         Unfixes #325809
5332
5333 2007-11-07  Geoff Norton  <gnorton@novell.com>
5334
5335         * OSXStructs.cs: Add the kEventClassApplication constants.
5336         * XplatUIOSX.cs: Send a WM_LBUTTONDOWN to the Grab window when the 
5337         application is deactivated otherwise Menu overlays linger on top of
5338         other application windows.
5339
5340 2007-11-07  Geoff Norton  <gnorton@novell.com>
5341
5342         * XplatUIOSX.cs: Dont throw an exception on OverrideCursor as we
5343         dont support cursors yet anyways.  This allows Reflector to run.
5344
5345 2007-11-07  Geoff Norton  <gnorton@novell.com>
5346
5347         * XplatUIOSX.cs: Implement DragSize.
5348
5349 2007-11-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5350
5351         * ListView.cs: When we receive a WM_LBUTTONDOWN message in
5352         ItemControl, request the focus, as .Net does. This is needed after 
5353         Control does not request focus anymore when it receives a
5354         WM_LBUTTONDOWN.
5355
5356 2007-11-06  Jonathan Pobst  <monkey@Jpobst.com>
5357
5358         * Label.cs: Make DrawImage internal so it can be called from Theme code.
5359         Remove the DrawImage call from OnPaint.
5360         * LinkLabel.cs: Remove the DrawImage call from OnPaint.
5361         * ThemeWin32Classic.cs: Call DrawImage after we paint the background,
5362         but before we draw the text for DrawLabel and DrawLinkLabel.
5363         Fixes bug #339565.
5364
5365 2007-11-05  Andreia Gaita <avidigal@novell.com>
5366
5367         * Control.cs: Remove select call on click. Fixes #325809
5368
5369 2007-11-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5370
5371         * ListViewItem.cs: Add 2.0 Position property getter.
5372
5373 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5374
5375         * ListView.cs: Add 2.0 BackgroundImageTiled property.
5376         Also, to make it work properly, change item's BackColor and
5377         BackgroundImageLayout as needed.
5378         * ThemeWin32Classic.cs: Don't fill any background rectangle 
5379         in ListView.ItemControl when drawing items; just let the Control
5380         base implementation fill it.
5381
5382 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5383
5384         * ListViewGroup.cs: Adda TypeConverter attribute for this class,
5385         as well as adding a custom 'dummy' Converter, as .net does.
5386
5387 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5388
5389         * PropertyGridView.cs: When clicking drop-down button,
5390         select an index in the listbox only if our standard values collection 
5391         has one or more items.
5392
5393 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5394
5395         * ListViewItem.cs: Add a DefaultValue attribute to 2.0 IndentCount
5396         property.
5397
5398 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
5399
5400         * PropertyGrid.cs: In PropertySort, update the toolbar buttons even if
5401         the value is not changed. This ensure a pushed button remains in that
5402         state when clicked again. When switching the value of PropertySort
5403         between Categorized and CategorizedAlphabetical, do not update the
5404         grid items and do not fire a PropertyChangedEvent. When clicking the
5405         sorting buttons, do not modify the PropertySort value when switching
5406         between Categorized and CategorizedAlphabetical but only update the
5407         button state.
5408
5409 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
5410
5411         * Label.cs: Make AutoEllipsis internal on 1.0 profile. Code
5412         formatting.
5413         * PropertyGrid.cs: Also put Categorized button in pushed state when
5414         PropertySort is CategorizedAlphabetical. Set AutoEllipsis to true
5415         for help description label.
5416
5417 2007-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5418
5419         * ListView.cs: When calculating the biggest item for a given column,
5420         take into account 2.0 LIstViewItem.IndentCount, since it directly affects
5421         the item's width.
5422
5423 2007-11-03  Gert Driesen  <drieseng@users.sourceforge.net>
5424
5425         * PropertyGrid.cs: Fixed default value for PropertySort. Allow invalid
5426         value for PropertySort on 1.0 profile. PropertySortChanged event
5427         should only be fired on 2.0 profile. Fixed NullReferenceException
5428         in UpdateSortLayout when PropertyGrid contains no items.
5429
5430 2007-11-02  Jonathan Pobst  <monkey@jpobst.com>
5431
5432         * MessageBox.cs: Patch from George to implement MessageBoxDefaultButton.
5433         [Fixes bug #338554]
5434
5435 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5436
5437         * ListViewItem.cs: Implement 2.0 IndentCount property.
5438
5439 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5440
5441         * X11Dnd.cs: When sending status in a dnd operation, compare current
5442         effect with the 'allowed' field instead of 'drag_data.Allowed', since
5443         the later is only created when a Winforms application is both the
5444         source and the target, but not when we are the target only.
5445         Fixes part of #324251.
5446
5447 2007-11-01  Geoff Norton  <gnorton@novell.com>
5448
5449         * XplatUI*.cs: Add GetPreviousWindow utility method to return windows in
5450         order of Z-Order.
5451         * Hwnd.cs: Add initial implementation of GetClippingRectangles to clip sibling 
5452         children out of the drawing view on mac.
5453         * XplatUIOSX.cs: Code cleanup.  Handle more window grab cases.  Fix SetParent
5454         to handle the orphan and invisible case (1/2 fixes TabStrip drawing in FormsTest)
5455         
5456 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
5457
5458         * ToolStrip.cs: Don't process MouseUp for a ToolStripControlHost, clicking
5459         on the non-hosted-control part of it shouldn't do anything.
5460         Fixes part of bug #327498.
5461
5462 2007-11-01  Andreia Gaita <avidigal@novell.com>
5463
5464         * WebBrowserBase.cs: revert previous change, resize can be called anytime
5465
5466 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
5467
5468         * Application.cs: When a toolstrip has the keyboard input loop, let messages
5469         it does not use flow through to controls that are hosted in menus.
5470         Same with mouse clicks.
5471         * Form.cs: Don't close all menus on click if the click is on a
5472         control hosted in a menu.
5473         Fixes part of bug #327498, and part of bug #325969.
5474
5475 2007-10-31  Andreia Gaita <avidigal@novell.com>
5476
5477         * WebBrowserBase.cs: Only call resize on gluezilla when it is active
5478
5479 2007-10-31  Jonathan Pobst  <monkey@jpobst.com>
5480
5481         * TextBoxBase.cs: Use int.MaxValue for MaxLength instead of magic number.
5482         Addresses an issue raised in bug #336218.
5483
5484 2007-10-30  Jonathan Pobst  <monkey@jpobst.com>
5485
5486         * Form.cs: Patch from George that moves the conversion of ClientSize->Size
5487         for PreferredSize from OnLayout to PreferredSize.  Fixes bug #325242.
5488
5489 2007-10-30  Andreia Gaita <avidigal@novell.com>
5490
5491         * ContainerControl.cs: Check if the active control is a
5492         child of a removed control and update active_control accordingly.
5493         Fixes #329718
5494
5495 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
5496
5497         * DateTimePicker.cs: Throw ArgEx if the Value is set outside the MinDate
5498         or the MaxDate.  Fixed bug #337693.
5499
5500 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
5501
5502         * XplatUIWin32.cs: Always call SetWindowPos with SWP_FRAMECHANGED flag
5503         after calling SetWindowLong for a form, to force an immediate NC refresh.
5504         Fixes first part of bug #325150.
5505
5506 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
5507
5508         * ComboBox.cs: Don't try to resize the listbox when we are DropDownStyle
5509         simple.  Fixes the last part of bug #322668.
5510
5511 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
5512
5513         * MessageBox.cs: If the owner is TopMost, then the MessageBox form
5514         needs to be TopMost as well, or else the MessageBox is under the form.
5515         Patch by George fixes bug #325300.
5516
5517 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5518
5519         * X11Dnd.cs: When starting a new drag operation, reset the static
5520         'dropped' field to false (previously the implementation didn't reset
5521         it and got confused after the first drag).
5522         Fixes #325071.
5523
5524 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5525
5526         * PropertyGrid.cs: When PropertySort changes, re-organize the grid
5527         items instead of re-creating them all. For this purpose we now cache
5528         both CategoryGridEntry items and the GridEntries for the main object's
5529         properties.
5530         * GridItem.cs: Make SetParent method abstract.
5531         * GridEntry.cs: Override the SetParent method (already there, but now
5532         we override it).
5533         Fixes #324866.
5534
5535 2007-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5536
5537         * PropertyGridView.cs: Set the plus/minus bounds of a grid item
5538         depending on its depth (as .Net does). Update the needed values in
5539         MouseDown handler. Also draw the plus/minus rect after the label,
5540         so we don't draw on top of it.
5541
5542 2007-10-24  Everaldo Canuto  <ecanuto@novell.com>
5543
5544         * MenuAPI.cs: Return true as default in ProcessKeys to prevent keys to be
5545         processed by forms or controls when menu is active. [Fixes #333548]
5546
5547 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
5548
5549         * ToolStripItem.cs: Don't focus a ToolStripControlHost on Select of the
5550         parent doesn't have focus.  This was causing ToolStripTextBoxes to take
5551         focus on mouse over.
5552
5553 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
5554
5555         * TextControl.cs: Code cleaning, simplifying.
5556
5557 2007-10-24  Geoff Norton  <gnorton@novell.com>
5558
5559         * XplatUIOSX.cs: Route mouse events to the grab hwnd on mouse down as well.
5560         * XplatUIStructs.cs: Fix the ToString method of POINT and MSG.
5561
5562 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
5563
5564         * TextBoxBase.cs: If the user sets maxlength to 0, it should mean
5565         the cap is maxvalue, not actually 0.  [Fixes bug #336218]
5566
5567 2007-10-24  Andreia Gaita <avidigal@novell.com>
5568
5569         * SendKeys.cs: apply jpobst's patch to bug #332409
5570
5571 2007-10-23  Andreia Gaita <avidigal@novell.com>
5572
5573         * TextBoxTextRenderer.cs: Lower bounds max size to Int16.MaxValue, the 
5574         Windows 2000 gdi DrawText call doesn't draw if it's higher than that
5575         for some reason
5576
5577 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5578
5579         * PropertyGridView.cs: If a property has an UIEditor available,
5580         make the drop-down/editor button available only if the property
5581         is _not_ read only.
5582
5583 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5584
5585         * PropertyGridView.cs: Don't make the grid item textbox 
5586         editable when a drop-down control is available, but 
5587         CanConvertFrom (typeof (string)) is false or GetStandardValuesExclusive () is
5588         true. The same bur the color of the grid item value's label.
5589
5590 2007-10-22  Geoff Norton  <gnorton@novell.com>
5591
5592         * OSXStructs.cs: Add the needed constants for keyboard modifiers.
5593         * OSXKeyboard.cs: Initial support for keyboard and limited modifiers.
5594         * XplatUIOSX.cs: New reversible frame support.  Wire in the new keyboard
5595         driver.  Padd the bottom of all real windows so the resize thumb doesn't
5596         obscure scroll/status bars.
5597
5598 2007-10-22  Jonathan Pobst  <monkey@jpobst.com>
5599
5600         * WindowsFormsSection.cs: Implement.
5601
5602 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
5603
5604         * MdiClient.cs: Maximize new active mdi child when a maximized child is 
5605         closed see #325434 patch.
5606
5607 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
5608
5609         * MdiClient.cs: Fix remaining issues from layout vertical and horizontal,
5610         see #325434 patch.
5611
5612 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5613
5614         * PropertyGridView.cs: When showing the textbox for a grid item,
5615         have two local variables to store the read-only and non-editable
5616         status of a grid item (we were previously using just one variable
5617         to do this, when actually they are slightly different).
5618         Fixes part of #325023.
5619
5620 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5621
5622         * PropertyGridView.cs: When showing a drop-down list, try to get the
5623         values using TypeConverter.ConvertTo (to convert to a string). Fixes
5624         part of #325023.
5625
5626 2007-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5627
5628         * PropertyGrid.cs: When updating a property and populating sub grid
5629         items, remove the previous ones, and invalidate the specific area.
5630         * PropertyGridView.cs: A new InvalidateBelowGridItem to invalidate the
5631         area behind a grid item.
5632         * GridItemCollection.cs: Add an internal Clear method, to allow us to
5633         clean the items if needed (specially for controls implementing 
5634         ICustomTypeDescriptor and returning a variable number of properties).
5635         Fixes #324865.
5636
5637 2007-10-19  Jonathan Pobst  <monkey@jpobst.com>
5638
5639         * TextControl.cs: Clean up and document the Insert function.
5640
5641 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
5642
5643         * TextControl.cs: Make sure we know our start point for updating the view
5644         in ReplaceSelection.  Fixes an issue where pasting multiline text wouldn't
5645         update the view.
5646
5647 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
5648
5649         * ListView: Couple of corcompare fixes.
5650
5651 2007-10-17  Geoff Norton  <gnorton@novell.com>
5652
5653         * XplatUIOSX.cs: Implement support for window icons in the dock.  Set
5654         the title caption of real window.
5655
5656 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
5657
5658         * ErrorProvider.cs: Add the error provider's internal window to a 
5659         containercontrol when the parent changes.  [Fixes bug #329714]
5660
5661 2007-10-17  Geoff Norton  <gnorton@novell.com>
5662
5663         * XplatUIOSX.cs: Implement ScrollWindow.  Properly create TOOLWINDOWs.
5664         When we make a new window; restore the old active window - fixes dialogs.
5665
5666 2007-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5667
5668         * PropertyGridView.cs: Look for RefreshPropertiesAttribute
5669         when modifying a property, and if found then invalidate as
5670         requested.
5671         Fixes part of #324865.
5672
5673 2007-10-17  Geoff Norton  <gnorton@novell.com>
5674
5675         * XplatUIOSX.cs: Re-enable the native driver on the Mac.  This is still
5676         highly experimental.  Fixed coordinate translation.  Fixed window locations.
5677         Initial support for clipping. Implemented NC areas and menus.  Support for
5678         launching from command line from Will Johansson (wjohansson@atacomm.com).
5679         * OSXStructs.cs: Add ProcessSerialNumer (Patch from Will Johansson
5680         wjohansson@atacomm.com)
5681         * Hwnd.cs: Add some internal structures for tracking Mac cursors.
5682         Hwnds now track the existence of all of their children for Mac clipping.
5683     * XplatUI.cs: Re-enabled the native driver on the Mac.
5684
5685 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
5686
5687         * Line.cs: Move the InsertString function to here.
5688         * TextControl.cs: Cleanup some duplicate code, move some InsertString
5689         functionality to Line.
5690
5691 2007-10-17  Geoff Norton  <gnorton@novell.com>
5692
5693         * ComboBox.cs: Destroy the popup after hiding it.  Fixes #322582
5694
5695 2007-10-16  Gert Driesen  <drieseng@users.sourceforge.net>
5696
5697         * ButtonBase.cs: Fixed IsDefault to use assigned value instead of
5698         always setting value to true.
5699         * Form.cs: When changing AcceptButton, notify new and original button.
5700
5701 2007-10-16  Jonathan Pobst  <monkey@jpobst.com>
5702
5703         * Form.cs: Guard against an NRE when the user sets the AcceptButton to
5704         a custom control that implements IButtonControl instead of an actual
5705         button.  [Fixes bug #334244]
5706
5707 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
5708
5709         * Form.cs: Change SelectActiveControl to internal, we need to call it in
5710         MdiWindowManager.
5711         
5712         * MdiWindowManager.cs: In RaiseActivated call SelectActiveControl to select
5713         active control when activate a new mdi window.
5714         
5715         [Fixes bug #330495]
5716
5717 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
5718
5719         * ComboBox.cs: Dont implicit add listbox_ctrl on OnHandleCreated because it
5720         is already added.
5721         [Fixes bug #333617]
5722
5723 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
5724
5725         * TextControl.cs: When SuspendRecalc is first called, reset the recalc_start
5726         to MaxValue and recalc_end to MinValue.  Currently, recalc_start is always 1,
5727         so we always recalculate the whole document instead of just the new part.
5728         [Fixes bug #325082]
5729
5730 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
5731
5732         * LineTag.cs: Fix a case where the GetCharIndex would not return 0
5733         when the mouse was to the left of the first character in the line.
5734
5735 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
5736
5737         * TextBox.cs, TextBoxBase.cs: When setting the document's password
5738         character, use the property instead of the variable so that the
5739         UseSystemPasswordChar property is taken into account.
5740         [Fixes bug #333748]
5741
5742 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5743
5744         * FolderBrowserDialog.cs: When a node is right clicked and the "New
5745         folder" contex menu appears, actually add the new folder to it, even
5746         if the node is not currently selected. Still use SelectedNode in case 
5747         there wasn't found a node under the pointer.
5748         Fixes #325452.
5749
5750 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5751
5752         * ListViewItem.cs: When retrieving the focused state, the index check
5753         should be done only when ListView is in virtualmode, as it is an
5754         expensive check for normal mode.
5755
5756 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5757
5758         * ListViewItem.cs: Make the focus state information be stored
5759         in the ListView, not in the items. This is done to match the MS
5760         behaviour for items that are not yet part of a ListView control;
5761         besides that, since just one item can be focused at the same time,
5762         we save a little space in our items.
5763         Fixes part of #331643.
5764
5765 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5766
5767         * ComboBox.cs: When focus is lost, deselect the text. When setting
5768         text of control, select all text. Do not hide selection when control
5769         does not have focus. Fixes bug #333663.
5770
5771 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5772
5773         * TextBoxBase.cs: On 2.0 profile, throw ArgumentOutOFRangeException
5774         instead of ArgumentException when SelectionLength is set to negative
5775         value. Added same check to SelectionStart. Code formatting.
5776
5777 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5778
5779         * TextBoxBase.cs: Invalidate selection before changing SelectionLength
5780         or SelectionStart. Code formatting.
5781
5782 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5783
5784         * TreeView.cs: drag_begin_x and drag_begin_y are now set to -1,
5785         indicating that there was not a previous drag-and-drop operation going
5786         on.
5787         Fixes part of #325071.
5788
5789 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5790
5791         * X11Dnd.cs: When DragEventArgs.Effect is set to a value not part of
5792         AllowedEffect, don't let the drop operation happen. 
5793         Fixes #32580.
5794
5795 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
5796
5797         * TextRenderer.cs: Use GDI on Windows in both the 1.1 and 2.0 profiles.
5798
5799 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
5800
5801         * Line.cs, LineTag.cs: Guard against an exception when Document.Clear
5802         is called.
5803
5804 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
5805
5806         * Line.cs: Add a method that finds the tag that contains an x-coord.
5807         * LineTag.cs: Add a method that finds the character at an x-coord using
5808         a binary search, the old way was a linear search.
5809         * TextControl.cs: Change FindCursor to use the above new methods.
5810
5811 2007-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5812
5813         * DragEventArgs.cs: Allow Effect to have a non allowed value (a
5814         value different than AllowedEffect). This should be possible to
5815         indicate that dragging is not possible in some control/area.
5816
5817 2007-10-11  Jonathan Pobst  <monkey@jpobst.com>
5818
5819         * LineTag.cs: Encapsulate all variables with properties.  Calculate ascent/
5820         descent internally when font changes instead of outside code being responsible
5821         for setting it.
5822         * Line.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Use Tag properties
5823         instead of accessing internal variables.
5824
5825 2007-10-09  Everaldo Canuto  <ecanuto@novell.com>
5826
5827         * MdiClient.cs: Always call ArrangeIconicWindows before any arrangement and
5828         remove special treatment for ArrangeIcons since it is already arranged.
5829
5830 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
5831
5832         * TextBoxTextRenderer.cs: Draw takes a Color now instead of a Brush, as
5833         the Win32 backend uses Color.
5834         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
5835         Refactor to store a Color instead of a Brush for Color.
5836
5837 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
5838
5839         * Line.cs, LineTag.cs: Override GetHashCode to make a compiler warning go
5840         away.  I didn't realize I needed this when I refactored these earlier.
5841
5842 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
5843
5844         * LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Refactor to
5845         store a Color structure and use the ResPool for back color instead of
5846         holding onto brushes.
5847
5848 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
5849
5850         * TextControl.cs: Fix how we calculate the end of the tag we are drawing.
5851         [Fixes bug #325592]
5852
5853 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
5854
5855         * MonthCalendar.cs: When ShowWeekNumbers is changed, force the calendar
5856         to recalculate its size.  Fixes a part of bug #331052.
5857
5858 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
5859
5860         * NotifyIcon.cs: Set the correct mouse button when handling right mouse
5861         button.  Fixes a part of bug #331052.
5862
5863 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
5864
5865         * Form.cs: Trim NewLine before setting XPlatUI.SetText, and when setting
5866         the CreateParams.
5867         * ThemeWin32Classic.cs: Trim NewLine before drawing MDI children window
5868         decorations.
5869         [Fixes bug #330986]
5870
5871 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
5872
5873         * TextBoxTextRenderer.cs: Don't make this a static class, as static
5874         doesn't exist in 1.1.  (Thanks jb!)
5875
5876 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
5877
5878         * TextBoxTextRenderer.cs: Abstract text measuring and drawing to this
5879         class to allow us to use different backends on different platforms.
5880         Linux uses the current [Draw|Measure]String backend.  Windows uses
5881         the TextRenderer.[Draw|Measure]Text backend, which uses GDI instead
5882         of GDI+.  This leads to better looking text and more accurate measurements
5883         on Windows, fixing many of the reported issues.
5884         * Line.cs, LineTag.cs: Update to use TextBoxTextRenderer.
5885
5886 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5887
5888         * FolderBrowserDialog.cs: When running on Windows,
5889         try to detect paths such "C:" and add Path.DirectorySeparatorChar,
5890         since we must match both "C:" and "C:\" forms. A little hackish, but
5891         works.
5892         Fixes #325247.
5893
5894 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5895
5896         * ListView.cs: When calling EndEdit (after editing an item),
5897         create a new instance of LabelEditEventArgs to keep clean the fields
5898         in case we get a new call to BeginEdit; also do Application.DoEvents
5899         to have focus in synch. This is a fix similar to TreeView's #325244.
5900
5901 2007-10-07  Andreia Gaita <avidigal@novell.com>
5902
5903         * HtmlDocument.cs, HtmlElement.cs, WebBrowser.cs: Added dom support
5904         * WebBrowserBase.cs: Added dialog support, calling the
5905           WebBrowserDialogs classes for each specific dialog type.
5906
5907 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5908
5909         * ListView.cs: When the last item is focused and is removed,
5910         move the focus to the previous item (in Items order). This is what MS
5911         does.
5912         Fixes #330415.
5913
5914 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5915
5916         * ListView.cs: In ListViewItemCollection, make Remove call RemoveAt,
5917         instead of the opposite (RemoveAt call Remove). This is a better
5918         approach since we don't need to to a pair of traversals when using
5919         RemoveAt.
5920
5921 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5922
5923         * TreeView.cs: When Keys.Left is pressed, before trying to Collapse
5924         check that the node actually has nodes, and if not, move to the
5925         parent node instead. 
5926         Fixes #325265.
5927
5928 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5929
5930         * TreeView.cs: Move the previous change to the general case (to
5931         call Application.DoEvents in cases where the method was called by
5932         different places).
5933
5934 2007_10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5935
5936         * TreeView.cs: When calling EndEdit and we need to hide the textbox,
5937         call Application.DoEvents. This is neccessary when we get a call to
5938         BeginEdit from an AfterLabelEdit handler, because the focus always
5939         goes to the TreeView, even if we try to give it to our
5940         LabelEditTextBox. The call do Application.DoEvents seems to
5941         synchronize the focus, basically.
5942         Fixes #325244.
5943
5944 2007-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5945
5946         * TreeView.cs: When AfterLabelEdit event is fired, TreeNode.IsEditing
5947         should be false. This also removes some nasty recursive paths. Fixes
5948         part of #325244.
5949
5950 2007-10-04  Everaldo Canuto  <ecanuto@novell.com>
5951
5952         * MdiClient.cs: When cascade (layout) mdi window that is maximized, set the
5953         state to normal. Also resize window when cascading. Fixes #325433. 
5954
5955 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
5956
5957         * RichTextBox.cs: When SelectionColor is set to Color.Empty, use
5958         DefaultForeColor, as drawing empty colored lines isn't very useful.
5959         [Fixes the not drawn lines part of bug #324358]
5960
5961 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
5962
5963         * TextControl.cs: Move Line and LineTag classes into separate files to
5964         make things easier to find.
5965         * Line.cs, LineTag.cs: Bring coding standards up to Mono's guidelines.
5966         * RichTextBox.cs: Capitalize LineTag.Length property access.
5967         - This is purely an organizational/formatting change, no logic changed. -
5968
5969 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
5970
5971         * ThemeWin32Classic.cs: Do not show focus rectangle in radio buttons when
5972         text is empty.
5973
5974 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
5975
5976         * ThemeWin32Classic.cs: Do not show focus rectangle in checkboxes when
5977         text is empty.
5978
5979 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
5980
5981         * ComboBox.cs: On contructor use backgound_color instead of BackColor to
5982         prevent calling of OnBackColorChanged. Fixes #325321.
5983
5984 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
5985
5986         * TextBox.cs: When check enabled uses Enabled property instead of is_enabled
5987         because control can be disabled because owner is disabled.
5988
5989 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
5990
5991         * ComboBox.cs: For the 1.1 profile, the default SelectedText is
5992         string.Empty, test failed from previous change.
5993
5994 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
5995
5996         * TextBoxBase.cs: For the 1.1 profile, the default SelectedText
5997         is null, not String.Empty.  See bug #323038.
5998
5999 2007-10-01  Jonathan Pobst  <monkey@jpobst.com>
6000
6001         * TextControl.cs: Change the margins to match MS a little better.
6002         Still not perfect for X11 due to some DrawString differences, but
6003         is still an improvement over the old stuff.
6004         Partially fixes #324467.
6005
6006 2007-09-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6007
6008         * FolderBrowserDialog.cs: When using MyComputer as 
6009         RootFolder, let absolute paths be considered as valid ones. Also, use
6010         Path.DirectorySeparatorChar instead of Path.AltDirectorySeparatorChar,
6011         for Windows compatibility.
6012         Partially fixes #325247.
6013
6014 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6015
6016         * FolderBrowserDialog.cs: Fix the recursive FindPathInNodes method.
6017         Also remove the stack.Count > 0 check in FBTreeView.SetSelectedNode
6018         method, since it causes the dialog to not select folders directly
6019         under the root path (when setting SelectedPath property).
6020
6021 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6022
6023         * TreeNode.cs: When calling Expand/Collapse and need to call 
6024         ExpandBelow/CollapseBelow respectively, take into account
6025         partially visible nodes (previously Expanding/Collapsing
6026         a partially visible node in the bottom was not updating its +- sign).
6027
6028 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6029
6030         * TreeView.cs: When calling Expand on a TreeNode, and we need to
6031         expand nodes below (ExpandBelow), scroll the entire Viewport
6032         area if the node is above it and not visible (instead of scrolling
6033         the area from node's Bottom, which applies only when the node is
6034         visible).
6035         Fixes #325266.
6036
6037 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6038
6039         * TreeView.cs: When calling ExpandAll, set SelectedNode to the top
6040         node in the bottom area (as .Net does). This is done to preserve the
6041         scroll position when ExpandAll is called before handle is created for
6042         the 1.1 profile (bottom area, as opposed to top area in 2.0).
6043         Fixes #324103.
6044
6045 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6046
6047         * TreeView.cs: When calling ExpandAll, don't move the scroll to the 
6048         bottom area if we are in fact not using the vertical scroll bar.
6049         Fixes #324824.
6050
6051 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
6052
6053         * Control.cs: Comment out a double buffering optimization that doesn't
6054         take into account invalidates created in OnPaint, causing the control
6055         to never be redrawn.  It would take quite a bit of work to work around
6056         this, but I left it commented with an explanation for later possible
6057         optimization.
6058         [Fixes bug #328681]
6059
6060 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
6061
6062         * Control.cs: Ask parent to perform a layout if control is AutoSize and
6063         the text changes.
6064         * RadioButton.cs: Implement GetPreferredSizeCore.
6065         [Fixes bug #328672]
6066
6067 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
6068
6069         * RichTextBox.cs, TextBoxBase.cs, WindowsFormsSynchronizationContext.cs:
6070         corcompare stuffs.
6071
6072 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
6073
6074         * Application.cs: Move the sync context stuff to Run instead of RunLoop
6075         so that it doesn't get uninstalled on modal forms.
6076         * Control.cs: Install a sync context when a control is created.
6077         * WindowsFormsSyncronizationContext.cs: Create a private static control
6078         to invoke on.  This is easier than trying to find a created control we
6079         can use.
6080         [Fixes bug #327608]
6081
6082 2007-09-25  Jonathan Pobst  <monkey@jpobst.com>
6083
6084         * Application.cs: Install a WindowsFormsSynchronizationContext in the
6085         run loop, and uninstall it when done.
6086         * WindowsFormsSynchronizationContext.cs: Implement.
6087         [Fixes the common case in bug #327608]
6088
6089 2007-09-23  Gert Driesen  <drieseng@users.sourceforge.net>
6090
6091         * DataGridViewCellCollection.cs: Added argument checks for indexers.
6092         Use case-insensitive lookup of column name in indexer. Code
6093         formatting.
6094
6095 2007-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6096
6097         * TreeNode.cs: When collapsing or expanding a node, check whether its
6098         change will affect the visible area (we were previously doing a
6099         IsVisible check, but that check is not enough since children nodes
6100         could be still visible). Fixes part of #325266.
6101
6102 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
6103
6104         * TreeView.cs: Always select the first node when the TreeView gets
6105         focus if there is no currently selected node.
6106         [Fixes bug #324279]
6107
6108 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
6109
6110         * TreeView.cs: Do not raise BeforeSelect or AfterSelect when the
6111         node being selected is null.
6112         [Patch from Yves Bastide fixes bug #326858]
6113
6114 2007-09-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6115
6116         * TreeNode.cs: Add an internal ArePreviousNodesExpanded, to know
6117         whether all the parent nodes are expanded.
6118         * TreeNodeCollection.cs: When adding a new node an calling SetupNode,
6119         call RecalculateVisibleOrder if all previous nodes are expanded.
6120         Before that we were doing a IsVisible check, but sometimes the node
6121         is not in the visible area, but _should_already be ready, because of
6122         all previous nodes are expanded. Fixes #325259.
6123
6124 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
6125
6126         * ToolStripSplitButton.cs: Call the ButtonClick event if the button
6127         portion of the item is clicked.
6128
6129 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
6130
6131         * TextControl.cs: Do not tell the system to move the cursor if the
6132         textbox isn't focused.  Fixes part of bug #322668.
6133
6134 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
6135
6136         * ComboBox.cs: When there are no items, do not show the dropdown if
6137         the down arrow is clicked.  Fixes part of bug #322668.
6138
6139 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
6140
6141         * ToolStripComboBox.cs: Manually set the size of this control in the
6142         constructor, as it doesn't seem to be the same as DefaultSize.
6143         Fixes a failing monobuild test.
6144
6145 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
6146
6147         * DateTimePicker.cs: If the user sets MinDate to DateTime.MinValue,
6148         change it to DateTimePicker.MinDateTime.  [Fixes bug #326609]
6149
6150 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
6151
6152         * Theme.cs: FileDialogs should be using DesktopDirectory instead of
6153         Desktop.  This lets it work for people who have moved their desktops
6154         from the default location on windows.  For people who have not, both
6155         values are the same, so it shouldn't hurt anything.  [Fixes bug #325270]
6156
6157 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
6158
6159         * ToolStripControlHostTest.cs: DefaultSize is based off hosted control,
6160         but when the base constructor sets this, the control is null.  Set it
6161         again in the constructor.  Fixes a failing monobuild test.
6162
6163 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
6164
6165         * ToolStripDropDownItem.cs: Make sure Click and DropDownOpened events
6166         get called.
6167         * ToolStripSplitButton.cs: Make sure MouseDown and MouseUp events get
6168         called.
6169
6170 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
6171
6172         * ToolStrip.cs: Don't show tooltips for ToolStripTextBoxes, they
6173         will handle it themselves.
6174         * ToolStripItem.cs: When deciding what the text of a tooltip should
6175         be, use the Text property instead of the text field.
6176         * ToolStripTextBox.cs: Handle tooltips.
6177         [Fixes bugs #325417 and #325973]
6178
6179 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
6180
6181         * ToolStripDropDownButton.cs: Only drop down overflow menu with a
6182         left click.  Fixes the easy part of bug #325969.
6183
6184 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
6185
6186         * ToolStrip.cs: Set AutoSizeMode back to GrowAndShrink to refix
6187         bug #325406, but set a minimum for StatusStrip to 22 to keep
6188         bug #325390 fixed.  I think this minimum would have been figured
6189         up automatically if the grip was actually a ToolStripItem, but it
6190         currently is not.
6191
6192 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6193
6194         * ListView.cs: max_label_wrapping is now 30 pixels instead of 38,
6195         as this is apparently the actual value used by .Net. Also apply
6196         ItemPadding in Details view only, and decrease the general width padding,
6197         to have only the needed. This should fix #324340 in Windows too.
6198
6199 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6200
6201         * ListViewItem.cs: Don't Invalidate item if parent is inside
6202         a BeginUpdate/EndUpdate block. This prevents to have differences
6203         between the ListView and items state, as well as avoid some exceptions
6204         there.
6205         * ListView.cs: Make 'updating' field internal.
6206
6207 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
6208
6209         * ToolStripControlHost.cs: Realign control when ControlAlign changes.
6210         * ToolStripItem.cs: Use ImageScalingSize when calculating preferred
6211         size if appropriate.
6212         Fixes reopened bug #325414.
6213
6214 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
6215
6216         * ToolStrip.cs: Set AutoSizeMode back to GrowOnly.
6217         * ToolStripItem.cs: Invalidate before and after our new autosize when
6218         text changes.
6219         Fixes reopened bug #325390.
6220
6221 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
6222
6223         * ToolStripMenuItem.cs: Make sure we invalidate when clicked so
6224         mnemonics can be drawn or undrawn correctly.  Fixes reopened bug 
6225         #325044.
6226
6227 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
6228
6229         * Control.cs: Do WM_CONTEXTMENU before OnMouseUp.  [Fixes bug #325535]
6230
6231 2007-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6232
6233         * ColumnHeader.cs: When drawing column text, use EllipsisCharacter
6234         instead of EllipsisWord (by equistango at gmail.com). Fixes part of
6235         #82734.
6236
6237 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
6238
6239         * ToolStrip.cs: Make ToolStrip selectable when TabStop = true.  Find an
6240         item to select when the ToolStrip is selected.
6241         * ToolStripControlHost: Realign the control when the bounds or visibility
6242         change.
6243         * ToolStripItem.cs: When selected, if it's a control host, focus the control.
6244         * ToolStripOverflow.cs: When laying out the drop down, respect the item's
6245         preferred height.
6246         * ToolStripTextBox.cs: OnPaintInternal should call base.OnPaintInternal, not
6247         base.OnPaint.  Was causing text not to be drawn.
6248
6249 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
6250
6251         * SplitterPanel.cs: Ignore attempts to set AutoSizeMode.
6252
6253 2007-09-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6254
6255         * TreeView.cs: When creating the label edit text box,
6256         set is initially to Visible = false. This is done to
6257         prevent a confusion in the layout which makes it to lose
6258         focus when shown the first time. Fixes part of #82592.
6259
6260 2007-09-13 Andreia Gaita <avidigal@novell.com>
6261
6262         * WebBrowserBase.cs: add FocusOption enumeration for finer focus control
6263
6264 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
6265
6266         * ToolStrip.cs: Take Margin into account when calculating preferred
6267         size.  Also, allow preferred size to get smaller than the explicit
6268         size.
6269         * ToolStripTextBox.cs: Don't change the GetPreferredSize implementation.
6270         First step towards fixing bug #82747.
6271
6272 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
6273
6274         * TreeView.cs: Applied patch from latency@gmx.de to not paint the
6275         full row select background over the plus/minus glyph.  Also, turn
6276         off the focus rectangle for full row select since MS doesn't seem
6277         to ever paint it.  [Fixes bug #81839]
6278
6279 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
6280
6281         * ToolStrip.cs: Don't FocusInternal if there is no selected item.
6282         This was causing keyboard opened dropdowns to lose focus.
6283         [Fixes bug #82803]
6284
6285 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
6286
6287         * Control.cs: If Rectangle.Empty is passed to Invalidate, use
6288         ClientRectangle instead.  [Fixes bug #82838]
6289
6290 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
6291
6292         * SplitContainer.cs: We can't reset Visible on every layout because
6293         someone may have set Visible = false explicitly on a SplitterPanel.
6294         Make sure when we switch orientation the SplitterDistance does not
6295         change.  Fixes two failing tests.
6296
6297 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6298
6299         * TreeView.cs: Use MeasureTextInternal instead of MeasureText in
6300         TextRenderer, since the latter is only available in 2.0.
6301
6302 2007-09-13  Ivan N. Zlatev <contact@i-nz.net>
6303
6304         * Cursor.cs: Fix Cursor.Current to apply Cursor.Default.
6305         * SplitContainer.cs: Implement FixedPanel layouting.
6306
6307 2007-09-12  Andreia Gaita  <avidigal@novell.com>
6308
6309         * WebBrowserBase.cs: setup shutdown routine
6310
6311 2007-09-12  Andreia Gaita  <avidigal@novell.com>
6312
6313         * Application.cs: Let keyboard events that are targetted 
6314                 to non-mwf windows hosted inside mwf (as in, webbrowser),
6315                 propagate properly. Fixes keyboard handling on the webbrowser.
6316
6317 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6318
6319         * ListView.cs: When handling MouseUp event and we are 
6320         highligting a node with the mouse right button, don't trigger
6321         Before/AfterSelecting event, since we are not actually selecting
6322         the node.
6323
6324 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6325
6326         * TreeView.cs: When editing a node, modify the edit text box
6327         depending on the text length (as you are typing), like MS does.
6328
6329 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
6330
6331         * ToolStrip.cs: Fixup preferred size calculations for vertical toolbars. 
6332         Override GetPreferredSizeCore to perform calculations.  Remove custom
6333         autosize logic.  [Fixes bug #82739]
6334
6335 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
6336
6337         * TextBoxBase.cs: Modified should default to false.
6338
6339 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
6340
6341         * Control.cs: Update the anchoring distances even when layout is supspended.
6342         Patch provided by George fixes bug #82805.
6343
6344 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
6345
6346         * Control.cs: Provide a setter for ExplicitHeight.
6347         * TextBoxBase.cs: Now that we have the implementation for explicit heights,
6348         remove the hacks in here for requested_height.
6349         [Fixes bug #82749]
6350
6351 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
6352
6353         * ScrollBar.cs: Fix an issue reported on the lists where setting a scrollbar's
6354         Maximum to lower that its current Value caused an ArgumentException by setting
6355         the Value to the new Maximum.
6356
6357 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
6358
6359         * ThemeWin32Classic.cs: Math is hard!  Fix some math so that the TrackBar
6360         handle moves to the closest tick when it is being dragged.
6361         [Fixes bug #82751]
6362
6363 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
6364
6365         * ToolStripManager.cs: When we have added MDI buttons onto a MenuStrip, we
6366         can't let them count as real items when calculating where to merge in the
6367         user's items.  [Fixed bug #82786]
6368
6369 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
6370
6371         * ToolStripMenuItem.cs: Add a parent type check so we don't crash on people
6372         who want to add a menu item directly onto a toolstrip.
6373         [Fixes bug #82775, part II]
6374
6375 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
6376
6377         * StatusStrip.cs: Synchronize SetDisplayedItems with the ToolStrip version.
6378         * ToolStrip.cs: If a ToolStripItem set to not visible is added to a ToolStrip,
6379         don't set it to available.
6380         * ToolStripItem.cs: When Visible is changed, tell the owner to perform a layout.
6381         [Fixes bug #82727, part II]
6382
6383 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
6384
6385         * StatusStrip.cs: Change item placement to None if not visible.
6386         * ToolStripItem.cs: Invalidate when InternalVisible changes.
6387         These should have been committed to fix 82723, but I missed them.
6388
6389 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
6390
6391         * ToolStrip.cs: Make sure ItemClicked is raised before the ToolStripItem's
6392         Click, and that it is only called once.
6393         * ToolStripMenuItem.cs: Call OnClick even when there are dropdown items.
6394         * ToolStripDropDownItem.cs: Override HandleItemClick so dropdowns stay
6395         dropped down.
6396         [Fixes bug #82775]
6397
6398 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6399
6400         * ColumnHeaderSample.cs: Use 5 pixels as extra height instead of 8
6401         to match .Net.
6402         * ThemeWin32Classic.cs: For the columns text, use 5 pixels as left padding
6403         instead of 8, just like above. Partially fixes #82734.
6404
6405 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6406
6407         Patch by Ernesto Carrea <equistango at gmail.com>. Partially 
6408         fixes #82734.
6409
6410         * ListView.cs: Remove extra space between rows in Details view (match
6411         .Net). 
6412         * ThemeWin32Classic.cs: Header text should use ListView.Font, not
6413         the DefaultFont.
6414
6415 2007-09-08  Gert Driesen  <drieseng@users.sourceforge.net>
6416
6417         * Application.cs: Modified ProductVersion to return value of
6418         AssemblyInformationVersion if available, and fallback to assembly
6419         version. Fixes bug #82746. Code formatting.
6420         * BindingSource.cs: Remove NIE from Dispose, and mark it MonoTODO
6421         instead.
6422
6423 2007-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6424
6425         * Control.cs: When updating ZOrder for a child control,
6426         take into account the implicit ones (we need it in our controls
6427         using them). Fixes #82642.
6428
6429 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
6430
6431         * ToolStripItem.cs: Add support for animated images.
6432         [Fixes bug #82726]
6433
6434 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
6435
6436         * ToolStrip.cs: Make sure we aren't drawing anything that isn't 
6437         visible.  [Fixes bug #82727]
6438
6439 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6440
6441         * ToolStripItem.cs: If AutoSize changes the size of our item, invalidate
6442         so we repaint using the new size.  [Fixes bug #82723]
6443
6444 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6445
6446         * TreeView.cs: If ShowLines is true, we should ignore the FullRowSelect
6447         option.  [Fixes bug #81779]
6448
6449 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6450
6451         * TreeView.cs: Override HandleClick because the StandardClick style is
6452         set to false.  According to MSDN (and testing), the click events should
6453         only be raised when the click occurs on a TreeNode.  [Fixes bug #81739]
6454
6455 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6456
6457         * ToolStripTextBox.cs: Invalidate our textbox when it loses focus, so
6458         the border will disappear.  Fixes reopened #82653.
6459
6460 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6461
6462         * Control.cs: If the control is autosize, and its preferred size changes
6463         when it lays out its children, tell its parent so it can be re-layed out.
6464         Fixing some of the fallout from r85433.
6465
6466 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6467
6468         * ThemeWin32Classic.cs: Fix a NRE caused by r85427 because RadioButton
6469         and CheckBox share some code.
6470
6471 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6472
6473         * TrackBar.cs: Only call OnScroll if we actually changed the Value of
6474         the TrackBar, not every mouse move.  [Fixed bug #82718]
6475
6476 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6477
6478         * ThemeWin32Classic.cs: Allow a CheckBox to be rendered like a Button
6479         under 2.0 rendering.  [Fixes bug #82657]
6480
6481 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6482
6483         * TreeView.cs: If we found a TreeNode to display a context menu, but
6484         it doesn't have one to show, let the TreeView display its menu
6485         instead.  [Fixes bug #82680]
6486
6487 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
6488
6489         * ToolStripTextBox.cs: TextBox no longer call OnPaint, we need to use
6490         OnPaintInternal instead.  Give the internal TextBox a Border property
6491         so it can draw itself more correctly.  [Fixes bug #82653]
6492
6493 2007-09-06  Zoltan Varga  <vargaz@gmail.com>
6494
6495         * HtmlHistory.cs HtmlWindow.cs HtmlWindowCollection.cs ListBindingHelper.cs WindowsFormsSection.cs WindowsFormsSynchronizationContext.cs: Stubs for missing 2.0 classes.
6496
6497 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
6498
6499         * ComboBox.cs: Adjust combobox button state to reflect current state when
6500         back to enabled = true. Fixes first issue of #82654.
6501
6502 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
6503
6504         * Control.cs: Fix last patch regression, prevent forms to update zorder when
6505         setting visible property.
6506
6507 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
6508
6509         * Control.cs: Update zorder after control creation in SetVisibleCore, it 
6510         fix zorder for controls initially created as non visible. Fixes #82667.
6511
6512 2007-09-04  Everaldo Canuto  <everaldo@simios.org>
6513
6514         * ThemeWin32Classic.cs: Adjust checkbox light color to ControlLightLight to
6515         mimic win32 look. Fixes #82656.
6516
6517 2007-09-01  Zoltan Varga  <vargaz@gmail.com>
6518
6519         * FileDialogCustomPlace.cs FileDialogCustomPlacesCollection.cs: 
6520         Stubs for new net 3.5 classes.
6521
6522 2007-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6523
6524         * ListViewItem.cs: In ListViewItemCollection operations calculate
6525         Layout for owner as well as invalidate it. Fixes part of #82642.
6526
6527 2007-08-31  Jonathan Pobst  <monkey@jpobst.com>
6528
6529         * ToolStripItem.cs: Take Parent/Owner's Enabled state in to account
6530         when returning Enabled.  [Fixes bug #82651]
6531
6532 2007-08-30  Everaldo Canuto  <everaldo@simios.org>
6533
6534         * ToolBar.cs: Fix button size for non flat toolbars. Fixes #82368.
6535
6536 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6537
6538         * ListView.cs: Put item padding info in a single place
6539         (Theme.ListViewItemPaddingWidth) to have working AutoResize on
6540         columns again.
6541         * ThemeWin32Classic.cs:
6542         * Theme.cs: Likewise.
6543
6544 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6545
6546         * ListView.cs: When a ListViewSubItem instance is invalidated,
6547         invoke Invalidate on parent ListViewItem, not parent ListView.
6548         Fixes #81570.
6549
6550 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
6551
6552         * ListView.cs, ListViewItem.cs: corcompare stuffs.
6553
6554 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
6555
6556         * BindingMemberInfo.cs: Implement == and != operators.
6557
6558 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
6559
6560         * HtmlElementEventArgs.cs: Implement properties.
6561
6562 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
6563
6564         * HtmlElementErrorEventArgs.cs, HtmlElementErrorEventHandler.cs: Added.
6565
6566 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
6567
6568         * TabControl.cs: I was looking into the MonoTODO on TabPageCollection.
6569         Add (string,string,string) to implement the imagekey.  It turns out, we
6570         use the requested imagekey whereas .Net does not.  So I broke ours to match
6571         theirs.  :(
6572
6573 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
6574
6575         * Form.cs, UserControl.cs: Override ValidateChildren, AutoValidate.
6576
6577 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
6578
6579         * ContainerControl.cs: Implement ValidateChildren and new Validate overload.
6580
6581 2007-08-29  Gert Driesen  <drieseng@users.sourceforge.net>
6582
6583         * FolderBrowserDialog.cs: Set Tag of newly created node, and keep it
6584         up-to-date. Fixes bug #82618.
6585
6586 2007-08-29  Everaldo Canuto  <everaldo@simios.org>
6587
6588         * TextBoxBase.cs: Call CalculateDocument after changes Lines property to
6589         reflect document changes. Fixes #82367.
6590
6591 2007-08-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6592
6593         * ListView.cs: Add/fix some override differences between 1.1 and 2.0,
6594         as well as add new ones. This should make work the BackgroundImage
6595         property for ListView again.
6596
6597 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
6598
6599         * DataGrid.cs, DataGridViewButtonColumn.cs, DataGridViewCheckBoxColumn.cs,
6600         DataGridViewComboBoxColumn.cs, DataGridViewImageColumn.cs, DataGridViewLinkColumn.cs,
6601         DataGridViewTextBoxColumn.cs, ToolTip.cs: corcompare stuffs.
6602
6603 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
6604
6605         * Control.cs, XPlatUI.cs, XPlatUIDriver.cs, XPlatUIWin32.cs: Implement
6606         IsKeyLocked.
6607
6608 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
6609
6610         * Cursor.cs: Add HotSpot, hook into XPlatUI.GetCursorInfo.
6611         * XPlatUIWin32.cs: Implement hotspot lookup in GetCursorInfo.
6612
6613 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
6614
6615         * RadioButton.cs: Use 2.0 rendering.  Use base implementation of TextAlign.
6616         * Theme.cs, ThemeWin32Classic.cs: Implement 2.0 rendering for RadioButton.
6617
6618 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
6619
6620         * CursorConverter.cs: Implement conversion to InstanceDescriptor.
6621
6622 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
6623
6624         * GridEntry.cs: Implement GetService.
6625
6626 2007-08-27  Jonathan Pobst  <monkey@jpobst.com>
6627
6628         * LabelEditTextBox.cs, TreeView.cs: After hiding the textbox used
6629         for label editting, make sure we focus back on the TreeView.
6630         [Fixes bug #82590]
6631
6632 2007-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6633
6634         * ListView.cs: Add some 2.0 overrides.
6635
6636 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
6637
6638         * Form.cs: Uses opacity var instead of Opacity property in CreateHandle
6639         because getter dont returns right value before handle creation. Thanks 
6640         to George. Fixes #82569.  
6641
6642 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
6643
6644         * Theme.cs: Revert last patch, it causes error under win32. 
6645
6646 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
6647
6648         * Theme.cs: Uses Environment.SpecialFolder.DesktopDirectory instead of 
6649         Environment.SpecialFolder.Desktop in Places method, Desktop returns the 
6650         logical Desktop rather than the physical file system location. Fixes #82603. 
6651
6652 2007-08-26  Everaldo Canuto  <ecanuto@novell.com>
6653
6654         * MessageBox.cs: Add clipboard copy (ctrl+c) to messagebox. Thanks Andy Hume
6655         for the patch. Fixes #82568.
6656
6657 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6658
6659         * ListView.cs: Add a pair of missing 2.0 ListViewItemCollection.Insert
6660         methods.
6661
6662 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6663
6664         * ListViewInsertionMark.cs: New stubbed class.
6665
6666 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
6667
6668         * FolderBrowserDialog.cs: When adding folder, immediately create the
6669         directory with temporary name and rename the directory when editing
6670         finishes. This matches MS. Ensure the node for the new folder is 
6671         selected and LabelEdit is disabled, when editing is either finished
6672         or cancelled.
6673
6674 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
6675
6676         * TreeView.cs: When editing label of node, ensure node is visible.
6677
6678 2007-08-25  Ivan N. Zlatev  <contact@i-nz.net>
6679
6680         * PropertyGridView.cs: Set the value only if it has changed.
6681
6682 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6683
6684         * ListView.cs: Some more code refactoring to add support sorting
6685         with groups (now for Details view). Remove unused code also.
6686
6687 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
6688
6689         * NodeLabelEditEventArgs.cs: EndEdit immediately when CancelEdit is called.
6690         Not a big fan of reacting immediately to a field in an EventArg, but that's
6691         the way it's done.  (This is part of the previous commit that got left out.)
6692
6693 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
6694
6695         * FolderBrowserDialog.cs: Removed need for separate description field.
6696         Replaced "" with string.Empty. Fixed tabindex. Ensure OK button
6697         has focus when dialog box is displayed again, regardless of what
6698         button was pressed the previous time. Set RootFolder and SelectedPath
6699         each time dialog box is displayed. This ensures the treeview is
6700         refreshed, and fixes bug #82579. Do no hide selected node in TreeView
6701         when it does not have focus. Added support for more special folders.
6702
6703 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
6704
6705         * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in EndEdit
6706         before calling AfterLabelEdit.  If the user calls BeginEdit in that event,
6707         it resets the edit_args.
6708         * TreeNode.cs: Call CancelEdit if the user passes cancel = true to EndEdit.
6709         [Fixes bug #82577]
6710
6711 2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
6712
6713         * FolderBrowserDialog.cs: Modifies form caption and text of new folder
6714         button to match MS. Provide more meaningful exception message for
6715         invalid RootFolder value. Use zero-length string when SelectedPath
6716         is set to null. Allow non-rooted paths in SelectedPath, but ignore
6717         them in FolderBrowserTreeView. Allow folders to be created in
6718         RootFolder. Fixes bug #82576.
6719
6720 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6721
6722         * ListView.cs: Correctly compute the layout_ht (height) when using groups,
6723         since we need to take into account the group headers and the margin
6724         between them.
6725         * ListViewGroup.cs: Add a rows field to store the number of rows per
6726         group.
6727
6728 2007-08-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6729
6730         * DateTimePicker.cs: The MS' MTB has a really stupid year formatting.
6731           Anyways, let's just follow the lead.
6732
6733 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
6734
6735         * CheckBox.cs: Set the AutoSizeMode to GrowAndShrink.
6736         * Form.cs, GroupBox.cs: Don't skip Right or Bottom anchored 
6737         controls in GetPreferredSizeCore.
6738         * ThemeWin32Classic.cs: Tweak text drawing of CheckBoxes.
6739         [Fixes bug #82488]
6740
6741 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
6742
6743         * PrintDialog.cs: Need to instantiate the form variable here too.
6744
6745 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6746
6747         * ListView.cs: Do some reorganization to support sorting in groups,
6748         by doing the layout sequentially in ListView.Items. Also add support
6749         for the Default Group, which should be available for items with no
6750         group assigned.
6751         * ListViewGroup.cs: Add support for DefaultGroup. Include new members
6752         for storing layout info also.
6753         * ListViewGroupCollection.cs: Add a DefaultGroup as part of the
6754         collection, as well as providing internal members to do a traversal
6755         including the default group (needed when doing layout/drawing).
6756         * ThemeWin32Classic.cs: When drawing group headers use internal
6757         ListViewGroupCollection members to take into account the default
6758         group.
6759
6760 2007-08-23  George Giolfan  <georgegiolfan@yahoo.com>
6761
6762         * FlowLayoutPanel.cs: Add GetPreferredSizeCore.  [Fixes bug #82537]
6763
6764 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
6765
6766         * TreeView.cs: IsInputKey: don't ask for any keys if the handle hasn't
6767         been created.  If handle is created, we want arror keys.  If we are editing
6768         a node, we want things like enter, esc, home, end, page up, page down.
6769         Allows Esc to work for FolderBrowserDialog.
6770
6771 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
6772
6773         * ColorDialog.cs, FontDialog.cs: Set the form's CancelButton so that
6774         they close when ESC is pressed.  Thanks Andy!
6775
6776 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
6777
6778         * CommonDialog.cs: Do not instantiate form, leave that for derived classes.
6779         This way we can tell if this is a CommonDialog provided with mono, or one
6780         that is being implemented outside by a developer.  If it is an external one,
6781         the developer is responsible for showing their own form.  We were showing
6782         our blank form after the developer showed his.
6783         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs, FontDialog.cs,
6784         PageSetupDialog.cs: Instantiate form variable in our constructor.
6785         [Fixes bug #82531]
6786
6787 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
6788
6789         * ListBox.cs, ListView.cs, TreeView.cs: Override IsInputCharInternal
6790         and always return true.  [Fixes bug #81616]
6791
6792 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
6793
6794         * TextBoxBase.cs: Allow 2.0 AutoSize to change the height of the
6795         TextBox.  [Fixes bug #82549]
6796
6797 2007-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
6798
6799         * FileDialog.cs: When Save/Open is clicked and no filename is selected
6800         or entered then do not close the dialog. Fixes bug #82539. Removed
6801         CWLs.
6802
6803 2007-08-22  Everaldo Canuto  <ecanuto@novell.com>
6804
6805         * FileDialog.cs: Create UpdateRecentFiles and move the recent files refresh
6806         code to this method. It is calling every time filter changes. This method
6807         will help to fix the bug #80887.
6808
6809 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
6810
6811         * CheckBox.cs: Implement AutoSize calculation.
6812
6813 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
6814
6815         * CheckBox.cs: Use new 2.0 rendering for 2.0.
6816         * Theme.cs: Method declarations for 2.0 rendering path.
6817         * ThemeWin32Classic.cs: 2.0 rendering implementation for CheckBox.
6818
6819 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6820
6821         * ListViewGroupCollection.cs: Fix a typo of the previous patch.
6822
6823 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6824
6825         * ListViewGroupCollection.cs: Implement AddRange the right way, to
6826         only call Redraw on the parent one time.
6827
6828 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6829
6830         * DataGridViewRowHeaderCell.cs, DataGridViewColumnHeaderCell.cs: Implemented
6831           GetClipboardContent.
6832         * DataGridViewCell.cs: Implemented GetClipboardContent,
6833           GetEditedFormattedValue, GetFormattedValue.
6834         * DataGridView.cs: Implemented GetClipboardContent, TopLeftHeaderCell.
6835
6836 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
6837
6838         * TableLayoutStyleCollection.cs: corcompare fix.
6839
6840 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6841
6842         * DataObject.cs: Implemented retrieval of convertible / not convertible
6843           objects.
6844
6845 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
6846
6847         * ToolStripItem.cs: When changing the item's text, invalidate before we resize
6848         ourselves.  This ensures the entire old bounds are repainted, in case our new
6849         size is smaller.  [Fixes bug #82518]
6850
6851 2007-08-20  Everaldo Canuto  <ecanuto@novell.com>
6852
6853         * XplatUIX11.cs: Apply patch from #81588, it makes use of PointerMotionHintMask
6854         flag to make fast handle of mouse events, without this the mouse move is
6855         handled in some manner, whether it is a mouse move or not. Fixes #81588.
6856
6857 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6858
6859         * ListView.cs: When doing layout calculations don't use a ref
6860         param to keep the current item; instead use its Index value (this 
6861         is specially important when doing the layout with Groups
6862         and Items being sparse). Also don't take into account items added to
6863         the Group but not yet added to the main ListView.Items collection.
6864
6865 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6866
6867         * ListViewGroupCollection.cs: Forgot to mimic an issue
6868         in the indexer (don't assign the ListView owner for new values).
6869
6870 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6871
6872         * ListViewGroupCollection.cs: Make the string indexer use
6873         the int based indexer to re-use code, instead of duplicate the code.
6874         Also Redraw as needed and take into account null values.
6875
6876 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
6877
6878         * StatusStrip.cs: Make sure the item's parent gets set in SetDisplayedItems.
6879         [Fixes bug #82481]
6880
6881 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
6882
6883         * ToolStrip.cs: Add some logic to un-focus controls in ToolStripControlHosts
6884         when other buttons are clicked or navigated to.
6885
6886 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6887
6888         * XplatUIX11.cs: Treat toolwindows as if they had no window manager, since
6889           it's XplatUIX11 that attaches them.
6890
6891 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6892
6893         * DataGridView.cs: If a column has been added, recreate the editing row.
6894           Fixes #82226.
6895
6896 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6897
6898         * TextControl.cs: Use Math.Max instead of Math.Min when deciding the length
6899           of the tag to draw. Makes disappearing text show up again.
6900
6901 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6902
6903         * StatusBar.cs: Take into account any icons when a panel has AutoSize =
6904           Contents. Fixes #82487.
6905
6906 2007-08-19  Andreia Gaita  <avidigal@novell.com>
6907
6908         * Added HtmlElement.cs, HtmlElementCollection.cs, 
6909           HtmlElementEventArgs.cs, HtmlElementEventHandler.cs
6910           
6911 2007-08-19  Andreia Gaita  <avidigal@novell.com>
6912
6913         * BindingSource.cs: Implement this, dispose and getenumerator.
6914         * DataGridViewRowCollection.cs: Move the InvalidOperationException
6915         out of AddInternal, throw it only on public Add calls. The 
6916         UsingWebBrowser sample was blowing up with this when setting the
6917         DataSource after adding DataBindings, so it's likely that .net
6918         only throws this exception when Add is called directly. 
6919         
6920         * ToolStripControlHost.cs: Return the hosted control's text
6921         property, and not the ToolStripItem one (it would always return
6922         the initial value).
6923         
6924         * HtmlDocument.cs: Implement GetElementById and All
6925         * WebBrowser.cs: Remove exception on set_DocumentStream.        
6926
6927 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
6928
6929         * Form.cs: Fix the max and min value for opacity (0~1).
6930
6931 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
6932
6933         [Fixes #80118]
6934         * DataGridTableStyle.cs: Default header font is now null, on getter it 
6935         returns datagrid font when is null. On setter permits null.
6936
6937         * DataGrid.cs:
6938         - When ResetHeaderFont set header font to null.
6939         - On EndInit set grid_style.DataGrid.
6940
6941 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
6942
6943         * TabControl.cs: Fix regression in default padding x.
6944
6945 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
6946
6947         * TabControl.cs: Fix tab page text area removing padding. Fixes #82471.
6948
6949 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
6950
6951         * TabControl.cs: Fix first tab drawing, when selected it must have x = 0
6952         not 2. Fixes #82229.
6953
6954 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
6955
6956         * TabControl.cs: Fix tab size when image height is less than text height.
6957         Partially fixes #81837.
6958
6959 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
6960
6961         * Form.cs: Add WS_EX_CONTROLPARENT to forms to make it selectable using 
6962         "alt + tab". It works only for Win32, for X11 theres no way to remove window
6963         from taskbar and keep it on "alt_tab". Fixes #81722.
6964
6965 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
6966
6967         * XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
6968         and DrawReversibleLine, also apply same behavior to FillReversibleRectangle. 
6969         Fixes #80877 and #79418.
6970
6971 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
6972
6973         * MenuAPI.cs: Fix popup menu position when the size is larger than distance 
6974         between position and one of the screen borders. Fixes #82349.
6975
6976 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
6977
6978         * MessageBox.cs: When there is no form that invoked the MessageBox, shows
6979         the MessageBox in the taskbar. Fixes #82457.
6980
6981 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
6982
6983         * MessageBox.cs: Fix form size when icon is set and text height is bigger
6984         than icon. Fixes #82468.
6985
6986 2007-08-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6987
6988         * ThemeWin32Classic.cs: A FixedToolWindow has border size 3.
6989         * InternalWindowManager.cs: Change HandleCalcSize to return a boolean value
6990           if handled or not. Implement WM_NCCALCSIZE for WParam == 0 as well.
6991           Refactored HandleNCCalcSize somewhat to avoid code duplication.
6992         * Form.cs: Add is_clientsize_set, set in set_ClientSize, used by
6993           FormBorderStyle to decide if we're calculating a new size from the
6994           client size or not. CreateParams: Don't fake tool windows, only the X11
6995           backend manages toolwindows manually.
6996
6997 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
6998
6999         * Form.cs: Only reset is_visible if !IsDisposed to prevent an
7000         ObjectDisposedException.
7001
7002 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
7003
7004         * Form.cs: Reset is_visible back to true after OnLoad.  Setting this
7005         in OnLoad should not have any effect.  [Fixes bug #82470]
7006
7007 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
7008
7009         * ToolTip.cs: Add a hack to ToolTipWindow so it will still size and
7010         paint for controls that create their own ToolTipWindow instead of
7011         going through ToolTip.
7012
7013 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
7014
7015         * ToolTip.cs: Make Hide internal instead of public to match MS API.
7016
7017 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7018
7019         * ListViewGroupCollection.cs: Use generic List instead of an
7020         ArrayList, since this collection is 2.0 only.
7021
7022 2007-08-17  Jeffrey Stedfast  <fejj@novell.com>
7023
7024         * ToolTip.cs (Hide): Made public to make the build work (should
7025         this not be public?).
7026
7027 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
7028
7029         * ToolBar.cs, ToolStrip.cs, TreeView.cs: Use a ToolTip instead of a
7030         ToolTipWindow.
7031         * ToolTip.cs: Add an internal Visible property to facilitate transition.
7032
7033 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
7034
7035         * DrawToolTipEventArgs.cs, DrawToolTipEventHandler.cs, PopupEventArgs.cs,
7036         PopupEventHandler.cs: Make these internal for 1.1.
7037         * ThemeClearlooks.cs, ThemeWin32Classic.cs: Use TextRenderer, and modify to not
7038         use ToolTipWindow internals.
7039         * ToolTip.cs: Add 2.0 modal Show methods.  Had to move a lot of stuff around to
7040         support this.  A lot of stuff in the ToolTipWindow got moved to the ToolTip.
7041
7042 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7043
7044         * X11Dnd.cs: Add a null check.
7045
7046 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7047
7048         * X11Dnd.cs: MwfWindow: Try to load the control directly from the handle if
7049           nothing else succeeds. Fixes #82453.
7050
7051 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7052
7053         * XplatUIWin32.cs: PaintEventStart: validate the entire source client
7054           rectangle if we're painting to another window than the one the paint
7055           message was generated on. Simplify the code somewhat, which makes
7056           PaintEventEnd also simpler.
7057
7058 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7059
7060         * Control.cs: When changing parent of a form, let the form decide whether
7061           XplatUI.SetParent should be called or not.
7062         * Form.cs: ChangingParent: only call XplatUI.SetParent if we're not
7063           recreating the handle. If the new parent's handle isn't created, don't
7064           recreate our handle, just destroy it. CreateParams: Check if the
7065           parent's handle is created before fetching it.
7066
7067 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7068
7069         * Control.cs, Form.cs, InternalWindowManager.cs, MainMenu.cs, MdiClient.cs:
7070           Update calls to PaintEventStart/End to take a Message argument.
7071         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Update PaintEventStart/End to
7072           take a Message argument.
7073         * XplatUIWin32.cs, XplatUIX11.cs: Update PaintEventStart/End to take a
7074           Message argument, and handle the case where we don't paint to the window
7075           for which the paint message was generated.
7076
7077 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7078
7079         * XplatUIWin32.cs: Don't call Win32GetLastError directly, use
7080           Marshal.GetLastWin32Error. Plug nasty memory leak in
7081           PaintEventStart/End, we were creating a DC we weren't releasing.
7082
7083 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7084
7085         * ListView.cs: Add Groups support in Details view. Also have a small
7086         method to do the layout of the group header. Don't use a separate
7087         method to do the groups calculation in Icons view, since our methods
7088         are now a little simpler.
7089         * ListViewGroup.cs: Use the more accurate `HeaderBounds' name than
7090         `Bounds'.
7091         * ThemeWin32Classic.cs: Likewise.
7092
7093 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
7094
7095         * Application.cs: Add FilterMessage method and rework our message loop
7096         logic to use it.
7097
7098 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
7099
7100         * Application.cs: Add some methods and stub a few methods that are
7101         pretty much never used.
7102
7103 2007-08-15  Jonathan Pobst  <monkey@jpobst.com>
7104
7105         * TreeNode.cs: Add some serialization methods.
7106
7107 2007-08-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7108
7109         * ListView.cs: In ListViewItemCollection have a 
7110         'is_main_collection' field to not modify ListViewItem.ListView
7111         when using it as ListViewGroup.Items (and not ListView.Items)
7112         and also don't modify selection state (.Net behaviour). 
7113         Instead, set group for items contained in a ListViewGroup.Items collection.
7114         * ListViewItem.cs: Simplify some code in Group setter.
7115         * ListViewGroup.cs: use the new .ctor to pass the current instance
7116         to the ItemsCollection.
7117         * ListViewGroup.cs: Set the ListView property for ListViewGroup
7118         instances when adding/removing. Also make Remove use RemoveAt, which
7119         should perform better.
7120
7121 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
7122
7123         * Message.cs, TabControl.cs, TextBox.cs, TextBoxBase.cs: Hide some 2.0 API
7124         that crept into the 1.1 profile.
7125
7126 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
7127
7128         * ToolBarButton.cs: Implement ImageKey.
7129
7130 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
7131
7132         * ToolBar.cs: Implement ScaleControl/ScaleCore.
7133
7134 2007-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7135
7136         * PictureBox.cs: OnAnimateImage/UpdateAnimateImage: Check if handle is still
7137           created, it might have gotten destroyed since we last checked. Fixes
7138           #82405.
7139
7140 2007-08-11  Jonathan Pobst  <monkey@jpobst.com>
7141
7142         * ToolTip.cs: Remove mouse in control check from mouseleave handler so
7143         tooltip will hide when mouse is moved off the control.
7144         [Fixes bug #82407]
7145
7146 2007-08-11 Andreia Gaita <avidigal@novell.com>
7147
7148         * WebBrowserBase.cs, WebBrowser.cs: add implementation
7149         using Mono.Mozilla for loading and navigating webcontrol
7150         with xulrunner.
7151         The initial implementation was done on 
7152         /trunk/mozembed/tests/browser , and copied here.
7153
7154 2007-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
7155
7156         * ThemeWin32Classic.cs: On 2.0 profile, use ForeColor and BackColor of
7157         ToolTipWindow for drawing the tooltip. Fixes bug #82408.
7158
7159 2007-08-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7160
7161         * DataGridView.cs: Add support for an editing row. Fixes #82226.
7162           RowTemplateFull: throw an exception if a column doesn't have a template.
7163         * DataGridViewRowCollection.cs: AddInternal: if there are any editing rows,
7164           add the row just before it.
7165         * DataGridViewTextBoxCell.cs: Don't paint cells which are in edit mode as
7166           selected.
7167         * DataGridViewSelectedRowCollection.cs: Don't return the editing row. Add a
7168           DataGridView field to be able to reach the grid's editing row.
7169
7170 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
7171
7172         * ToolTip.cs: If the control's handle hasn't been created when it has a
7173         tooltip set on it, don't check to see if we need to show the tooltip.  This
7174         check was causing the control's handle to be created.
7175         [Fixes bug #82399]
7176
7177 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
7178
7179         * TextBoxBase.cs: Fix SelectionLength when no text selected to match MS:
7180                                         1.1             2.0
7181         Handle Not Created      -1              0
7182         Handle Created          0               0
7183         [Fixes bug #82371]
7184
7185 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
7186
7187         * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior.
7188         [Fixes bug #82348]
7189
7190 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
7191
7192         * DrawToolTipEventArgs.cs: Don't dispose a brush we got from the respool.
7193         * ToolTip.cs: Implement some properties and owner draw.
7194
7195 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7196
7197         * DataGridView.cs: OnPaint: don't set scrollbar visibility to false then
7198           show them again, since setting visibility causes a paint, causing an
7199           endless loop (instead use a temporary and set it all when it's known if
7200           they should be shown or not). Fixes #79265.
7201
7202 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7203
7204         * DataGridView.cs: Only do a full column/row selection if a header was
7205           clicked and we're in Column/RowHeader selection mode. If shift and ctrl
7206           isn't pressed, deselect everything before selecting something.
7207
7208 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7209
7210         * DataGridView.cs: Fix SelectedRows and SelectedColumns to match MS
7211           behaviour according to bug #81075 - they are returned in the order they
7212           are selected. Fix HitTest to check if the point is within any of the
7213           headers. Allow for row/column selection when in ColumnHeader or
7214           RowHeader selection mode. Add SetSelected[Column|Row]CoreInternal for
7215           the row and column to call when their selected state changes, and
7216           updated selected_[rows|columns] whenever SetSelected* is called.
7217         * DataGridViewBand.cs: Initialize isRow correctly. Call
7218           SetSelected[Row|Column]CoreInternal when the selected state changes, and
7219           add a SelectedInternal to avoid StackOverflows.
7220         * DataGridViewColumn.cs, DataGridViewRow.cs: If DGV is ReadOnly, we're also
7221           ReadOnly no matter what.
7222         * DataGridViewSelectedColumnCollection.cs,
7223           DataGridViewSelectedRowCollection.cs: Add an InternalAddRange that adds
7224           the items in reverse order (just as MS does...)
7225
7226 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
7227
7228         * Application.cs: Only release menustrips if Alt (MenuKey) is pressed by
7229         itself, not part of a mnemonic.  [Fixes bug #82378]
7230
7231 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7232
7233         * DataGridView.cs: BeginEdit: don't allow editing of readonly cells.
7234         * DataGridViewCell.cs: Implement ReadOnly better: the cell is ReadOnly if
7235           the DGV, the column, the row, or the cell itself is readonly.
7236
7237 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
7238
7239         * ThemeNice.cs: Use XplatUI.RunningOnUnix instead of checking
7240         OSVersion.Platform.
7241         * FileDialog.cs: Same.
7242         * TextRendered.cs: Same.
7243         * FolderBrowserDialog.cs: Same.
7244         * TextBoxBase.cs: Same.
7245         * Application.cs: Same.
7246         * Cursors.cs: Same.
7247         * ThemeClearLooks.cs: Same.
7248
7249 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
7250
7251         * XplatUI.cs: Added RunningOnUnix property to be used by controls
7252         instead of duplicating these checks everywhere.
7253         * FileDialog.cs: Use case-insensitive comparison for populating the
7254         DirComboBox when not running on unix. Fixes bug #82385.
7255         * OpenFileDialog.cs: to match MS, change label of DirComboBox to 
7256         "Look in".
7257
7258 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7259
7260         * DataGridView.cs: SelectedRows: we need to check if selectionMode is
7261           FullRowSelect (not FullColumnSelect). Fixes #81075. Implemented
7262           BeginEdit, EndEdit, SetSelected<Cell|Row|Column>Core. Implemented row,
7263           cell and column selection with ctrl and shift pressed. Call the correct
7264           BeginEdit/EndEdit whenever we start/end editing. Move painting code to
7265           the corresponding virtual method (PaintBackground to paint background,
7266           etc).
7267         * DataGridViewCell.cs: Implement Selected correctly, we're selected if
7268           either the column, row or the cell itself is selected.
7269         * DataGridViewRowCollection.cs: Use DGV.OnRowsAddedInternal instead of
7270           OnRowsAdded.
7271         * DataGridViewRow.cs: Moved some of the painting code from DataGridView
7272           here. When the row is selected, don't select all cells. Each cell now
7273           queries the row to see if the row is selected.
7274
7275 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7276
7277         * DataGridViewColumn.cs: Throw if the SortMode conflicts with DataGridView's
7278           SelectionMode.
7279
7280 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7281
7282         * ListView.cs: In ListViewItemsCollection check that owner is
7283         not null before trying to access it (this happens quite often
7284         using Groups). Also don't duplicate calls by calling CollectionChanged
7285         method.
7286
7287 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
7288
7289         * ToolStrip.cs: Record if we were activated by mouse or keyboard.  Redraw
7290         when we are dismissed to clear keyboard mnemonics.
7291         * MenuStrip.cs, ToolStripDropDown.cs, ToolStripItem.cs, 
7292         ToolStripMenuItem.cs: Record if we were activated by mouse or keyboard.
7293         * ToolStripItemTextRenderEventArgs.cs: Draw mnemonic underlines if menu
7294         was activated by keyboard or the OS tells us to always draw them.
7295         * ToolStripManager.cs: Setup storage for activated by mouse or keyboard.
7296         [Fixes bugs #82376, #82377]
7297
7298 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
7299
7300         * Control.cs: If no one accepts a mnemonic, let the MenuStrip have a 
7301         shot at having it because Alt was pressed.
7302         * MenuStrip.cs: When handling Alt, don't select a SystemMenuItem, select
7303         the first real menu item.
7304         * ToolStrip.cs: Don't crash when looking for a ToolStripItem to handle
7305         a mnemonic if Text is null.
7306         [Fixes bug #82374]
7307
7308 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7309
7310         * ListView.cs: In ListViewItemCollection.AddItem, don't do a linear
7311         search do check whether the item is already contained in the
7312         collection or not; instead check if the owner of the item is the same
7313         as ours. Also, remove a redundant check in the same method. 
7314
7315 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
7316
7317         * Control.cs: Allow the clip region to be set back to null.
7318         * XplatUIWin32.cs: If we are sent a null clip region, use IntPtr.Zero.
7319         [Fixes button still showing up in bug #82370 when Show Through is turned off]
7320
7321 2007-08-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7322
7323         * GridEntry.cs: Add a null check.
7324         * PropertyGrid.cs: When checking for existing grid entries, ignore category
7325           entries. Fixes #82297.
7326
7327 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
7328
7329         * OwnerDrawPropertyBag.cs: Make the serialization constructor protected
7330         for 2.0.
7331
7332 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
7333
7334         * ListBox.cs: Implement ScaleControl.
7335
7336 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7337
7338         * Form.cs: Add a few ActiveMenu null checks. ActiveMenu might be null if we
7339           have a menu strip.
7340         * MdiWindowManager.cs: Don't create a maximized menu if the child or it's
7341           parent has a menu strip. Fixes #81689.
7342
7343 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7344
7345         * ToolTip.cs: We don't get mouse events on all platforms in the exact same
7346           moments, so apply some fuzzy logic to determine if the mouse is still
7347           inside a control or not. Fixes #82288 (for the third time).
7348
7349 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7350
7351         * Control.cs: CreateControl: create implicit children as well. Fixes #82344.
7352           Don't create the child if it has been disposed already (may happen if
7353           the user closes the form the Load event).
7354
7355 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7356
7357         * ToolTip.cs: If ReshowDelay is 0, show the tooltip immediately. Fixes
7358           #82288.
7359
7360 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7361
7362         * Control.cs: Add a null check in OnParentBindingContextChanged. The parent
7363           might call us after we've been destroyed, in which case our own private
7364           parent field is null. Fixes #82326.
7365
7366 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
7367
7368         * ToolStripDropDown.cs: Fix a failing test on X11 by adding a null
7369         check for setting the dropdown's owner.
7370
7371 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
7372
7373         * MdiClient.cs: Fix some failing tests on X11 by adding a null check
7374         before removing system menu items.
7375
7376 2007-08-02  Jonathan Pobst  <monkey@jpobst.com>
7377
7378         * MdiClient.cs, MdiWindowManager.cs: Support 2.0 Mdi MenuStrip
7379         folding.
7380         * MdiControlStrip.cs: Added.  These are the menu items used in mdi
7381         folding.
7382         * ToolStrip.cs: Add a null check to mnemonics.
7383         * ToolStripDropDownMenu.cs: When using a SystemMenuItem, there is
7384         no ConnectedArea.
7385         [Fixes most of bug #81689]
7386
7387 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7388
7389         * PropertyGrid.cs: Add a null-check. Fixes #82289/SVGPad.
7390
7391 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7392
7393         Use InitialDelay if ReshowDelay is zero. Fixes #82288.
7394
7395 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7396
7397         * DataGridViewCell.cs: EditType: returns
7398           DataGridViewTextBoxEditingControl always.
7399
7400 2007-08-01  Jonathan Pobst  <monkey@jpobst.com>
7401
7402         * TextRenderer.cs: Remove the LineLimit string format flag from the
7403         DrawString fallback method so that things like buttons that aren't
7404         tall enough to draw a full line will still draw part of the text.
7405         [Fixes part of bug #82272]
7406
7407 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7408
7409         * DataGridView.cs: Implemented AutoResizeColumn(s).
7410         * DataGridViewCellStyle.cs: Added SetAlignment, fills in a StringFormat
7411           according to the Alignment.
7412         * DataGridViewColumnHeaderCell.cs, DataGridViewTextBoxCell.cs:
7413           Implement alignment and padding when painting.
7414         * DataGridViewRow.cs: SetValues: Don't create a cell if it already
7415           exists.
7416         * DataGridViewCell.cs: Implement BorderWidths in the most primitive
7417           way.
7418         * DataGridViewColumnCollection.cs: Raise OnColumnAdded on the DGV when
7419           a column is added.
7420
7421 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
7422
7423         * TextBoxBase.cs: Use Control.ExplicitBounds instead of explicit_bounds,
7424         which is internal.
7425
7426 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
7427
7428         * ToolStrip.cs: Stub out drag and drop methods, fix some corcompare stuff,
7429         hide GetPreferredSize from public API.
7430         * ToolStripDropDown.cs: Override AllowItemReorder, fix AccessibleObject.
7431         * ToolStripItem.cs: Stub out drag and drop methods and events.
7432         * ToolStripManager.cs: Stub out Save/LoadSettings.
7433         * ToolStripOverflow.cs: Use renamed ToolStrip.GetPreferredSize.
7434         * ToolStripPanel.cs: Fix corcompare error.
7435         * ToolStripPanelRow.cs: Use renamed ToolStrip.GetPreferredSize.
7436         * ToolStripSplitButton.cs: Fix AccessibleObject stuff.
7437         * ToolStripSplitStackLayout.cs: Use renamed ToolStrip.GetPreferredSize.
7438
7439 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
7440
7441         * TextBoxBase.cs: In our new GetPreferredSizeCore, return the explicit
7442         bounds height instead of PreferredHeight.  Puts things back the way 
7443         they were for height while still fixing the width.  Fixes broken unit
7444         tests.
7445
7446 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7447
7448         * Binding.cs: Implement 2.0 constructors and add a null check.
7449
7450 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7451
7452         * DataGridViewRowCollection.cs: Allow a null DGV in the constructor,
7453           and fix row index (off by one).
7454
7455 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7456
7457         * PropertyGridView.cs: Remove debug output.
7458
7459 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7460
7461         * Control.cs: We need to reset the is_created flags when the handle is
7462           destroyed. Fixes #82187.
7463         * XplatUIWin32.cs: In GetWindowRect don't offset screen coordinates to
7464           client coordinates if the window doesn't have a parent.
7465           Win32GetParent returns the parent or the owner, and for top-level
7466           windows with no parent (but with an owner) we were calculating the
7467           location from the location of the owner.
7468         * Form.cs: Remove incorrect fix for #82187. Don't raise OnLoad if the
7469           form has been disposed.
7470         * MdiClient.cs: Add a null-check.
7471
7472 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
7473
7474         * TextBoxBase.cs: TextBoxBase reports itself at AutoSize, but doesn't
7475         actually do auto-sizing.  Override the internal GetPreferredSizeCore 
7476         so we can provide an implementation that returns the current width
7477         and preferred height.  Allows anchor = right to work with TextBox 2.0.
7478         [Fixes bug #82233]
7479
7480 2007-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7481
7482         * ListView.cs: Add support for navigating items in Groups mode, by
7483         creating a big matrix containing all rows and cols of all groups. When
7484         are in other mode than Details, pressing Up should have a similar
7485         behaviour as that one of Down (moving to the next available column if
7486         current one doesn't have an item in the requested row). Also, don't
7487         proceed to use groups if ShowGroups is false.
7488         * ListViewGroup.cs: Add an internal int field to store the starting
7489         row of the group (used by the big matrix used for navigating the
7490         ListView).
7491         * ThemeWin32Classic.cs: Don't draw headers if ListView.ShowGroups is
7492         false.
7493
7494 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
7495
7496         * ToolStripDropDown.cs: When we do Show, start with the 
7497         DefaultDropDownDirection, but if our popup menu is going to off-screen,
7498         modify the direction to keep it on screen.  [Fixes bug #82210]
7499
7500 2007-07-29  Gert Driesen  <drieseng@users.sourceforge.net>
7501
7502         * FileDialog.cs: Accept any FilterIndex value, and store it
7503         unmodified. When FilterIndex is less than 1, or greater than number
7504         of filters, then default to first filter. Only add filter extension to
7505         file if user did not specifiy an extension. When type of dialog is
7506         OpenFileDialog and DefaultExt is set, then only use filter extension
7507         if: CheckFileExists is true and no file wih the default extension
7508         exists, or CheckFileExists is false, and user specified file does not
7509         exist. When CheckFileExists is true, then add first extension of 
7510         selected filter that matches existing file. Perform checks for
7511         existing file, overwrite and create after extension has been added to
7512         file name. When CheckFileExists is true and type is SaveFileDialog,
7513         then only consider first filter extension if DefaultExt is set.
7514         When CheckFileExists is true, then ignore DefaultExt if file with that
7515         extension does not exist. Also perform check for existing file when
7516         type is SaveFileDialog. Changed some field to constants.
7517
7518 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7519
7520         * ListView.cs: Take into account the region used by header
7521         control when doing the vertical scroll (this way we invalidate
7522         the precise area, and don't get any dirty one).
7523
7524 2007-07-27  Everaldo Canuto  <ecanuto@novell.com>
7525
7526         * FileDialog.cs: Check for valid filterIndex on button open/save. 
7527         Fixes #82184.
7528
7529 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7530
7531         * ListView.cs: Update some layout calculations in details view
7532         and clean the code in a pair of assignations.
7533
7534 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
7535
7536         * ComboBox.cs, ContainerControl.cs, DataGrid.cs, FontDialog.cs, Label.cs,
7537         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewItem.cs, MessageBox.cs,
7538         MonthCalender.cs, StatusBar.cs, ThemeClearlooks.cs, ThemeWin32Class.cs,
7539         ToolBar.cs, TreeView.cs: First pass at using thread-safe string measuring.
7540
7541 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
7542
7543         * TextRenderer.cs: Use [ThreadStatic] instead of locks to improve
7544         performance of thread-safe Graphic methods.  (Thanks rolf!)
7545
7546 2007-07-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7547
7548         * ListView.cs: When doing the layout calculations, don't calculate
7549         scroll bars before handle is created. This is unnecessary and also
7550         calculating them before handle creation item causes a number of random
7551         bugs (which begin to appear after Chris' big patch for handle creation
7552         fixes). 
7553
7554 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
7555
7556         * TextRenderer.cs: Create thread-safe versions of Graphics.MeasureString
7557         for things that don't have a Graphics object.  Currently, things just use
7558         the static Hwnd.bmp_g which is not thread safe.
7559
7560 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7561
7562         * Form.cs: ShowDialog: don't destroy handles if the dialog is a common
7563           dialog. Fixes #82187.
7564
7565 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7566
7567         * DataGridViewElement.cs: Initialize state.
7568         * DataGridView.cs: Forward a few Mouse events to cells. Add
7569           GetRowInternal and GetCellInternal that doesn't unshare rows.
7570           Implement GetCellDisplayRectangle. HitTest: if the row is shared,
7571           don't use the index, but look it up. Add
7572           DataGridViewControlCollection.RemoveInternal to remove controls
7573           that Remove won't remove (scrollbars, edit control).
7574         * DataGridViewColumn.cs: Initialize State correctly.
7575         * DataGridViewColumnHeaderCell.cs, DataGridViewComboBoxCell.cs,
7576           DataGridViewHeaderCell.cs, DataGridViewRowHeaderCell.cs: Started
7577           implementing this.
7578         * DataGridViewRowCollection.cs: Implemented shared rows.
7579         * DataGridViewRow.cs: Throw exceptions as MS do.
7580         * DataGridViewCell.cs: A few properties are implemented by a
7581           Get<Property> method, so move implementation there and remove the
7582           NIEX in the method. Add a bunch of OnXInternal that DataGridView
7583           calls when necessary.
7584         * DataGridViewComboBoxEditingControl.cs: Remove a few NIEX'es that just
7585           complicates matters.
7586         * DataGridViewCellCollection.cs: Add a GetCellInternal that doesn't
7587           unshare any rows.
7588
7589 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
7590
7591         * UpDownBase.cs: We cannot override SetBoundsCore for 2.0, which was relayout-ing
7592         the children controls.  Instead, we will just set up the proper docking for the
7593         children controls so we don't have to worry about it.  [Fixes bug #82188]
7594
7595 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
7596
7597         * TreeView.cs, NodeLabelEditEventArgs.cs, LabelEditTextBox.cs: Support edit
7598         canceling and correct Before/AfterLabelEdit properties as layed out in bug
7599         81847.  [Fixes bug #81847]
7600
7601 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
7602
7603         * Label.cs: If AutoSize = true and a width or height is set, ignore it and
7604         redo the autosize.  VS2005 defaults to setting the AutoSize, and then setting
7605         an explicit size based on the design-time size of the text.  Since our fonts
7606         may not match this explicit size, we tend to cut off the ends of people's labels.
7607
7608 2007-07-24  Jonathan Pobst  <monkey@jpobst.com>
7609
7610         * Menu.cs: Add some missing methods to MenuItemCollection.
7611
7612 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7613
7614         * DataGridView.cs: Added RowTemplateFull, creates a row from the templates in the columns.
7615         * DataGridViewBand.cs: DefaultHeaderCellType: initialize correctly. Resizable: if not set, check DGV.
7616         * DataGridViewColumn.cs: InheritedAutoSizeMode: if not set, check DGV. Resizable: delegate to base class. ToolTipText: Never return null. Initialize a few other properties correctly.
7617         * DataGridViewColumnCollection.cs: Add: Default column is a TextBoxColumn.
7618         * DataGridViewComboBoxCell.cs: Started implementing this, lots left still.
7619         * DataGridViewElement.cs: State defaults to Visible.
7620         * DataGridViewRowCollection.cs: Add: creates the new row based on a template.
7621         * DataGridViewTextBoxColumn.cs: SortMode: delegate to base class, but initialize to Automatic. ToString: implement correctly.
7622
7623 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7624
7625         * Control.cs: Minor 1.1 corcompare fix.
7626
7627 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
7628
7629         * LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
7630         TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
7631
7632 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7633
7634         * DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,
7635           DataGridViewImageColumn.cs, DataGridViewSelectedCellCollection.cs,
7636           DataGridViewComboBoxCell.cs, DataGridViewLinkCell.cs,
7637           DataGridViewSelectedColumnCollection.cs,
7638           DataGridViewSelectedRowCollection.cs: Corcompare work.
7639
7640 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
7641
7642         * PrintDialog.cs: Stub UseEXDialog.  I chose to stub this because
7643         it is autoset by VS2005 designer and the effect is barely noticeable.
7644
7645 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
7646
7647         * TreeView.cs: Implement HitTest.
7648
7649 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7650
7651         * DataGridViewTextBoxCell.cs: Use DGV.EditControlInternal instead of
7652           manually adding and removing the control from the Controls
7653           collecftion.
7654         * DataGridView.cs: Implement DataGridViewControlCollection. Add an
7655           EditingControlInternal property that tracks the editing control.
7656           Always keeping the scrollbars in the Controls collection, as MS
7657           testing confirms is the right behaviour.
7658
7659 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7660
7661         * ScrollableControl.cs: Fix implementation of AutoScrollPosition
7662           according to MSDN and new test.
7663
7664 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
7665
7666         * TreeNode.cs: Implement ToolTipText.
7667         * TreeView.cs: Implement tooltips, NodeMouse* events.
7668
7669 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
7670
7671         * TreeView.cs: Implement OnNodeMouseClick and OnNodeMouseDoubleClick.
7672
7673 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
7674
7675         * TreeNode.cs: Implement ContextMenu, ContextMenuStrip, and Level.
7676         * TreeView.cs: Use the node's contextmenu[strip] if applicable.
7677
7678 2007-07-20  Ivan N. Zlatev  <contact@i-nz.net>
7679
7680         * Control.cs, Form.cs, ContainerControl.cs,
7681         ScrollableControl.cs, ButtonBase.cs:  Added ShouldSerialize
7682         for misc properties.
7683
7684 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
7685
7686         * TreeNode.cs: Implement StateImageIndex and StateImageKey.
7687         * TreeView.cs: Implement StateImageList.
7688
7689 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7690
7691         * Form.cs: Don't check if the current form is the active form before
7692           activating it. Fixes #81904.
7693
7694 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7695
7696         * Form.cs: Don't check if the current form is the active form before
7697           activating it. Fixes #81904.
7698
7699 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7700
7701         * TreeView.cs: Apply patch from Tyron (tmm@aon.at). Fixes #81847.
7702
7703 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7704
7705         * Form.cs: Don't try to position the form after loading if the form was
7706           disposed. Fixes #81969.
7707
7708 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7709
7710         * PropertyGrid.cs, PropertyGridView.cs: Implemented 2.0 methods and
7711           properties. Had to change ToolBar into ToolStrip, which required a
7712           few #ifs.
7713
7714 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7715
7716         * PropertyGrid.cs: PropertyToolBar: Redraw the entire toolbar when it's
7717           resized, fixes part of #79829 (vertical lines in toolbar).
7718           PropertyGrid: Refactored Populate* to something that's easier to
7719           follow at least for me, as well as splitting it up into several new
7720           methods, required to update only subitems when something has
7721           changed by a popup editor or listbox. Don't use events to check
7722           when any values are changed, since the events are unreliable (we're
7723           changing the objects the events are registered with, and if the
7724           event handling requires the objects to be immutable (objects stored
7725           in hashtables for instance), the events will never be raised).
7726         * PropertyGridView.cs: Call PropertyGrid.PropertyValueChangedInternal
7727           everytime we change a value, since events are unreliable.
7728           DropDownButtonClicked: For the same reason don't compare objects to
7729           check if it has changed or not, it would require all objects to
7730           derive Equals. Fix dialog location on windows, MS is doing weird
7731           things when creating parented forms.
7732         * GridEntry.cs: Add a SelectedObject setter.
7733
7734 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
7735
7736         * TreeNode.cs: Add some corcompare attributes.
7737         * TreeNodeCollection.cs: Implement 2.0 stuffs.
7738         * TreeView.cs: Implement some 2.0 stuffs.
7739
7740 2007-07-18  Andreia Gaita  <avidigal@novell.com>
7741
7742         * WebBrowser.cs, WebBrowserBase.cs: add some more MonoTODOs now
7743         for moma.
7744
7745 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
7746
7747         * ListBox.cs: Implement custom tab offsets.
7748
7749 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
7750
7751         * ToolStripContentPanel.cs: Support System renderer.
7752         * ToolStripControlHost.cs: Set RightToLeft to default to No.
7753
7754 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
7755
7756         * ScrollableControl.cs: Don't mess up the user's explicit bounds.
7757
7758 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
7759
7760         * CheckBox.cs: Chain TextAlign to base implementation instead of
7761         maintaining another one.
7762
7763 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
7764
7765         * ButtonBase.cs: Fix an incorrect string constant.
7766
7767 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
7768
7769         * TextRenderer.cs: Use the static Graphics context in Hwnd instead
7770         of creating one for measuring strings.
7771
7772 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
7773
7774         * ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownMenu.cs: 
7775         Implement MaxItemSize.
7776
7777 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
7778
7779         * Control.cs: Remove per-control 1x1 Bitmap and Graphics context used
7780         for DeviceContext.  Instead, use the static one available in Hwnd.
7781         Informal tests show this saves about 500k on formtest.exe.
7782
7783 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
7784
7785         * ContainerControl.cs: Implement 2.0 AutoScaling.
7786
7787 2007-07-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7788
7789         * ComboBox.cs: Work around bug #82120 (bug in mcs).
7790
7791 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
7792
7793         * ThemeWin32Classic.cs: Allow a Flat button to be Focused and Entered.
7794         Darken the focus color.
7795
7796 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
7797
7798         * ListBox.cs: When measuring items, if it's a CheckedListBox, add room
7799         for the checkbox.
7800         * ThemeWin32Classic.cs: Make the checkbox bigger in a CheckedListBox and use
7801         X, Y instead of a rect for drawing text.
7802         - For ControlPaint.DrawCheckBox, center the check a little better when the
7803         checkbox is odd width.  When drawing a flat checkbox, use a white background
7804         when state != inactive.
7805         [Fixes bugs #82097, 82100]
7806
7807 2007-07-16  Gert Driesen  <drieseng@users.sourceforge.net>
7808
7809         * ListControl.cs: When changing CurrencyManager, disconnect event
7810         handlers from previous one. Fixes bug #81771. Code formatting.
7811
7812 2007-07-15  Andreia Gaita <avidigal@novell.com>
7813
7814         * PrintPreviewControl.cs: Remove extraneous Invalidate calls. Separate
7815         full preview invalidation from layout invalidation, and only invalidate
7816         the layout when setting zoom or other properties. Invalidation should
7817         always be done even when resetting properties with the same values as
7818         what is there. Fixes #81744 and #79830.
7819
7820 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7821
7822         * ListView.cs: Implement initial support for Groups. Split some of the
7823         LayoutIcons code to render a partial list of the items (needed by
7824         items contained in ListViewGroup instances). Let the
7825         ListViewItemsCollection.ListView property be modifiable (needed when
7826         using Groups, too).
7827         * ListViewGroup.cs: Use a Bounds property rather than a Location
7828         one. Also invalidate the bounds when they get changed.
7829         * ThemeWin32Classic.cs: When drawing items, also draw the group header
7830         if ListView.Groups.Count is bigger than 0. Add a DrawListViewGroupHeader
7831         method as well.
7832
7833 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7834
7835         * ListView.cs: When space gets pressed and CheckBoxes is true, 
7836         don't invoke the Begin and EndUpdate methods. We are generating 
7837         a redraw of the entire control without need to do so.
7838
7839 2007-07-13  William Holmes <billholmes54@gmail.com> 
7840
7841         * Control.cs: Changing logic in FindFlatForward and 
7842           FindFlatBackward to handle multiple Controls with 
7843           the same TabIndex.  
7844           This fixes bug 81687.
7845
7846 2007-07-13  Jonathan Pobst  <monkey@jpobst.com>
7847
7848         * OSFeature.cs: Enable IsPresent.
7849
7850 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7851
7852         * Control.cs: Don't do anything in WmShowWindow if the control has been
7853           disposed. We can get WM_SHOWWINDOW after a control is disposed: a
7854           control is created, put on a form, the control is disposed (the
7855           form is never shown), and then we get a MapNotify, triggering a
7856           WM_SHOWWINDOW.
7857         * Form.cs: Exclude the current form when sending Deactivate to all
7858           MdiChildren.
7859         * NativeWindow.cs: Set WindowCreating to null as soon as possible,
7860           there was a race condition because assigning the handle raises
7861           events, we can get more messages, therefore trying to assign the
7862           handle again, which would fail if any of those event handlers
7863           closed/disposed the control.
7864
7865 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7866
7867         * Form.cs: Make the fix for #80775 windows-only (fixes #81957).
7868
7869 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
7870
7871         * SystemInformation.cs, Theme.cs, XplatUI.cs, XplatUIDriver.cs,
7872         XplatUIWin32.cs: Implement SystemInformation 2.0 properties.
7873
7874 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7875
7876         * DateTimePicker.cs: If there's no part format specifier, return an
7877           empty string.
7878
7879 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
7880
7881         * FlatButtonAppearance.cs: Throw NotSupportedException for a
7882         Transparent BorderColor.
7883
7884 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7885
7886         * DataGridView.cs, TextControl.cs, ProgressBar.cs, PrintDialog.cs,
7887           MessageBox.cs, ButtonBase.cs, PageSetupDialog.cs, NumericUpDown.cs,
7888           X11Dnd.cs, Binding.cs, DataGrid.cs, AxHost.cs,
7889           LinkLabelLinkClickedEventArgs.cs, TextRenderer.cs, Label.cs,
7890           LinkLabel.cs, TreeNode.cs, BindingSource.cs, TabPage.cs,
7891           TextBoxBase.cs, BindingNavigator.cs, Application.cs,
7892           ToolStripPanel.cs, TabControl.cs, ThemeClearlooks.cs, TreeView.cs:
7893           Remove warnings.
7894         * X11Structs.cs: Remove warnings, add ToString implementations.
7895
7896 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7897
7898         * XplatUIX11.cs: Translate min/max size according to the actual min/max
7899           size, and not the current size. Fixes #81798.
7900
7901 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7902
7903         * XplatUIX11.cs: Fix #80822 again (DefWndProc can be reached before
7904           XplatUI.CreateWindow returns, in which case the hwnd isn't assigned
7905           to the control yet).
7906
7907 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7908
7909         * PropertyGridTextBox.cs: Add a method that sends any forwarded
7910           mousedowns to the contained textbox.
7911         * X11Structs.cs: More ToString implementation.
7912         * PropertyGridView.cs: Forward any mousedowns to the textbox, fixes
7913           #81791.
7914
7915 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7916
7917         * PropertyGridView.cs: Add a null-check, fixes a few tests.
7918
7919 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
7920
7921         * TableLayoutPanelCellPosition.cs: TypeConverter.
7922
7923 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7924
7925         [ Fixes #79761]
7926         
7927         * PropertyGridTextBox.cs: Propagate any color changes to all contained
7928           controls.
7929         * PropertyGridView.cs: A few color fixes.
7930
7931 2007-07-10  Jackson Harper  <jackson@ximian.com>
7932
7933         * TextControl.cs: Remove some old unused text formatting stuff.
7934
7935 2007-07-10  Jackson Harper  <jackson@ximian.com>
7936
7937         * TreeView.cs: Update full row select invalidation to match the
7938         newer DrawSelection... method.
7939         - Make sure to invalidate the entire width when selecting a new
7940         node, if we have full row selection enabled.
7941
7942 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7943
7944         * PropertyGridView.cs: Fix for #81800, makes text show up on initial
7945           display of properties again.
7946
7947 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
7948
7949         * ListBox.cs: Add IntegerCollection and Add, Clear, Remove
7950         to existing collections.
7951
7952 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7953
7954         * AccessibleObject.cs, RadioButton.cs: Fix some base classes
7955         that changed between 1.1 and 2.0.
7956
7957 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7958
7959         * PowerStatus.cs: Added.  This is just a data class, it is filled
7960         in by SystemInformation.
7961
7962 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7963
7964         * Message.cs: Add op_Equality and op_Inequality.
7965
7966 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7967
7968         * MenuStrip.cs: Finish corcompare work.
7969
7970 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7971
7972         * LinkArea.cs: Add op_Equality and op_Inequality.
7973
7974 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7975
7976         * Application.cs: Add MessageLoopCallback delegate.
7977
7978 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7979
7980         * ListBox.cs: First set of 2.0 stuffs.
7981
7982 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
7983
7984         * Control.cs: Make an internal Height property we can override
7985         without messing up the public API.
7986         * ListBox.cs: Override HeightInternal to always return the size
7987         the user set.  [Fixes bug #80466]
7988
7989 2007-07-08  Jonathan Pobst  <monkey@jpobst.com>
7990
7991         * TableLayoutPanel.cs: Add a null check so we don't NRE trying to
7992         paint cell borders if we haven't calculated where they go yet.
7993         [Fixes bugs #82040 and #82041]
7994
7995 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7996
7997         * ListView.cs: In Details view, set the location of item_control
7998         in the (0,0) position (and the header_control is thus on the
7999         item_control). This way the Bounds of the Items are relative to the
8000         ListView control (before this, they had a Bounds value without the
8001         header_control offset, which wasn't matching .Net). Fixes #82004.
8002
8003 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8004
8005         * ListControl.cs: When DataSource is set to null, pass an empty
8006         array of object to SetItemsCore. This is done to clean the items
8007         in the ListContol children. Fixes #81788.
8008
8009 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
8010
8011         * ListControl.cs: Add 2.0 stuffs.
8012
8013 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
8014
8015         * Label.cs: Finish up 2.0 stuffs.  Replace calls to Refresh with Invalidate,
8016         Refresh is overkill for just about every repaint request.
8017
8018 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
8019
8020         * ToolStripItem.cs: TextDirection getter handles looking up Inherit for us,
8021         so remove my custom Get method and fix the property getter.
8022
8023 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
8024
8025         * Label.cs: DefaultMargin for 2.0.
8026
8027 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
8028
8029         * ComboBox.cs: Override IsInputCharInternal and return true.  Fixes 
8030         reported issue where other controls with mnemonics would steal strokes
8031         from a selected ComboBox.
8032
8033 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
8034
8035         * ScrollOrientation.cs: Make internal for 1.1.
8036         * ScrollEventArgs.cs: Add 2.0 stuffs.
8037
8038 2007-07-05  Jonathan Pobst  <monkey@jpobst.com>
8039
8040         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
8041         ToolStripItem.cs, ToolStripItem.cs, ToolStripItemTextRenderEventArgs.cs,
8042         ToolStripRenderer.cs, ToolStripSeparator.cs: Implement TextDirection.
8043
8044 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8045
8046         * ListViewItem.cs: Implement the small 2.0 GetSubItemAt method.
8047
8048 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8049
8050         * ListView.cs: Implement the so-incredibly broken 2.0 
8051         VirtualItemsSelectionRangeChanged event.
8052
8053 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8054
8055         * ListView.cs: When enter is pressed and selection is non empty,
8056         an OnItemActivate event must be fired.
8057
8058 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8059
8060         * ListView.cs: Store the FocusedItem information as an
8061         int instead of a ListViewItem (needed by VirtualMode).
8062         Update the calls to SetFocusedItem to pass an index instead of
8063         an item.
8064         * ListViewItem.cs: Likewise. Also, in VirtualMode retrieve
8065         the Focused state from the owner ListView. 
8066
8067 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8068
8069         * ListView.cs: Set ListView.focused_item from ListViewItem.Focused
8070         property. Also, invalidate previous focused item in the mentioned
8071         property (match .Net).
8072
8073 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8074
8075         * ListView.cs: Implement 2.0 FocusedItem property setter.
8076
8077 2007-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8078
8079         * ListView.cs: Implement 2.0 TopItem property setter.
8080
8081 2007-07-03  Jonathan Pobst  <monkey@jpobst.com>
8082
8083         * StatusStrip.cs: The default renderer is System.
8084         * ToolStrip.cs, ToolStripManager: Now that we have System renderer, use it 
8085         if the user specifies it.
8086         * ToolStripDropDown.cs: Don't reset our Renderer on changing OwnerItem
8087         if we are ManagerRenderMode.
8088         * ToolStripMenuItem.cs: Calculate our text color better.
8089         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Move some stuff
8090         from Professional to the base class based off working with the System renderer.
8091         * ToolStripSystemRenderer.cs: Added.
8092
8093 2007-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8094
8095         * ListView.cs: I'm so lame - the real name is HitTest, not HitInfo.
8096
8097 2007-07-02  Jonathan Pobst  <monkey@jpobst.com>
8098
8099         * ToolTip.cs: Implement 2.0 Tag property.
8100
8101 2007-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8102
8103         * ListView.cs: Implement 2.0 HitTest methods.
8104
8105 2007-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8106
8107         * ListViewItem.cs: Add a 2.0 bool Hot property, to tell whether the
8108         item is under the pointer or not (sugar). Also remove the TODO
8109         regarding to the cursor changes in OneClick activation.
8110         * ThemeWin32Classic.cs: When HotTracking is true and we are drawing
8111         the subitems use the parent's HotFont if UseItemStyleForSubItems is
8112         true; otherwise don't show the underline style.
8113
8114 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8115
8116         * ListView.cs: In ItemControl.ItemsMouseMove, refactor
8117         the code to retrieve the item at position only one time. Also
8118         change cursor when Activation is ItemActivation.OneClick as well
8119         as invalidate the item if HotTracking is true (to show/hide the
8120         underline style). Add an internal HotItemIndex property to retrieve
8121         the current hot item's index.
8122         * ListViewItem.cs: Add an internal HotFont property to cache the
8123         font used when HotTracking is true and the pointer moves within the
8124         item's borders.
8125         * ThemeWin32Classic.cs: When drawing the item's text, use Font or
8126         HotFont depending on the hot state of the item.
8127
8128 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8129
8130         * ListView.cs: Implement 2.0 HotTracking property.
8131
8132 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
8133
8134         * ToolStripControlHost.cs: If our hosted control never got created,
8135         don't try to dispose it.  [Fixes bug #81909]
8136
8137 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
8138
8139         * TableLayoutPanel.cs: Implement ScaleCore, ScaleControl.
8140
8141 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
8142
8143         * TableLayoutPanel.cs: Implement CellBorderStyle.  [Fixes bug #81884]
8144
8145 2007-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8146
8147         * ThemeWin32Classic.cs: In OwnerDraw mode draw subitems only for 
8148         Details view.
8149         * DrawListViewColumnHeaderEventArgs.cs:
8150         * DrawListViewSubItemEventArgs.cs: Add padding to the bounds when drawing text
8151         using the DrawText () methods.
8152
8153 2007-06-19  Jonathan Pobst  <monkey@jpobst.com>
8154
8155         * ToolStripProfessionalRenderer.cs: Put back clearing a ToolStripDropDown's
8156         background which got erased in my changes yesterday.
8157
8158 2007-06-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8159
8160         * ListViewItem.cs: Actually set bounds for subitems in Details view
8161         (2.0 feature).
8162         * ThemeWin32Classic.cs: Refactor the drawing code for subitems, so we
8163         can invoke from the owner draw routines if we need it. Also, add
8164         support for Owner draw in Details view.
8165
8166 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
8167
8168         * ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripLabel.cs,
8169         ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs: Respect the
8170         ShowImageMargin setting, properly align text in a ToolStripLabel
8171         hosted on a ToolStripDropDown.
8172
8173 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
8174
8175         * ToolStrip.cs, ToolStripContentPanel.cs, ToolStripDropDownMenu.cs,
8176         ToolStripProfessionalRenderer.cs: Refactor and clean up some rendering code.
8177
8178 2007-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8179
8180         * DrawListViewSubItemEventArgs.cs: Actually implement its methods.
8181
8182 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
8183
8184         * ToolStripLabel.cs: If the label is on a dropdown, adjust the text
8185         location to match ToolStripMenuItems.
8186
8187 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8188
8189         * DrawListViewColumnHeaderEventArgs.cs:
8190         * ThemeWin32Classic.cs: Implement 2.0 OwnerDraw support for
8191         column headers in ListView. 
8192
8193 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
8194
8195         * UserControl.cs: Implement AutoSize.
8196
8197 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8198
8199         * DrawListViewItemEventArgs.cs:
8200         * ListView.cs:
8201         * ThemeWin32Classic.cs: Implement basic support for 2.0 OwnerDraw in
8202         ListView.
8203
8204 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
8205
8206         * ToolStripDropDownItemAccessibleObject.cs: Added.
8207         * ToolStripDropDownItem.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
8208         ToolStripOverflow.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
8209         ToolStripProgressBar.cs, ToolStripSeparator.cs, ToolStripSplitButton.cs,
8210         ToolStripTextBox.cs: corcompare work.
8211
8212 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
8213
8214         * OSFeature.cs, StatusStrip.cs, TabControl.cs, TableLayoutSettings.cs,
8215         TableLayoutStyle.cs, TableLayoutCollection.cs, ToolStripContentPanel.cs,
8216         ToolStripControlHost.cs, ToolStripDropDown.cs, ToolStripDropDownButton.cs:
8217                 corcompare.
8218
8219 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
8220
8221         * OSFeature.cs: Add IsPresent.
8222         * PrintPreviewControl.cs: Add RightToLeft.
8223         * SplitContainer.cs: Add AutoScrollOffset, ScaleControl.
8224         * SplitterPanel.cs: Add AutoSizeMode.
8225
8226 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
8227
8228         * LayoutEventArgs.cs: Add 2.0 AffectedComponent.
8229         * MdiClient.cs: Add 2.0 ScaleControl.
8230         * NativeWindow.cs: Implement 2.0 interface IWin32Window.
8231         * NumericUpDownAccelerationCollection.cs: Add [ListBinding].
8232
8233 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
8234
8235         * Form.cs: Implement some scaling methods, stub some RTL methods,
8236         corcompare work.
8237
8238 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
8239
8240         * Control.cs: corcompare work.
8241         * FlatButtonAppearance.cs, FolderBrowserDialog.cs: Add TypeConverters.
8242
8243 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
8244
8245         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Implement
8246         ControlPaint 2.0 stuffs.
8247
8248 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8249
8250         * ThreadExceptionDialog.cs: Add 2.0 stuffs.
8251
8252 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8253
8254         * UpDownBase.cs: Add 2.0 stuffs.
8255
8256 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8257
8258         * NumericUpDown.cs: Add 2.0 stuffs.
8259
8260 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8261
8262         * NotfiyIcon.cs: Add MouseDoubleClick event, hook up MouseClick event.
8263
8264 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8265
8266         * ErrorProvider.cs: Implement 2.0 stuffs.
8267
8268 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8269
8270         * DomainUpDown.cs: Implement 2.0 stuffs.
8271
8272 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8273
8274         * CheckedListBox.cs: Fix RefreshItems signature.
8275
8276 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
8277
8278         * PictureBox.cs: Implement 2.0 stuffs.
8279
8280 2007-06-12  Andreia Gaita  <avidigal@novell.com>
8281         
8282         * TabControl.cs: Check if there are tabpages before checking
8283         the selected index - fix #81802 (font changes raise a ResizeTabs
8284         call on controls.add, which blew up nicely with no tabpages)
8285
8286 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8287
8288         * ListView.cs:
8289         * ListViewItem.cs: Implement 2.0 ItemSelectionChanged event.
8290
8291 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8292
8293         * ListView.cs:
8294         * ListViewItem.cs: In VirtualMode the selection information
8295         resides in the ListView, rather than in the Items. Also, throw
8296         InvalidOperationExceptions when VirtualMode is being used and
8297         CheckedItemCollection is accessed.
8298
8299 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
8300
8301         * ComboBox.cs: Add ScaleControl.
8302
8303 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
8304
8305         * ButtonBase.cs: ButtonBaseAccessibleObject.State should not be visible to 1.1.
8306
8307 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
8308
8309         * GroupBox.cs: Add 2.0 stuffs.
8310
8311 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
8312
8313         * Panel.cs: Add autosize properties/event.
8314
8315 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
8316
8317         * Control.cs:
8318         - When we remove a control, remove it from the collection before performing the layout.
8319         - Setup an internal property for explicit_bounds.
8320         - Don't let the UpdateBounds in CreateHandle overwrite our explicit bounds.
8321         - Perform a layout when we set a new AutoSizeMode.
8322
8323 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
8324
8325         * ScrollableControl.cs: Add 2.0 stuffs.
8326
8327 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
8328
8329         * ScrollBar.cs: Add 2.0 stuffs.
8330
8331 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
8332
8333         * Splitter.cs: Add 2.0 stuffs.
8334
8335 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
8336
8337         * SplitContainer.cs: Apply patch from Neil Cawse <neilcawse@geotab.com>
8338         to have BindingContext simply use base implementation.
8339
8340 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
8341
8342         * ColumnHeader.cs: corcompare fix.
8343
8344 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
8345
8346         * Button.cs: corcompare fixes.
8347         * ButtonBase.cs: corcompare fixes, add ButtonBaseAccessibleObject.State.
8348
8349 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
8350
8351         * Button.cs: Override GetPreferredSizeCore.
8352         * ButtonBase.cs: PerformLayout after changing properties that can affect
8353         AutoSize.  Simplify some mouse/keyboard code.
8354         * Control.cs: PerformLayout after changing Padding if AutoSize = true.
8355         * MouseEventArgs.cs: Make Location internal for 1.1.
8356         * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool) internal for 1.1.
8357         * Theme.cs: Add CalculateButtonAutoSize.
8358         * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
8359
8360 2007-06-05  Miguel de Icaza  <miguel@novell.com>
8361
8362         * TreeNodeCollection.cs: Applied patch from Neil Cawse <neilcawse@geotab.com>
8363
8364 2007-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8365
8366         * ListViewItem.cs: We can't cache Bounds in VirtualMode 
8367         since we can get different item instances every time we retrieve it.
8368
8369 2007-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8370
8371         * ListView.cs: Work around for #81602, since an unkown an pretty
8372         infrequent condition appears only in some systems (old linux boxes, it
8373         seems).
8374
8375 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
8376
8377         * Button.cs: Completely reformat and a little refactor to bring
8378         this closer to Mono circa 2007.
8379
8380 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
8381
8382         * CheckBox.cs, Form.cs, RadioButton.cs: Change call to ButtonBase.Redraw
8383         to be ButtonBase.Invalidate.
8384
8385 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
8386
8387         * ButtonBase.cs: GetPreferredSize is 2.0 only.  Fixes build.
8388
8389 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
8390
8391         * ButtonBase.cs: Completely reformat and a little refactor to bring
8392         this closer to Mono circa 2007.
8393
8394 2007-06-01  Everaldo Canuto  <ecanuto@novell.com>
8395
8396         * Label.cs: Fixes preferred sizes for 2.0 profile, also adjust some
8397         values for autosize. Fixes #80137.
8398
8399 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
8400
8401         * Control.cs: Don't perform layout when AutoSize changes.
8402         * Form.cs: Perform layout in AutoSize override.  Don't set ClientSize
8403         directly when autosizing, use SetBounds with BoundsSpecified.None.
8404         Fixes unit tests my last commit broke.
8405
8406 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
8407
8408         * Control.cs: Perform layout when AutoSize changes.
8409         * Form.cs: Implement AutoSizing.
8410
8411 2007-06-01  Chris Toshok  <toshok@ximian.com>
8412
8413         * DataGrid.cs: remove the XXX'ed check at the top of
8414         ProcessGridKey.  fixes #80464.
8415
8416 2007-06-01  Chris Toshok  <toshok@ximian.com>
8417
8418         * DataGridTextBoxColumn.cs: TextBox.TextChanged event handler
8419         adding idempotent (add/remove in Edit()), and also make sure we
8420         don't add it until after we set the text, so it's not tripped in
8421         Edit().  Fixes unit test regression.
8422
8423 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
8424
8425         * Control.cs: In UpdateBounds, only recalculate anchor distances if the
8426         change is user explicit, not when the layout engine moves stuff.  Fixes
8427         anchoring to bottom and right.  [Fixes bug #81790]
8428
8429 2007-06-01  Andreia Gaita  <avidigal@novell.com>
8430
8431         * PrintDialog.cs: Add collation preview thumbnails. Fixes #80726.
8432
8433 2007-06-01  Andreia Gaita  <avidigal@novell.com>
8434
8435         * ContainerControl.cs: 
8436         Fire enter event for common ancestor if it is not a ContainerControl.
8437         Send focus to the active_control and not the 'value', the active 
8438         control might have been changed in one of the events fired.     
8439         Definitely fixes #80159.
8440
8441 2007-06-01  Andreia Gaita  <avidigal@novell.com>
8442
8443         * DataGrid.cs: Finish editing when focus leave the datagrid. Fixes #80159.
8444
8445 2007-06-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8446
8447         * PropertyGrid.cs: Anchor the help description to the bottom of the
8448           help panel and refactor SelectGridItem into a
8449           SelectGridItemInternal that can be set to null (and update it to
8450           clear the help texts when it is set to null). Set root item to null
8451           when there's no SelectedObject. Fixes #80438.
8452         * ScrollableControl.cs: In Recalculate we need to ResumeLayout(true)
8453           when we're recalculating after a resize (only).
8454
8455 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8456
8457         * ListView.cs: Implement 2.0 RedrawItems method.
8458
8459 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8460
8461         * ListControl.cs: Disconnect PositionChanged and ItemChanged
8462         handlers from previous data manager when DataSource is set to
8463         null. Fixes #81771.
8464
8465 2007-05-31  Jackson Harper  <jackson@ximian.com>
8466
8467         * TextBoxBase.cs: These seem to be the correct values.
8468
8469 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
8470
8471         * FileDialog.cs: When close dialog with ok set filterindex using combobox
8472         value. Fixes #81784.
8473
8474 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
8475
8476         * Control.cs: Implement 2.0 scaling methods.
8477
8478 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8479
8480         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
8481           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
8482           corcompare issues.
8483
8484 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8485
8486         * ProgressBar.cs: Implemented missing 2.0 members.
8487
8488 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8489
8490         * Control.cs: Corcompare issues.
8491         * MessageBox.cs: Implemented missing 2.0 functions.
8492
8493 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8494
8495         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
8496           Implemented more 2.0 members.
8497
8498 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8499
8500         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
8501           null (strange, but it seems to happen when running unit tests).
8502
8503 2007-05-30  Andreia Gaita  <avidigal@novell.com>
8504
8505         * ContainerControl.cs: Set active_control even earlier, before 
8506         firing any events, and undo it if validation returns false.
8507
8508 2007-05-30  Andreia Gaita  <avidigal@novell.com>
8509
8510         * ContainerControl.cs: Raise Validation and Enter/Leave events
8511         even if there is no Form and set active_control earlier, just
8512         before firing Enter events (toshok's patches). Fixes #80647.
8513
8514 2007-05-30  Jackson Harper  <jackson@ximian.com>
8515
8516         * TextControl.cs: Redid the pageup/pagedown a little to simplify
8517         things and fix bug #81311.
8518
8519 2007-05-30  Jackson Harper  <jackson@ximian.com>
8520
8521         * X11Dnd.cs: Now that we have our own event loop, we need to
8522         cancel when we get a mouseup but it won't be accepted.
8523
8524 2007-05-30  Chris Toshok  <toshok@ximian.com>
8525
8526         * DataGrid.cs (set_CurrentCell): guard against negative
8527         column/row.
8528
8529         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
8530         array index syntax instead of looping over the property names.
8531
8532         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
8533         and set IsInEditOrNavigateMode to false there.
8534
8535 2007-05-30  Jackson Harper  <jackson@ximian.com>
8536
8537         * TreeView.cs: Make sure we don't get a bad visible order when
8538         setting to the top node.  Fixes some misc crashing in
8539         ControlInspector.
8540
8541 2007-05-30  Andreia Gaita  <avidigal@novell.com>
8542
8543         * UserControl.cs: Add 2.0 AutoSizeMode
8544
8545 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
8546
8547         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
8548
8549 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
8550
8551         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
8552         lines. Fixes #80285. 
8553
8554 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
8555
8556         * DataGridColumnStyle.cs: Add char trimming column header text format. 
8557
8558 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
8559
8560         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
8561         Fixes #80147.
8562
8563 2007-05-29  Jackson Harper  <jackson@ximian.com>
8564
8565         * TreeNode.cs: Fix off by one on calculating whether or not a node
8566         is visible.
8567
8568 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
8569
8570         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
8571         * ScrollableControl.cs: Force an UpdateDistances when we move the
8572         scrollbars.
8573         [Fixes bug #80605]
8574
8575 2007-05-29  Andreia Gaita  <avidigal@novell.com>
8576
8577         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
8578         update the page setup screen.
8579
8580 2007-05-29  Andreia Gaita  <avidigal@novell.com>
8581
8582         * PageSetupDialog.cs: Fix landscape mode.
8583
8584 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8585
8586         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
8587         IconSizeHorizontalSpacing.
8588
8589 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8590
8591         * ListView.cs: The declaration of prev_tooltip_item should be inside
8592         a NET_2_0 conditional (avoid a warning).
8593
8594 2007-05-28  Andreia Gaita  <avidigal@novell.com>
8595
8596         * PageSetupDialog.cs: Implement PrintPreview control to display
8597         the preview thumbnail. Change unit conversion to use 
8598         PrinterUnitConvert methods.
8599         
8600         Note: there is a huge bug in ms.net where the default margins are 
8601         interpreted as centimeters (?), when in fact they are set in inches. When 
8602         loading the page setup dialog initially (ms.net), the default margins 
8603         are set to 1 inch, and the dialog shows them with value 10, when in fact 
8604         it should be 25 (properly converted). Our dialog doesn't have this bug.
8605         
8606         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
8607         RectangleF.
8608         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
8609
8610 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8611
8612         * ListView.cs:
8613         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
8614         items.
8615
8616 2007-05-28  Andreia Gaita  <avidigal@novell.com>
8617
8618         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
8619         an IntPtr on csc (it builds fine on mcs, could it be a compiler
8620         bug?), convert the ptr to Int32 first.
8621
8622 2007-05-28  Jackson Harper  <jackson@ximian.com>
8623
8624         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
8625         recieved, we will exit the dnd tracking loop.
8626
8627 2007-05-28  Jackson Harper  <jackson@ximian.com>
8628
8629         * X11Dnd.cs: Keep tracking until the xdnd finished event is
8630         recieved. TODO: I should probably stick a timer on the dropped
8631         event, and finish the drag if the XDND Finished event never shows
8632         (because some apps don't seem to send it).
8633
8634 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
8635
8636         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
8637         #81733.
8638
8639 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8640
8641         * MonthCalendar.cs: Only mark the keypresses we actually handle as
8642           handled.
8643
8644 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8645
8646         * MonthCalendar.cs: Set the size after initializing all the relevant
8647           variables. Fixes #81742.
8648
8649 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8650
8651         * KeyEventArgs.cs: Fix typo.
8652
8653 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
8654
8655         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
8656         to match MS. Fixed MinDate to only accept value less than or equal
8657         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
8658         Removed TODO's that are now verified by unit tests.
8659
8660 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
8661
8662         * TreeNodeCollection.cs: Minor corrections to exceptions to match
8663         MS.
8664
8665 2007-05-25  Jackson Harper  <jackson@ximian.com>
8666
8667         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
8668         it's own message loop.
8669         * XplatUIX11.cs: Remove some of the dnd hooks
8670
8671 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
8672
8673         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
8674         instead of MinimizedWindowSize.
8675
8676 2007-05-25  Jackson Harper  <jackson@ximian.com>
8677
8678         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
8679
8680 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8681
8682         * KeyEventArgs.cs: Added SuppressKeyPress.
8683         * Control.cs: Added support for SuppressKeyPress.
8684
8685 2007-05-24  Andreia Gaita  <avidigal@novell.com>
8686
8687         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
8688         problems with PieChart. suppress_validation should not be a counter,
8689         if there are several BeginInit calls, the first EndInit will 
8690         activate validation. Fix exceptions thrown by set_Value.
8691         * UpDownBase.cs: ValidateText only if it's the user editing it.
8692
8693 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8694
8695         * ListControl.cs: FilterItemOnProperty should return the filtered
8696         item proeprty even if DataSource is null. The same applies for
8697         GetItemText. Fixes #80427.
8698
8699 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
8700
8701         * Control.cs: If a control doesn't have a parent when it's Dock is
8702         set, but it has children, it needs to do a layout.  Fixes some nested
8703         controls issues.  [Fixes bug #81199]
8704
8705 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8706
8707         * ComboBox.cs: If there are few items in the drop down list, make it
8708           the exact size the items need, no bigger. Fixes #81612.
8709
8710 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
8711
8712         * Application.cs: When we have captured the keyboard for a menu,
8713         check for mouse down events in case we need to close the menu.
8714         * Control.cs, Form.cs: Remove mouse down checks for menus.
8715
8716 2007-05-24  Jackson Harper  <jackson@ximian.com>
8717
8718         * TextControl.cs: Handle tabs in non multiline mode a little
8719         differently.
8720
8721 2007-05-24  Jackson Harper  <jackson@ximian.com>
8722
8723         * TextControl.cs: We need to manually break apart tabbed text and
8724         move the tabs, since the system.drawing tabbing mechanism relies
8725         on tab stops.
8726         * TextBoxBase.cs: Move the caret properly when the user enters a
8727         tab.
8728
8729 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
8730
8731         * ContainerControl.cs: Don't check CanSelect before calling
8732         ProcessMnemonic.
8733         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
8734         release a KeyboardActive on click if it's not ours.
8735
8736 2007-05-23  Andreia Gaita  <avidigal@novell.com>
8737
8738         * ColumnHeader.cs: Add TypeConverter
8739
8740 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
8741
8742         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
8743
8744 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
8745
8746         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
8747
8748 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
8749
8750         * LinkLabel.cs: Implement public Padding property.
8751
8752 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
8753
8754         * LinkLabel.cs: Implement public FlatStyle.
8755
8756 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
8757
8758         * Control.cs: Apply patch from George to call parent.PerformLayout
8759         when Visible is changed.  [Fixes bugs #81118, 81718]
8760
8761 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
8762
8763         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
8764
8765 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
8766
8767         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
8768
8769 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
8770
8771         * ContextMenu.cs: Implement Collapse.
8772
8773 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
8774
8775         * ToolBarButton.cs: Implement Name.
8776
8777 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
8778
8779         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
8780         use current_item, it prevents some NRE. Fixes #81675.  
8781
8782 2007-05-22  Andreia Gaita  <avidigal@novell.com>
8783
8784         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
8785         without updating the text.
8786
8787 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
8788
8789         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
8790         without calling DeleteObject.  [Should fix bug #81709]
8791
8792 2007-05-22  Jackson Harper  <jackson@ximian.com>
8793
8794         * RichTextBox.cs: Set the line endings correctly, when flushing
8795         RTF text.
8796
8797 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
8798
8799         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
8800          {Width=0,Height=0}.
8801
8802 2007-05-22  Jackson Harper  <jackson@ximian.com>
8803
8804         * TreeView.cs: Setting top with a null node should set to the very
8805         top.
8806
8807 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8808
8809         * Form.cs: ShowDialog: destroy the handle when message loop is
8810           finished, matches MS behaviour. Refactor parts of WmClose into
8811           RaiseCloseEvents, that only raises events if they haven't already
8812           been raised. Fixes #81688 and #81521.
8813         * Application.cs: Don't call close on the form when exiting a modal
8814           loop, it will raise all the (Form)Closed/Closing events again if
8815           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
8816           which doesn'r raise any events it they have been raised before.
8817
8818 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
8819
8820         * Control.cs: Add OnPrint.
8821         * ToolStrip.cs: Add GetChildAtPoint.
8822         * ToolStripContainer.cs: Add OnRightToLeftChanged.
8823         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
8824
8825 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
8826
8827         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
8828
8829 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8830
8831         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
8832           isn't visible anymore. Fixes #81651.
8833
8834 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8835
8836         * Control.cs: WmShowWindow: Update children's z-order after setting
8837           their parent. SetParent may show the window, thereby corrupting
8838           z-order, since the window will be shown on top.
8839         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
8840           multiple (and redundant) WM_SHOWWINDOW messages.
8841         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
8842           event has already been raised.
8843         * Form.cs: Change is_changing_visible_state to a counter, since
8844           SetVisibleCore can be called recursively. CreateHandle: when
8845           creating mdi children, send (De)Activated events.
8846         * MdiClient.cs: Update use of is_changing_visible_state.
8847         * Application.cs: OnThreadException: Surround exception handling with
8848           try/finally to ensure we always reset the error-handling state
8849           before leaving.
8850
8851 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8852
8853         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
8854           (#81704).
8855
8856 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8857
8858         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
8859         SmallIcon views, now that we have a standarized horizontal spacing.
8860
8861         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
8862         4, just like the other views (Match .Net).
8863
8864 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
8865
8866         * Control.cs: Delay calculating anchor distances until we actually layout.
8867         Always query the WM for the actual size and location it put us at instead of
8868         only when we send negative values.
8869         [Fixes bugs #81694, 81695]
8870
8871 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8872
8873         * Application.cs: Avoid a possible stack overflow when trying to exit
8874           the application.
8875
8876 2007-05-19  Marek Safar  <marek.safar@gmail.com>
8877
8878         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
8879         enum value.
8880
8881 2007-05-19  Andreia Gaita  <avidigal@novell.com>
8882
8883         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
8884         * NumericUpDownAcceleration.cs, 
8885           NumericUpDownAccelerationCollection.cs: Added 2.0
8886           implementation.
8887
8888 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
8889
8890         * RichTextBox.cs: Recalculate the document after the ScrollBars
8891         property is changed. Fixes bug #81681.
8892
8893 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
8894
8895         * DataObject.cs: Implement 2.0 methods.
8896
8897 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8898
8899         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
8900         in the center of the checkbox, not in the left-top corner. 
8901         Fixes #80037.
8902
8903 2007-05-18  Jackson Harper  <jackson@ximian.com>
8904
8905         * RichTextBox.cs: Recalculate the document after the scrollbars
8906         property is changed.
8907         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
8908         81486.
8909
8910 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8911
8912         * CreateParams.cs: Make HasWindowManager marginally faster.
8913         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
8914           into Hwnd so that other drivers can use it as well.
8915         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
8916           the default location from Hwnd. Fixes MDI client windows always
8917           showing up at (0,0) in Windows (Win32 won't set the default
8918           location since the window styles aren't correct).
8919
8920 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
8921
8922         * TreeView.cs: Modified DoubleBuffered to just use the base
8923         implementation.
8924
8925 2007-05-18  Jackson Harper  <jackson@ximian.com>
8926
8927         * TreeView.cs: Set the top node to the last child node when
8928         expanding all
8929         - When we get focus, if there is no selected node, use the top
8930         node.
8931
8932 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
8933
8934         * KeysConverter.cs: Add CanConvertTo.
8935         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
8936         * LinkConverter.cs: Added.
8937
8938 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
8939
8940         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
8941         it prevents error when file dont have write access. Fixes #81669 and #81667.  
8942
8943 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
8944
8945         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
8946         button text. Fixes #79640.  
8947
8948 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
8949
8950         * Control.cs: According to MSDN controls created in the designer theres 
8951         keyboard accelerators visible by default. So included check for design
8952         in ShowKeyboardCuesInternal.  
8953
8954 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
8955
8956         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
8957         text. Fixes #81621.  
8958
8959 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
8960
8961         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
8962         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
8963
8964 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
8965
8966         * Control.cs: Finish implementation of UI State using WmChangeUIState
8967         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
8968         in some controls to check for show_keyboard_cues to draw accell keys "_".  
8969
8970 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8971
8972         * ListBox.cs: When calculating the horizontal scrollbar
8973         in single column mode, don't use values less than 0 for
8974         Maximum. Fixes #81474.
8975
8976 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8977
8978         * ListBox.cs: Throw the some missing exceptions in
8979         ListBox.ObjectCollection methods.
8980
8981 2007-05-17  Jackson Harper  <jackson@ximian.com>
8982
8983         * TextBoxBase.cs: Recalculate the document when the word wrap
8984         value has changed. This fixes 81488.
8985
8986 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
8987
8988         * Clipboard.cs: Implement missing GetText overload.
8989
8990 2007-05-17  Chris Toshok  <toshok@ximian.com>
8991
8992         * Control.cs (CheckDataBindings): remove the binding_context arg
8993         to binding.Check.
8994
8995         * CurrencyManager.cs (OnItemChanged): fix this now that
8996         BindingManagerBase is fixed. also remove the comment telling where
8997         the fix should go.  We set transfering_data to true/false around
8998         the call to PushData to keep UpdateIsBinding from being called.
8999         (ListChangedHandler): remove the extra OnMetaDataChanged call for
9000         PropertyDescriptorAdded in the 1.1 case.  The extra call is
9001         actually generated by System.Data generating 2 metadata changed
9002         events of its own per column add.  The fix should go there.  Add a
9003         comment to that affect in our test's Assert.Ignore.
9004
9005         * BindingManagerBase.cs: Rework PullData and PushData slightly.
9006         we keep a boolean flag (transfering_data) that keeps us from
9007         calling UpdateIsBinding multiple times if we re-enter either of
9008         them.
9009
9010         * ControlBindingsCollection.cs (AddCore): remove the
9011         binding_context arg to binding.Check.
9012
9013         * Binding.cs (IsBinding): don't check if we're binding here, just
9014         return our cached value.  we update it in UpdateIsBinding.
9015         (Check): don't take the binding_context arg, we'll just use our
9016         control's.  Also, for some reason MS doesn't use the data member
9017         field when getting the bindingmanager for this binding.  it just
9018         uses the datasource.  Make this method callable multiple times,
9019         and only do the is_null_desc stuff if manager.Position != -1 (so
9020         we don't get an exception accessing manager.Current).
9021         (UpdateIsBinding): move the code from IsBinding here.
9022         (PositionChangedHandler): call Check here to we can initialize
9023         things that require a non- -1 position.
9024
9025 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
9026
9027         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
9028         control.
9029
9030 2007-05-17  Andreia Gaita  <avidigal@novell.com>
9031
9032         * TabControl.cs: Add 2.0 methods and events, including
9033         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
9034         * TabPage.cs: Add 2.0 methods
9035
9036 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
9037
9038         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
9039         keyboard_cues is properly handled by message method.  
9040
9041 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
9042
9043         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
9044
9045 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
9046
9047         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
9048
9049 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
9050
9051         * Control.cs: 
9052         - WmUpdateUIState added to handle state changes, it make call to
9053         OnChangeUICues event.
9054         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
9055         SystemInformation.
9056
9057 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
9058
9059         * ImageKeyConverter.cs: Added.
9060         * TreeViewImageKeyConverter.cs: Added.
9061
9062 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9063         
9064         * ToolTips.cs: Update Text if SetToolTip is called for a control
9065         already showing the tooltip, as well as restarting its timer; show
9066         tooltip if we are inside the control bounds by the time of calling
9067         SetToolTip. Inside ShowTooltip remove the check to not show the 
9068         tooltip again for the active control (it is allowed by .Net to 
9069         show the tooltip on the same control multiple times).
9070
9071 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9072
9073         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
9074
9075 2007-05-16  Andreia Gaita <avidigal@novell.com> 
9076
9077         * ContainerControl.cs: only process tab key if there are no 
9078         modifier keys present, otherwise the control does the 
9079         tab processing, if it needs to. Fixes #81622
9080         * TabControl.cs: Fixes calculation for which tab to select on
9081         shift+ctrl+tab.
9082
9083 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9084
9085         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
9086
9087 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
9088
9089         * Control.cs: Make IsInputCharInternal to allow controls to
9090         override it and still match MS API.
9091         * TextBoxBase.cs: Override IsInputCharInternal and always
9092         return true.
9093         [Fixes bug #81616]
9094
9095 2007-05-15  Jackson Harper  <jackson@ximian.com>
9096
9097         * TextBox.cs: Disable some of the menu options when using a
9098         readonly textbox.
9099
9100 2007-05-15  Jackson Harper  <jackson@ximian.com>
9101
9102         * TextBox.cs:
9103         * TextBoxBase.cs:
9104         * RichTextBox.cs: Some new 2.0 methods
9105
9106 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
9107
9108         * FileDialog.cs: On 1.0 profile, do not support multidotted 
9109         extensions.
9110
9111 2007-05-14  Jackson Harper  <jackson@ximian.com>
9112
9113         * TextBoxBase.cs: Implement some of the new 2.0 methods.
9114         * RichTextBox.cs: We need to override these methods on 2.0.
9115         * MaskedTextBox.cs: These are implemented now
9116         * TextControl.cs: This was off by one.
9117
9118 2007-05-14  Jackson Harper  <jackson@ximian.com>
9119
9120         * TextControl.cs: Because the line endings are including in the
9121         text, we don't need to add them in anymore.
9122
9123 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
9124
9125         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
9126         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
9127
9128 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
9129
9130         * ToolBar.cs: Adjust size to default size when button theres no text and
9131         image, it fixes remaining issues from #81524.
9132
9133 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
9134
9135         * ToolBar.cs: 
9136         - When not flat call redraw to recalculate sizes on creare handle to match
9137         win32 behavior.
9138         - Revert 77220 because it causes some regressions in toobar
9139         button.
9140
9141 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9142
9143         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
9144           now actually enters a usable state.
9145
9146 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
9147
9148         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
9149         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
9150         3 buttons.
9151
9152 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
9153
9154         * ToolBar.cs: Save default_size on create handle to use later for buttons
9155         without text, needed to mimic win32 behavior.
9156
9157 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
9158
9159         * ToolBar.cs: Fix button layour to best fit width or height according to
9160         vertical or not. Fixes #81524.
9161
9162 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
9163
9164         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
9165         toolbar size info because different styles theres different sizes.
9166         Fixes #81522.
9167
9168 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9169
9170         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
9171         if we are using checkboxes, checked is true, and we have less
9172         than two images in StateImageList; for the 1.1 in the same scenario
9173         draw the first image if we have at least one image in StateImageList.
9174         Fixes part of #81191.
9175
9176 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
9177
9178         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
9179         the owner's Items collection on merge.
9180
9181 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
9182
9183         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
9184         * ToolStripItemCollection.cs: Lots of fixes to when events get called
9185         and parent/owner gets changed based on gert's unit tests.
9186
9187 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9188
9189         * MaskedTextBox.cs: Started implementing parts of it.
9190
9191 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9192
9193         * ListView.cs: When clicking the checkbox on the items
9194         take into account the double clicks even if we have only
9195         one image in StateImageList (only for 1.0/1.1). Also 
9196         generate an extra change of checked state when we receive
9197         the second click on checkbox (match .Net behaviour). 
9198         Fixes part of #81191.
9199
9200 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
9201
9202         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
9203
9204 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
9205
9206         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
9207         even if OnLoad is overriden and base.OnLoad is not called.
9208         [Fixes bug #81582]
9209
9210 2007-05-10  Andreia Gaita  <avidigal@novell.com>
9211
9212         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
9213         shame. (I blame my ever-persisting and annoying cold)
9214
9215 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
9216
9217         * ListView.cs: Don't eat navigation keys.  Let them flow through to
9218         KeyDown/KeyPress routines.  [Fixes bug #81569]
9219
9220 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
9221
9222         * ListView.cs: When handling keys for selecting the item based off
9223         keyboard input, do not consider keys pressed with Alt or Control.  Also,
9224         correctly handle keys when the Shift key is down. [Fixes bug #81578]
9225
9226 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
9227
9228         * Control.cs: When using UseWaitCursor, we have to store the requested
9229         Cursor to use when UseWaitCursor is turned off.
9230
9231 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
9232
9233         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
9234         to false.
9235         * Application.cs: Use PreProcessControlMessage instead of
9236         PreProcessMessage.
9237         * PreProcessControlMessage.cs: Make internal for 1.1.
9238
9239 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9240
9241         * Control.cs: Add InternalContains focus property, which hast the same
9242         functionality of ContainsFocus, but also including implicit controls.
9243         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
9244         since we need to know if the focus is contained in our implicit
9245         ItemControl when calculating Layout. Fixes part of #80888.
9246
9247 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
9248
9249         * ToolTip.cs: Remove center form string alignment as it must be align to
9250         left.
9251
9252 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
9253
9254         * ToolStripItemCollection.cs: Set the new item's parent and owner
9255         in Insert like we do in Add.  [Fixes bug #81568]
9256
9257 2007-05-08  Jackson Harper  <jackson@ximian.com>
9258
9259         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
9260         - Off by one error in SetTop
9261         - Disable DoubeBuffering
9262         
9263 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9264
9265         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
9266           control as much as necessary in order to make it entirely visible,
9267           instead of centering the control in the container (matches MS
9268           behaviour). CalculateCanvasSize: we need to take the current scroll
9269           position into account when calculating the maximum canvas,
9270           otherwise the following scenario will fail: resize so that the
9271           scrollbars appear, use the scrollbars to scroll, resize again
9272           smaller, and now the canvas size is too small. Recalculate: when
9273           showing scrollbars make sure they start off at 0, and try to scroll
9274           the active control into view. Fixes #79540. HandleScrollBar: don't
9275           scroll anywhere if the scrollbar isn't visible.
9276
9277 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9278
9279         * ListView.cs: When focus changed, call Layout/Invalidate
9280         in the focused item to update the selected state (should show
9281         entire label when ListView is focused, and a part of it if is not).
9282         * ListViewItem.cs: When doing layout for LargeIcon, take into account
9283         for displaying the entire label not only the Focused state of the
9284         item, but also the Focused state of the ListView (match .Net
9285         behaviour).
9286
9287 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
9288
9289         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
9290         Implement UseWaitCursor. 
9291
9292 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
9293         Applying contributed patch from Sergey Volk.
9294
9295         * Clipboard.cs: Implement SetDataObject retry logic and new overload
9296         of SetDataObject.
9297         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
9298
9299 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
9300
9301         * Control.cs: Implement DrawToBitmap.
9302
9303 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
9304         Applying contributed patch from Stefan Noack.
9305         
9306         * Control.cs: Add [Get|Set]AutoSizeMode.
9307
9308 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
9309
9310         * MdiClient.cs: Unmerge menus when the last child is closed.
9311
9312 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
9313
9314         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
9315         * ToolStripManager.cs: Call Merge on DropDowns.
9316         [Fixes bug #81477]
9317
9318 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9319
9320         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
9321           uints.
9322         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
9323           visibility. We can't create forms visible, since we have to set the
9324           owner before making the form visible (otherwise Win32 will do
9325           strange things with task bar icons). The problem is that we set the
9326           internal is_visible to true before creating the control, so
9327           is_changing_visible_state is the only way of determining if we're
9328           in the process of creating the form due to setting Visible=true -
9329           this works because SetVisibleCore explicitly makes the form
9330           visibile afterwards anyways. Fixes #80775.
9331
9332 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9333
9334         * ThemeWin32Classic.cs: When drawing ListViewItems,
9335         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
9336         or LargeIcon _and_ item is not focused (match .Net behaviour).
9337
9338 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
9339
9340         * Control.cs, Form.cs: Fix some obsolete method warnings.
9341
9342 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
9343
9344         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
9345         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
9346
9347 2007-05-04  Andreia Gaita  <avidigal@novell.com>
9348
9349         * ContainerControl.cs: Fix active_control attribution when going
9350         up the parent chain so that the first parent container gets the control
9351         and the rest of the parent containers get the child containers (skips
9352         non-containers). Fixes #80729
9353
9354 2007-05-04  Randolph Chung  <tausq@debian.org>
9355
9356         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
9357         [Fixes bug #81499]
9358
9359 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9360
9361         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
9362           takes a size parameter, since the CreateParam's size isn't true for
9363           minimized forms. Fixes #81518,
9364
9365 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9366
9367         * Form.cs: Add OnDeactivateInternal.
9368         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
9369
9370 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9371
9372         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
9373           accessing the parent. Fixes #81508.
9374
9375 2007-05-03  Chris Toshok  <toshok@ximian.com>
9376
9377         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
9378         2.0 block, pass listposition + 1 to ChangeRecordState when a row
9379         was added before the current listposition.  Fixes the
9380         TestInsertRowBeforeCurrent unit test.
9381
9382 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
9383
9384         * Application.cs: Add RaiseIdle.
9385         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9386         XplatUIX11.cs: Implement RaiseIdle.
9387
9388 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
9389         corcompare work: N - Z
9390         * NotifyIcon.cs
9391         * ProgressBar.cs
9392         * RadionButton.cs
9393         * ScrollableControl.cs
9394         * SplitContainer.cs
9395         * SplitterPanel.cs
9396         * StatusBar.cs
9397         * SystemInformation.cs
9398         * TabControl.cs
9399         * TableLayoutControlCollection.cs
9400         * TableLayoutPanel.cs
9401         * TabPage.cs
9402         * ToolBar.cs
9403         * ToolBarButton.cs
9404         * ToolStrip.cs
9405         * ToolStripComboBox.cs
9406         * ToolStripContainer.cs
9407         * ToolStripContentPanel.cs
9408         * ToolStripDropDown.cs
9409         * ToolStripDropDownItem.cs
9410         * ToolStripDropDownMenu.cs
9411         * ToolStripItem.cs
9412         * ToolStripItemCollection.cs
9413         * ToolStripMenuItem.cs
9414         * ToolStripPanel.cs
9415         * ToolStripSplitButton.cs
9416         * ToolTip.cs
9417         * TreeNode.cs
9418         * TreeNodeCollection.cs
9419         * TreeNodeMouseHoverEventArgs.cs
9420         * TreeView.cs
9421
9422 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
9423
9424         * ContextMenu.cs: Add public method Show with alignment property to 2.0
9425         stuff. Thanks aatdark for the patch. 
9426
9427 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
9428
9429         * GridItem.cs: Implement 2.0 Tag property.
9430
9431 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
9432
9433         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
9434         count instead of Nodes.Length.  [Fixes bug #81448]
9435
9436 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
9437
9438         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
9439         [Fixes bug #81506]
9440
9441 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
9442         corcompare work: A - M
9443         * BindingNavigator.cs
9444         * Button.cs
9445         * ButtonBase.cs
9446         * CheckBox.cs
9447         * Control.cs
9448         * FlowLayoutPanel.cs
9449         * Form.cs
9450         * Label.cs
9451         * LinkLabel.cs
9452         * ListView.cs
9453
9454 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
9455
9456         * Application.cs: Give toolstrips a chance to process mnemonics.
9457         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
9458         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
9459         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
9460
9461 2007-05-01  Jackson Harper  <jackson@ximian.com>
9462
9463         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
9464         wider area too.
9465         - Don't set the BoundsSpecified
9466
9467 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
9468
9469         * Application.cs: When using the toolstrip shortcut mechanism, allow the
9470         message to pass through to a regular control if it hosted by a toolstrip.
9471         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
9472         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
9473
9474 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
9475
9476         * TextRenderer.cs: Use the flags argument when using the MeasureString
9477         fallback algorithm.
9478
9479 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
9480
9481         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
9482         the MDI menu item.  [Fixes bug #81483]
9483
9484 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
9485
9486         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
9487         string. When setting Name to null, use zero-length string instead.
9488
9489 2007-04-29  Andreia Gaita  <avidigal@novell.com>
9490
9491         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
9492         DeselectTab). Implement missing 2.0 TabPageCollection methods
9493         (Add, ContainsKey, RemoveByKey, IndexOfKey)
9494
9495 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
9496
9497         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
9498
9499 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
9500
9501         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
9502         Fixes bug #81479. Include details of exception when LoadFile fails.
9503
9504 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
9505
9506         * DrawListViewSubItemEventArgs.cs: Added missing setter
9507
9508 2007-04-27  Andreia Gaita  <avidigal@novell.com>
9509
9510         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
9511         Hide methods (not complete). Implement missing 2.0 OnPopup event.
9512
9513 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9514
9515         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
9516         removed in ly last commit (it was breaking the Label edit feature).
9517
9518         * ThemeWin32Classic.cs: When drawing a ListViewItem use
9519         StringAlignment.Near for LineAlignment (match .Net).
9520
9521 2007-04-27  Andreia Gaita  <avidigal@novell.com>
9522
9523         * TabControl.cs: Change SetTab so it adds the tabpage to the list
9524         of controls if it isn't already there - was blowing up when doing
9525         tabcontrol.TabPages[i]=new TabPage(). 
9526         SetTab now does a replace by removing the page at the index. 
9527         Add a new InsertTab method that inserts a page in a given index 
9528         instead of replacing. 
9529         Implements TabPageCollection.Insert(int, TabPage).
9530
9531 2007-04-27  Chris Toshok  <toshok@ximian.com>
9532
9533         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
9534         internal handler that can be invoked from our subclasses.)  Also,
9535         add a comment to PushData about how we need to fix it.
9536
9537         * CurrencyManager.cs: tons of changes here.  trying to get things
9538         matching the behavior of .net wrt event orders (ItemChanged,
9539         CurrentChanged, PositionChanged.)  I've implemented a private .net
9540         symbol (ChangeRecordState) that appears in stack traces because
9541         it's actually easier to do this than to effective inline all its
9542         various behaviors at every call site.
9543
9544         * RelatedPropertyManager.cs: guard against an exception here by
9545         not using parent.Current if the position is set to -1 (if the
9546         parent datasource is cleared, for instance).
9547
9548         * Binding.cs: don't parse data in PushData (this might be wrong,
9549         but it jives with MS's behavior.)  Also, don't call PushData when
9550         we get a CurrentChanged event.
9551
9552 2007-04-27  Andreia Gaita  <avidigal@novell.com>
9553
9554         * WebBrowser.cs,
9555           WebBrowserBase.cs,
9556           WebBrowserSiteBase.cs,
9557           HtmlDocument.cs: Added stubbed out classes, no real implementations 
9558           yet.
9559
9560 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
9561
9562         * MainMenu.cs: In draw method without parameters call draw method with 
9563         PaintEvent, another one (just rect) adjust rectangle and we dont need it
9564         as Rect property is already adjusted. Fixes #80694.
9565
9566 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
9567
9568         * Application.cs: Need to handle keyboard menu deselection here.
9569         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
9570         navigation, allowing keyboard to work on X11.
9571         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
9572
9573 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
9574
9575         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
9576         menu bar. It fixes some drawing issues in menu bar.
9577
9578 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
9579
9580         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
9581         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
9582         when <alt> key is pressed.
9583
9584 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
9585
9586         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
9587         example just set visible to false and make this prevent from other problems.
9588         In SystrayAdd always remove pending expose. Fixes #81072.
9589
9590 2007-04-26  Marek Safar  <marek.safar@gmail.com>
9591
9592         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
9593         value is set.
9594
9595 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
9596
9597         * ListView.cs: Added three missing 2.0 events and corresponding
9598         EventHandlers. Added the OwnerDraw property.
9599         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
9600
9601 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
9602
9603         * DrawListViewItemEventArgs.cs
9604         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
9605
9606 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
9607
9608         * TextControl.cs: Fixed typo in constructor
9609
9610 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
9611
9612         * Application.cs: Create a shortcut path so that currently selected
9613         MenuStrips can intercept keyboard events without having focus.
9614         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
9615         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
9616         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
9617         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
9618         generate WM_SYSCOMMAND message in X11 for other platforms.
9619         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
9620         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
9621         * ToolStripSplitButton.cs: Add DefaultItem property.
9622         
9623 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
9624
9625         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
9626         fixes some menu draw problem on Windows with border diferent from default
9627         it also fixes #81403.
9628
9629 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9630
9631         * Form.cs: Refactor WndProc into separate methods, just like Control is
9632           doing it.
9633
9634 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9635
9636         * Control.cs: set_Text: move the call to the driver into a seperate
9637           virtual method so that Form can override it.
9638         * MaskedTextBox.cs: Corcompare fixes.
9639         * Form.cs: Override UpdateWindowText and only update the styles if the
9640           form has been shown (fixes #81405).
9641
9642 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
9643
9644         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
9645         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
9646         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
9647         the form lost focus or another control was clicked.
9648
9649 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
9650
9651         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
9652         fixed.
9653
9654 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9655
9656         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
9657           DrawListViewItemEventHandler.cs,
9658           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
9659           Added.
9660         * X11Structs.cs: More ToString implementation.
9661
9662 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
9663
9664         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
9665         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
9666
9667 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9668
9669         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
9670           handle.
9671         * FormCollection.cs: Don't add a form if it's already in the
9672           collection.
9673         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
9674           according to behaviour and MSDN. The ownerWin32 is the active
9675           window at the moment when we call ShowDialog, not the context's
9676           main form (the context's main form may open another form that opens
9677           a form with ShowDialog, the win32 owner is the second form). Add
9678           and remove forms to the Application.OpenForms in other places to
9679           better match MS behaviour. Add an IsActive property that raises
9680           On(de)Activated only if the active state has changed (we were
9681           raising OnDeactivated before OnActivated while creating forms).
9682         * Application.cs: Refactor Enabling/Disabling of windows for modal
9683           dialog loops out to separate methods, and restore the thread
9684           context when we quit the method. Fixes #81407.
9685
9686 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9687
9688         * ListView.cs: In ItemControl.HandleClicks, also fire 
9689         2.0 MouseClick or MouseDoubleClick events on the parent,
9690         not only the Click/DoubleClick events.
9691
9692 2007-04-24  Andreia Gaita  <avidigal@novell.com>
9693
9694         * TableLayoutSettings.cs: 
9695         - Added a GetControls method and a support structure to help the 
9696         TypeConverter to enumerate the controls for     serialization. 
9697         - Added a new serialization constructor. 
9698         - Added a isSerialized flag initialized to true on the 
9699         serialization constructor so that the TableLayoutPanel.LayoutSettings 
9700         setter does not throw the designed NotSupportedOperation exception
9701         when the object is built through deserialization.
9702         - Implemented GetObjectData
9703         
9704         * TableLayoutPanel.cs: Added check on LayoutSettings.
9705
9706 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9707
9708         * ListView.cs: Report Click and DoubleClick events to the parent
9709         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
9710         from breaking the click count state when using dialog forms (Control
9711         reports the clicks in a similar fashion). In the previous behaviour
9712         the last WM_LBUTTONUP message in a  double click was sent to the
9713         ListView's form, instead of the ListView, which was breaking the click
9714         count for it. Fixes #80387.
9715
9716 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
9717
9718         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
9719
9720 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
9721
9722         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
9723         us from created dropdowns for menu items that do not have subitems.
9724         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
9725         Check HasDropDownItems before calling DropDown so a dropdown will not be
9726         created if it isn't needed.
9727
9728 2007-04-24  Jackson Harper  <jackson@ximian.com>
9729
9730         * TreeView.cs: Set the first node to the selected node when we get
9731         focus if there is no selected node.
9732
9733 2007-04-24  Andreia Gaita  <avidigal@novell.com>
9734
9735         * MimeIcon.cs: remove using blocks so that image streams are
9736         not disposed of. Fixes #80151
9737
9738 2007-04-24  Jackson Harper  <jackson@ximian.com>
9739
9740         * TextBoxBase.cs: Fixup the height of textboxes when the control
9741         is created.
9742
9743 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
9744
9745         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
9746         for each ToolStripItem when the parent's RightToLeftChanged is called.
9747
9748 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9749
9750         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
9751           Fixes #80163.
9752         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
9753           property, so that the setter can be overriden too.
9754         * TextBox.cs: Change GetContextMenuInternal() to use
9755           ContextMenuInternal.
9756
9757 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9758
9759         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
9760           #81406.
9761
9762 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9763
9764         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
9765           #81406.
9766
9767 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9768
9769         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
9770           avoid duplicate work. Mostily skeleton code, it's not working at
9771           all yet.
9772
9773 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
9774
9775         * NotifyIcon.cs : stub for MouseClick event
9776         * Application.cs: stub for SetUnhandledExceptionMode
9777
9778 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
9779
9780         * BindingNavigator.cs : Initial (partial) implementation
9781
9782 2007-04-23  Jackson Harper  <jackson@ximian.com>
9783
9784         * TreeView.cs: Do not create the treeview's handle when setting
9785         the scroll position.
9786         - ExpandAll needs to compute the scrollbars so it knows which
9787         position to set the bar too.
9788         * TreeNode.cs: 
9789         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
9790
9791 2007-04-23  Jackson Harper  <jackson@ximian.com>
9792
9793         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
9794         key. Fixes #81408.
9795
9796 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
9797
9798         * ToolStripItem.cs: Make GetImageSize internal.
9799         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
9800         need to draw an item.  Fixes a reported issue where images on menus
9801         that were not 16x16 were drawing incorrectly.
9802
9803 2007-04-21  Miguel de Icaza  <miguel@novell.com>
9804
9805         * Padding.cs: Use the converter, fixes the resgen2 issue with
9806         XMLNotePad. 
9807
9808 2007-04-21  Jackson Harper  <jackson@ximian.com>
9809
9810         * TreeView.cs: Dont try to unhighlight the selected node if there
9811         isn't a selected node.
9812
9813 2007-04-21  Jackson Harper  <jackson@ximian.com>
9814
9815         * UpDownBase.cs:
9816         * TextBoxBase.cs:
9817         * ListView.cs:
9818         * ListBox.cs:
9819         * TreeView.cs: Use the InternalBorderStyle property to set the
9820         initial border style, this forces the client rectangle to be sized
9821         correctly.
9822
9823 2007-04-20  Jackson Harper  <jackson@ximian.com>
9824
9825         * TreeView.cs: Simplify scrolling to the last node after expanding
9826         all.
9827         - Fix some off by ones with setting the bottom.
9828
9829 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
9830
9831         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
9832         that.  We were incorrectly doing it the other way around.  Also,
9833         update ClientSize if we change the BorderStyle before the control
9834         is created.
9835
9836 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
9837
9838         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
9839         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
9840         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
9841         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
9842         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
9843         Caption to CaptionHeight.
9844         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
9845         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
9846         and FixedFrameBorderSize to return value from current XplatUI driver.
9847         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
9848         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
9849         and FixedFrameBorderSize using win32 API. Renamed Caption to
9850         CaptionHeight.
9851         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
9852         * SystemInformation.cs: Fixed typo in BorderSize.
9853
9854 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
9855
9856         * XplatUI.cs: Added MenuAccessKeysUnderlined.
9857         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
9858         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
9859         returning false.
9860         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
9861         value from XplatUI driver.
9862         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
9863         SystemParametersInfo.
9864         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
9865         override.
9866         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
9867         returning false.
9868
9869 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9870
9871         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
9872
9873 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9874
9875         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
9876
9877 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
9878
9879         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
9880         MenuStrips that contain ToolStripSeparators.
9881
9882 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9883
9884         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
9885           DefineStdCursorBitmap.
9886         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
9887           has been created off a standard cursor. This is used to get a
9888           bitmap of the standard cursor when Draw or DrawStretched is called
9889           in order to draw the cursor.
9890         * X11Structs.cs: Added XcursorImage and XcursorImages.
9891         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
9892           DefineStdCursorBitmap.
9893         * Cursors.cs: Update all relevant creations of Cursor to use the new
9894           internal constructor.
9895
9896 2007-04-19  Jackson Harper  <jackson@ximian.com>
9897
9898         * TextBox.cs: Move the has_been_focused into the base control, so
9899         some of the text adding methods can manipulate it (probably time
9900         for a better name for this flag too).
9901         - Call a new version of selectall that doesn't scroll
9902         * TextBoxBase.cs: When we append text, if the document is empty,
9903         don't scroll.  If the document has text already, we scroll to the
9904         end of the appended text.
9905         - When the text is changed, we reset the has_been_focused, so the
9906         next time the control gets focused, all the text is selected.
9907
9908 2007-04-19  Jackson Harper  <jackson@ximian.com>
9909
9910         * TextControl.cs: Move the margins to the document, add a method
9911         so the margin sizes can be updated.
9912         * TextBoxBase.cs: When the border style is changed, update the
9913         border sizes.
9914
9915 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
9916
9917         * Control.cs: Respect DefaultPadding.
9918         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
9919         padding into account.
9920         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
9921
9922 2007-04-19  Jackson Harper  <jackson@ximian.com>
9923
9924         * TextControl.cs: Oops, we need to use the ClientRect not the
9925         bounds here.
9926
9927 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9928
9929         * ListView.cs: In ItemControl.ItemsMouseDown, take into
9930         account the double clicks when CheckBoxes are used and
9931         the pointer is inside the checkbox. Fixes part of #81191.
9932
9933 2007-04-18  Jackson Harper  <jackson@ximian.com>
9934
9935         * TextControl.cs: Pressing the end key shouldn't move the caret
9936         past the line ending.
9937         * TextBoxBase.cs: We can still delete if we are in the line
9938         ending and the combine will just kill the existing line ending.
9939
9940 2007-04-18  Jackson Harper  <jackson@ximian.com>
9941
9942         * TextControl.cs: We can't move lines, then invalidate their
9943         bounds, we need to get the old bounds and combine that with the
9944         new bounds.
9945         * TextBoxBase.cs: Before combining two lines for a delete, we need
9946         to invalidate the area of the old line, since that will be moved
9947         in the combine operation.
9948
9949 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
9950
9951         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
9952         with transparent background. Fixes #80482.
9953
9954 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
9955
9956         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
9957         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
9958         [Fixes bug #81391]
9959
9960 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9961
9962         * CreateParams.cs: Add a couple of helper methods and do a less string
9963           concatenation in ToString.
9964         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
9965           overload that takes a Control parameter, since this method may be
9966           called before a control is assigned to the hwnd (from
9967           CreateWindow), and update CreateWindow to use the new overload. In
9968           GetMenuOrigin subtract the title bar from the y position if the
9969           form has a window manager (since we're painting it and not X).
9970         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
9971           CreateParams to calculate the origin (since border sizes may vary).
9972           In ScreenToMenu only subtract the title height if we actually have
9973           a title.
9974         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
9975           mdi children never have menus of themselves.
9976         * InternalWindowManager.cs: Implement menu handling like form does.
9977           Added GetMenuOrigin to calculate the menu origin, can't use the
9978           CreateParams from the form like normally since it's lying.
9979         * Hwnd.cs: Implement GetBorderSize better (in the sense more
9980           windows-like) and add Inflate and comparison operators to the
9981           Borders type. When calculating MenuOrigin and it's a form with a
9982           window manager, use the window manager to calculate it.
9983
9984 2007-04-17  Chris Toshok  <toshok@ximian.com>
9985
9986         * Control.cs (CreateControl): turns out in 2.0 we don't need this
9987         OnBindingContextChanged thing here.  It's only generated from
9988         ContainerControl.OnCreateControl.  Fixes a newly written unit test
9989         - BindingTest.BindingContextChangedTest4.
9990         
9991 2007-04-17  Jackson Harper  <jackson@ximian.com>
9992
9993         * ScrollBar.cs: When setting values, make sure the current
9994         position stays within the new values range.
9995
9996 2007-04-17  Chris Toshok  <toshok@ximian.com>
9997
9998         * Control.cs (CreateControl): talk about a bizarre corner case.
9999         Don't emit OnBindingContextChanged here if we're a parentless
10000         control (i.e. if we're a form.).  Fixes
10001         BindingTest.BindingContextChangedTest2.
10002
10003 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
10004
10005         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
10006         from win32. Fixes #81255.
10007
10008 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
10009
10010         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
10011         already present in CalculateButtonTextAndImageLayout.
10012
10013 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10014
10015         * XplatUIX11.cs: When setting min/max size for a window we need to
10016           translate the coordinates to x coordinates. Create an overload of
10017           SetWindowMinMax that takes a CreateParams handling this, and change
10018           SetWMStyles to call this function (can't use Control.FromHandle in
10019           the SetWindowMinMax to get the control/CreateParams from the handle
10020           because the handle might not have been assigned to the control
10021           yet). Fixes #81371.
10022
10023 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10024
10025         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
10026         if StateImageList is non-null and it has less than two items (match MS
10027         behaviour). Also, in HandleNavKeys handle the Space key, calling
10028         the new ToggleItemsCheckState method, which tries to change the
10029         checked state of the selected items. Fixes part of #81191.
10030
10031 2007-04-16  Jackson Harper  <jackson@ximian.com>
10032
10033         * RichTextBox.cs: namespace cleanup.
10034
10035 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
10036
10037         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
10038
10039 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
10040
10041         [Fixes #79447]
10042         * Control.cs: Call invalidate in set_Region.
10043
10044         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
10045         it dont works here.
10046
10047 2007-04-16  Jackson Harper  <jackson@ximian.com>
10048
10049         * TextBoxBase.cs: When enter is pressed, we need to update all
10050         lines below the current.
10051
10052 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
10053
10054         * MdiClient.cs: Implement implicit menu merging for MDI
10055         children.  When a child form is active, if it has a menustrip
10056         and the parent form has a MainMenuStrip, automatically merge
10057         the menus.
10058
10059 2007-04-15  Andreia Gaita  <avidigal@novell.com>
10060
10061         * TabControl.cs: Refactored sizing methods to not repeat
10062         code all over the place. Tab bounds are now calculated
10063         as if alignment is top and single line, and only when 
10064         setting the bounds are the positions adjusted according
10065         to alignment. Replaced hardcoded positions, spacings and
10066         paddings by getting the values the ThemeEngine. 
10067         Fixes #79619.
10068         
10069         * Theme.cs: Change TabControl properties and methods so
10070         that all start with TabControl*. Added more properties
10071         to help remove hardcoded values on tabcontrol.
10072         Add CPDrawBorder3D declaration so the Theming classes
10073         can access it.
10074         
10075         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
10076
10077         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
10078         on the Theming namespace, and call the appropriate methods here.
10079         Change CPDrawBorder3D to public.
10080
10081 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10082
10083         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
10084         the control after firing the OnMouseUp event, instead of sending
10085         the message before the mentioned event. This is so we can match the
10086         MS behaviour. Fixes part of #80385.
10087
10088 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
10089
10090         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
10091         RightToLeft property.
10092
10093 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
10094
10095         * ToolStrip.cs: Add properties and internal methods to support merging.
10096         * ToolStripItem.cs: Add MergeAction and MergeIndex.
10097         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
10098         not trigger reparenting or layouts.
10099         * ToolStripManager.cs: Add Merge and RevertMerge methods.
10100         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
10101         is hosting the overflow menu.
10102
10103 2007-04-13  Jackson Harper  <jackson@ximian.com>
10104
10105         * TextControl.cs: Set the line ending correctly for the first
10106         inserted line.
10107
10108 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
10109
10110         * Theme.cs: Update GetMethod to get the new definition for 
10111         KnownColors.Update (and fix theme color updates).
10112
10113 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
10114
10115         * MessageBox.cs: Fix some test and button position.
10116
10117 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10118
10119         * Form.cs: Consider the implicit controls in
10120         GetRealChildAtPoint. We need it since this method
10121         is called on Form when handling the some messages in
10122         WndProc, and need to consider those implicit ones too.
10123         Fixes #80385.
10124
10125 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
10126
10127         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
10128         if there are no ShortcutKeys set.
10129         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
10130         set, use it when painting.
10131
10132 2007-04-12  Jackson Harper  <jackson@ximian.com>
10133
10134         * TextControl.cs: Fix some off-by-one issues in line duplication
10135         and insertion in the undo manager. Also, overwrite the first tag
10136         of a line on insert, if it is just a zero lengthed tag. This
10137         prevents us from getting an extra stranded tag at the beginning of
10138         the first line.
10139
10140 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
10141
10142         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
10143         to calculated proper size including when handle was not created yet.
10144
10145 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10146
10147         * MdiWindowManager.cs: When moving a form, allow the form to be moved
10148           when the mouse is outside of it's parent's client rectangle. Fixes
10149           #79982 (take 3, part 2).
10150
10151 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10152
10153         * X11Structs.cs: Add a few ToString() overrides.
10154         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
10155           the window location in a window-manager independent way. Reworked
10156           FrameExtents, it now actually works. Reworked AddConfigureNotify
10157           and ReparentNotify handling to use GetTopLevelWindowLocation
10158           instead of the earlier, more hacky solution. Reworked SetWMStyles,
10159           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
10160           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
10161           for all other windows (fixes #81281 part 1), a toolwindow is hidden
10162           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
10163           and generally refactored to do as few calculations as possible
10164           inside the lock.
10165
10166 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
10167
10168         * Theme.cs: Change "reflective-contract" between MWF and SD to 
10169         minimize # of calls, avoid Color serialization and avoid updating 
10170         every "known colors" each time a single one is updated.
10171
10172 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
10173
10174         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
10175         when not readonly and the text is explicitly set. Code style updates.
10176         * DataGridTableStyle.cs: Removed extra line.
10177         * DataGrid.cs: Code style updates. Removed extra whitespace.
10178         * DataGridColumnStyle.cs: Code style updates. Removed extra 
10179         whitespace.
10180
10181 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10182
10183         * XplatUIX11.cs: Added comment that "fixes" #80021.
10184
10185 2007-04-09  Jackson Harper  <jackson@ximian.com>
10186
10187         * TextControl.cs: We don't need this -1 on the line count anymore.
10188
10189 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
10190
10191         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
10192         entered value to underlying type, and convert it back to a string to
10193         apply formatting. Modified GetFormattedValue to use TypeConverter
10194         if available.
10195
10196 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
10197
10198         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
10199         Use SubItems property when we want to ensure there's at least one
10200         subitem. Modified SubItems property to ensure there's always at least
10201         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
10202         the NRE's reported by MS.
10203
10204 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
10205
10206         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
10207         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
10208         Spaces to tabs. Removed extra tabs.
10209
10210 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
10211
10212         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
10213         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
10214
10215 2007-04-06  Jackson Harper  <jackson@ximian.com>
10216
10217         * TextBoxBase.cs: When a delete removes a line, recalculate all
10218         lines below that line (they need to get offsets setup correctly)
10219         and invalidate.
10220
10221 2007-04-05  Jackson Harper  <jackson@ximian.com>
10222
10223         * TextControl.cs: We need to invalidate across the width of the
10224         document when we are invalidating multiple lines.
10225         * TextBoxBase.cs: Don't delete into the line ending.
10226
10227 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10228
10229         * ListView.cs: Restore the check for the MouseHover event
10230         in ListView. It looks like the ListView fires more than one MouseHover
10231         event when HoverSelection is true  _only_ in weird-corner scenarios, but
10232         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
10233         event.
10234
10235 2007-04-05  Mike Kestner  <mkestner@novell.com>
10236
10237         * ListView.cs : raise MouseDown before updating selection.
10238         [Fixes #80373 tab 1&3]
10239
10240 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
10241
10242         * ToolStripRenderer.cs: Add static method to mirror image.
10243         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
10244         and RightToLeftAutoMirrorImage.
10245         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
10246
10247 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
10248
10249         * ToolStripSplitStackLayout.cs: Support Alignment property.
10250         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
10251
10252 2007-04-05  Jackson Harper  <jackson@ximian.com>
10253
10254         * TextControl.cs: Move around the line endings when crossing line
10255         boundaries.
10256         - When combining lines, strip the ending text off the first line.
10257
10258 2007-04-05  Jackson Harper  <jackson@ximian.com>
10259
10260         * TextControl.cs:
10261         * TextBoxBase.cs: Try to never move the cursor into the line
10262         ending.
10263         
10264 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
10265
10266         * ToolStripItem.cs: Make sure we aren't firing mouse events when
10267         the item is disabled.  Also add a few missing methods.
10268
10269 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10270
10271         * ListView.cs: We don't need the MouseEnter/MouseLeave check
10272         to fire just one MouseHover event when HoverSelection is true, since
10273         .Net does fire more than one MouseHover event in that scenario. Also,
10274         fix the selection in HoverSelection, by invoking UpdateMultiSelect
10275         if MultiSelect is true, instead of only setting ListViewItem.Selected.
10276         Finally, we need to reset the Hover logic in MouseMove, even when we
10277         don't have a selected item.
10278
10279 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
10280
10281         * ToolStrip.cs: Add several missing methods, properties, and events.
10282
10283 2007-04-04  Chris Toshok  <toshok@ximian.com>
10284
10285         * DataGridTextBoxColumn.cs: set the bounds of the text box to
10286         (0,0,0,0) in Commit, as MS does.
10287
10288         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
10289         make sure we set CurrentRow on a row header click *before* calling
10290         Select.  This moves the current cell (and the textbox) to the new
10291         row.  The call to Select then hides the textbox, giving us the
10292         correct behavior.  Fixes #80362.
10293
10294         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
10295         (ListChangedHandler): reorder the position/current changed events,
10296         and call UpdateIsBinding in the ItemAdded case.
10297
10298         * GridColumnStylesCollection.cs: add some columns events, one of
10299         which raises the CollectionChanged event.
10300
10301 2007-04-04  Jackson Harper  <jackson@ximian.com>
10302
10303         * TextControl.cs: When we delete multiple selection lines
10304         invalidate the selection area, don't need to do that for single
10305         lines because the final update view will handle it.
10306
10307 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
10308
10309         * Control.cs: When we CreateControl, we need to also create all of the
10310         control's children.  The child's OnLoad must also fire before the parent's
10311         OnLoad.  Fixes the toolbox size in PDN.
10312
10313 2007-04-04  Jackson Harper  <jackson@ximian.com>
10314
10315         * TextBoxBase.cs: When the user presses enter, insert a line
10316         ending into the text. (Maybe this would be a good spot for
10317         Environment.NewLine).
10318         * TextControl.cs: Remove undo manager hack, line endings get
10319         inserted properly now.
10320         
10321 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
10322
10323         * MenuAPI.cs: 
10324         - Remove unneeded parameters in UpdateCursor.
10325         - Fix UpdateCursor to check if menu is active.
10326         - Call UpdateCursor when menu deactivate my click.
10327         [Fixes remaining issues from #80410]
10328
10329 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
10330
10331         * Control.cs: GetRealChildAtPoint method added, it make an
10332         recursive child control search for the point. 
10333
10334         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
10335         menu.
10336
10337         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
10338
10339 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
10340
10341         * Form.cs: Fix mouse position when send back mouse event after closes
10342         menu.
10343
10344 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
10345
10346         * Form.cs: Simplify the BUTTONDOWN for active tracker.
10347
10348 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
10349
10350         * Control.cs: Fix an issue where if a user resized a control inside
10351         a sizing method like OnResize, we would overwrite their explicit
10352         value.  Also, only call DefaultSize once in the constructor instead
10353         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
10354         nothing actually changed.
10355
10356 2007-04-03  Jackson Harper  <jackson@ximian.com>
10357
10358         * TextControl.cs: Don't attempt to copy text for lines with no
10359         text in them (technically this shouldn't happen, but we aren't
10360         always inserting line endings when we should be).
10361
10362 2007-04-03  Jackson Harper  <jackson@ximian.com>
10363
10364         * TextBoxBase.cs: Calculate the scrollbars before calculating the
10365         document, because this sets some of the document size properties
10366         that are needed.
10367
10368 2007-04-03  Jackson Harper  <jackson@ximian.com>
10369
10370         * TextBoxBase.cs: We need to calculate maximums even if this is
10371         not a multiline control, because the maxs are used for scrolling.
10372         - Display the caret after doing a page up/down, we need to
10373         manually display it because a proper CaretMoved event isn't
10374         triggered (this is because of the way the math is done to
10375         determine how far to scroll).
10376
10377 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
10378
10379         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
10380         (ToolBar was relying on SetBoundsCore to default the values sent 
10381         base off of BoundsSpecified.)
10382
10383 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10384
10385         * DateTimePicker.cs: Change Text so that when a null value or empty
10386           string is assigned to the test we always raise ValueChanged and
10387           TextChanged (earlier implementation would only raise ValueChanged
10388           if the current date value was different from DateTime.Now).
10389
10390 2007-04-03  Andreia Gaita <avidigal@novell.com> 
10391
10392         * ButtonBase: Call update after invalidation, fixes #80194
10393
10394 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10395
10396         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
10397           #79335.
10398
10399 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10400
10401         * XplatUIX11.cs: SetWMStyles: If the control is a form with
10402           FormBorderStyle = None, don't give the window any decorations.
10403           Fixes #81276.
10404
10405 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10406
10407         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
10408         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
10409           to check for is a mix of several styles (such as WS_CAPTION for
10410           instance).
10411         * Control.cs: Don't paint an area bigger than the client area when
10412           painting the background colour. Add an internal GetCreateParams.
10413           Update calls to XplatUI.CalculateWindowRect due to API change.
10414         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
10415           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
10416           the size if it hasn't been handled by any windows. When creating
10417           and moving windows, X wants the location of the entire window, but
10418           the size of the client window, so add
10419           TranslateClientRectangleToXClientRectangle,
10420           TranslateWindowSizeToXWindowSIze and
10421           TranslatedXWindowSizeToWindowSize to cope with this, and call them
10422           before every window creation and move. Update CalculateWIndowRect
10423           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
10424           In AddConfigureNotify don't do anything if the hwnd is a zombie
10425           (fixes the BadWindow we were getting while running the tests),
10426           always calculate the offsets when it's a parentless window, not
10427           only when reparented, and translate the window size, since we're
10428           getting the client size of the whole window, excluding entire
10429           window.
10430         * Theme.cs: Added BorderSizableSize.
10431         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
10432           anymore. Update calls to XplatUI.CalculateWindowRect due to API
10433           chang
10434         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
10435           change. Fake the window styles here instead of in XplatUIWin32 so
10436           that all back-ends get the same window styles (and it's Form that's
10437           deciding when to use wm, not the Win32 backend anyways)
10438         * Hwnd.cs: Completely reworked GetWindowRectangle and
10439           GetClientRectangle - they are now passed a CreateParams and they
10440           only use Style and ExStyle to determine the rectangles (they should
10441           now work just like Win32AdjustWindowRectEx - though quite a few
10442           special cases are probably missing). They should also be 100%
10443           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
10444           == rect), and all numbers (borders, menu sizes) are taken from the
10445           current theme. Added a GetBorders helper function that will return
10446           the borders for any given CreateParams (including captions and
10447           menus), and GetBorderSize that returns the given border size only.
10448         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
10449           Hwnd.GetClientRectangle.
10450
10451 2007-04-02  Chris Toshok  <toshok@ximian.com>
10452
10453         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
10454         logic between the values we present to the user and the values
10455         which are stored in the column's property.  Also, don't call
10456         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
10457
10458 2007-04-02  Jackson Harper  <jackson@ximian.com>
10459
10460         * TextBoxBase.cs: Scroll faster!
10461
10462 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
10463
10464         * StatusStrip.cs: Layout fixes for PDN.
10465         * ToolStrip.cs: Set item's available to true, and placement to main when
10466         added.
10467         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
10468         changing in setter before doing any work, add InternalVisible.
10469         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
10470         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
10471         infinite loop.
10472
10473 2007-04-02  Jackson Harper  <jackson@ximian.com>
10474
10475         * TextBox.cs: LBUTTON does not make the textbox select all of it's
10476         text on focus.
10477
10478 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10479
10480         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
10481           Makes ToolStripComboBoxes show up again.
10482
10483 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10484
10485         * ListView.cs: Add a hover_pending field in ListView
10486         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
10487         cycle (we are resetting the MouseHover logic in XplatUI
10488         to handle HoverSelection). Fixes #80429.
10489
10490 2007-04-02  Jackson Harper  <jackson@ximian.com>
10491
10492         * TextControl.cs: Make sure the attributes get set on the last
10493         tag.
10494         - Still have to do the end tag if we have stepped all the ways to
10495         the end.
10496
10497 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
10498
10499         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
10500         on an internal libgdiplus call when the information is already 
10501         available via the public API.
10502
10503 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10504
10505         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
10506           control is removed from a control collecftion.
10507         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
10508           Fixes FormPropertyTest (failed on rare occasions).
10509         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
10510           of Win32SetParent (when changing from no parent to a parent it
10511           might add the new parent's location in screen coordinates to this
10512           window's location).
10513         * Form.cs: Rework ChangingParent once again, now the handle is
10514           recreated whenever a FormWindowManager is added or removed (that is
10515           whenever a normal form is parented or abandoned). Also change
10516           CreateParams so that all non-toplevel windows always get the
10517           specified sice (StartupPosition is never considered for
10518           non-TopLevel forms).
10519         * ContainerControl.cs: Add ChildControlRemoved, the container control
10520           needs to be notified when a control is removed from it's
10521           collection, in the case the removed control is the active control.
10522
10523 2007-04-02  Jackson Harper  <jackson@ximian.com>
10524
10525         * RichTextBox.cs: Use the new methods for setting the font and
10526         color, these methods set the specified attribute without
10527         overriding the other attributes.
10528
10529 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
10530
10531         * ToolStripPanel.cs: Fixes for better layouts in PDN.
10532
10533 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
10534
10535         * TextBox.cs: Added internal ChangeBackColor method to special-case
10536         Color.Empty. Added check for invalid ScrollBars value.
10537         * TextBoxBase.cs: Added internal ChangeBackColor method.
10538         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
10539         internal ChangeBackColor method to special-case Color.Empty. Added
10540         check for invalid ScrollBars value.
10541
10542 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
10543
10544         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
10545
10546 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
10547
10548         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
10549         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
10550         [Based on submitted patch from Olivier Duff.]
10551
10552 2007-03-30  Jackson Harper  <jackson@ximian.com>
10553
10554         * TextBox.cs: Only select all on initial focus if the user has not
10555         specified a selection area.
10556
10557 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
10558
10559         * UserControl.cs: Override CreateParams.
10560
10561 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10562
10563         [ Fixes #80995 ]
10564
10565         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
10566         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
10567           check for is a mix of several styles (such as WS_CAPTION for instance).
10568         * Control.cs: Don't paint an area bigger than the client area when painting
10569           the background colour. Add an internal GetCreateParams. Update calls to
10570           XplatUI.CalculateWindowRect due to API change.
10571         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
10572           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
10573           hasn't been handled by any windows. When creating and moving windows, X
10574           wants the location of the entire window, but the size of the client
10575           window, so add TranslateClientRectangleToXClientRectangle,
10576           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
10577           to cope with this, and call them before every window creation and move.
10578           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
10579           removing DeriveStyles). In AddConfigureNotify don't do anything if the
10580           hwnd is a zombie (fixes the BadWindow we were getting while running the
10581           tests), always calculate the offsets when it's a parentless window, not
10582           only when reparented, and translate the window size, since we're getting
10583           the client size of the whole window, excluding entire window.
10584         * Theme.cs: Added BorderSizableSize.
10585         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
10586           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
10587         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
10588           Fake the window styles here instead of in XplatUIWin32 so that all
10589           back-ends get the same window styles (and it's Form that's deciding when
10590           to use wm, not the Win32 backend anyways)
10591         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
10592           they are now passed a CreateParams and they only use Style and ExStyle
10593           to determine the rectangles (they should now work just like
10594           Win32AdjustWindowRectEx - though quite a few special cases are probably
10595           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
10596           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
10597           sizes) are taken from the current theme. Added a GetBorders helper
10598           function that will return the borders for any given CreateParams
10599           (including captions and menus), and GetBorderSize that returns the given
10600           border size only.
10601         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
10602           Hwnd.GetClientRectangle.
10603
10604 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10605
10606         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
10607           layout of the mdi children is handled by CreateParams. Fixes
10608           #79964,
10609
10610 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
10611
10612         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
10613         processed.
10614
10615         * Form.cs: When active tracker mouse down is not processed, send event 
10616         back to control inside mouse position. [Fixes #81227]
10617
10618 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
10619
10620         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
10621         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
10622         stealing focus from the active form on Windows.  (Control will be made
10623         visible in ShowWindow.)
10624
10625 2007-03-29  Mike Kestner  <mkestner@novell.com>
10626
10627         * ImageList.cs : add internal Changed event.
10628         * ListView.cs : hook up to StateImageList.Changed to perform
10629         invalidations when the the state icon list changes. [Fixes #81191]
10630
10631 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
10632
10633         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
10634         to prevent tooltips from stealing focus from the active form on Windows.
10635
10636 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
10637
10638         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
10639
10640         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
10641
10642 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
10643
10644         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
10645         balloons.
10646
10647 2007-03-29  Jackson Harper  <jackson@ximian.com>
10648
10649         * TextControl.cs: When deleting text from non multiline textboxes,
10650         we need to update the entire document, because line offsets will
10651         be shifting.
10652
10653 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
10654
10655         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
10656         added to theme, now we can create themes that uses diferent notify engines
10657         like notification-daemon from galago project or growl for Mac OS.
10658
10659 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
10660
10661         * NotifyIcon.cs: Prevent Balloon to show in task bar.
10662
10663 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
10664
10665         * XplatUIX11.cs: Prevent system to open more than one balloon.
10666
10667         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
10668         some compiler warning messages.
10669
10670 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
10671
10672         [Fixes #79149]
10673
10674         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
10675
10676         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
10677         implemented, this methods is used by NotifyIcon.BalloonWindow class.
10678
10679         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
10680         systems.
10681
10682 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10683
10684         * ListViewItem.cs: Forgot to make Invalidate internal.
10685
10686 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10687
10688         * ListView.cs: Add a InvalidateSelection method to
10689         invalidate methods which are currently selected, and call
10690         it when setting FullRowSelect and HideSelection, instead of
10691         calling Redraw.
10692
10693 2007-03-28  Chris Toshok  <toshok@ximian.com>
10694
10695         * XplatUIX11.cs (UnmapWindow): reindent this block.
10696
10697         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
10698         the selection_start if we're moving the selection (that is, not
10699         extending it). Fixes bug #80461.
10700
10701 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
10702
10703         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
10704         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
10705         create private ControlCollection.
10706
10707 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
10708
10709         * Control.cs: We need to call OnVisibleChanged for our implicit
10710         children as well as our normal children.  Fixes scrollbars in
10711         comboboxes not showing up.
10712
10713 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
10714
10715         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
10716         the check for IsHandleCreated first.  The check in CreateHandle is not
10717         good enough because CreateHandle can be overriden, and the override 
10718         should not be called if the handle is already created.
10719
10720 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
10721
10722         * ToolStrip.cs: Remove MonoTODO for tooltips.
10723         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
10724         * ToolStripContainer.cs: Add custom ControlCollection class.
10725         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
10726         * ToolStripDropDown.cs: Add some missing properties/methods.
10727         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
10728         * ToolStripItem.cs: Remove MonoTODO for tooltips.
10729         * ToolStripManager.cs: Add IsShortcutDefined.
10730         * ToolStripOverflow.cs: Override LayoutEngine.
10731         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
10732         * ToolStripSeparator.cs: Add ImageKey.
10733
10734 2007-03-28  Jackson Harper  <jackson@ximian.com>
10735
10736         * TextControl.cs: If a char delete removes a line ending, we need
10737         to update the ending style.
10738         - Make sure the line ending calcs get called.
10739
10740 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10741
10742         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
10743           it was making the new code not work. Fixed a typo in the new code
10744           as well. Fixes #79826.
10745
10746 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
10747
10748         * XplatUIWin32.cs:
10749         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
10750         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
10751         - SystrayBalloon method implemented.
10752         [Add support for notifyicon balloon on win32, #79149]
10753
10754 2007-03-27  Mike Kestner  <mkestner@novell.com>
10755
10756         * ThemeWin32Classic.cs : update StateImageList selection to mirror
10757         the ms behavior when only one image is added to the list.
10758         [Fixes #81191]
10759
10760 2007-03-27  Jackson Harper  <jackson@ximian.com>
10761
10762         * TextControl.cs: Improvements to non multiline line ending
10763         drawing/measuing.
10764
10765 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
10766
10767         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
10768
10769 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
10770
10771         * NotifyIcon.cs: 
10772         - Balloon message handling added.
10773         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
10774
10775         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
10776         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
10777         to SystrayBalloon to me like other Systray method, also a
10778         handle parameter added.
10779
10780 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10781
10782         * ListView.cs: Show scrollbars even when items.Count == 0
10783         but the columns Width is bigger than the ListView.Width.
10784         Also, when columns.Count == 0 set layout_wd and layout_ht
10785         to the ClientRectangle values, so we don't show any scrollbar
10786         in that case.
10787
10788 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
10789
10790         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
10791
10792 2007-03-27  Jackson Harper  <jackson@ximian.com>
10793
10794         * RichTextBox.cs: The RTF library decodes the text properly for us
10795         now.
10796
10797 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10798
10799         * ListView.cs: Display HeaderControl even when columns.Count == 0.
10800         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
10801         ListView header (HeaderControl), instead of Control.BackColor.
10802
10803 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
10804
10805         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
10806         Fixes tab control issues where controls would not show up because they
10807         never received their OnVisibleChanged call.
10808
10809 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
10810
10811         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
10812         BalloonTipShown).
10813
10814 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
10815
10816         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
10817         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
10818         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
10819         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
10820         the handle.  Fix WindowState by using the internal variable until we are 
10821         sure that we've been shown.
10822         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
10823         max or min.
10824         [Fixes bug #81198]
10825
10826 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10827
10828         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
10829           (at least borders). Fixes #79386 on Linux (with a small difference
10830           in behaviour: when trying to resize a caption-less window metacity
10831           shows the sysmenu. Resizing is still possible though).
10832         * XplatUIWin32.cs: When setting window styles send request an extra
10833           WM_NCCALCSIZE when it's a form without title (due to no text and no
10834           caption), since Win32 seems to calculate it wrong the first time we
10835           get the message, though the second time things work as they should.
10836         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
10837           newly reparented window might show up unparented. Update
10838           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
10839           there's no title text. Fixes #79386.
10840
10841 2007-03-27  Mike Kestner  <mkestner@novell.com>
10842
10843         * ListBox.cs : don't perform invalidations if the handle hasn't been
10844         created.  [Fixes #80753]
10845
10846 2007-03-27  Mike Kestner  <mkestner@novell.com>
10847
10848         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
10849         [Fixes #80428]
10850
10851 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
10852
10853         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
10854         needed to implement Balloon.
10855
10856 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10857
10858         * ListViewItem.cs: In the constructors that take
10859         an array of strings, don't use ListViewSubItemCollection.AddRange
10860         method to add items, since we need to have a different behaviour (in
10861         the constructors we add an item for each null string, opposed to
10862         the behaviour of AddRange, which adds nothing).
10863
10864 2007-03-26  Andreia Gaita  <avidigal@novell.com>
10865
10866         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
10867
10868 2007-03-26  Jackson Harper  <jackson@ximian.com>
10869
10870         * TextControl.cs: Draw and measure line endings when in non
10871         multiline mode.
10872         - When searching the text, count the end of the last line as a
10873         word boundary.
10874
10875 2007-03-26  Jackson Harper  <jackson@ximian.com>
10876
10877         * RichTextBox.cs: The selection_start and selection_end don't
10878         really track the correct tags for the selection. So we'll manually
10879         compute the correct tag here.
10880
10881 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10882
10883         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
10884           and Continuous styles. Fixes #79469.
10885
10886 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
10887
10888         * ToolStrip.cs: Implement Tooltips.
10889         * ToolStripItem.cs: Create internal method for determining tooltip.
10890
10891 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
10892
10893         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
10894
10895 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
10896
10897         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
10898         it prevents a problem thak keeps icon visible after application 
10899         closes on win32.
10900
10901 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
10902
10903         * NotifyIcon.cs: Balloon properties and methods created.
10904
10905         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
10906         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
10907
10908 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
10909
10910         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
10911
10912 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
10913
10914         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
10915         parameter indicates which aspects were explicit/user-set.
10916         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
10917
10918 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
10919
10920         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
10921         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
10922         SmallChange, and Value (2.0).
10923         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
10924
10925 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10926
10927         * ListView.cs: Always set item_control.Width in LayoutDetails
10928         if View is Details. Setting it later in CalculateScrollBars
10929         in a not-so-corner scenario (the sum of columns width is
10930         not bigger than the ListView width when handle is created, and then
10931         that sum gets bigger by increasing the width of the columns)
10932         causes a very weird recursion path (which shouldn't be happening,
10933         since header_control sets it in CalculateScrollBars too). This bug
10934         appeared after Chris' fixes for handle created issues, so probably
10935         it's related to some handle-creation time.
10936
10937 2007-03-23  Chris Toshok  <toshok@ximian.com>
10938
10939         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
10940         case where there's an add row, just so we don't end up in a case
10941         where it's not displayed (this happens when the row is partially
10942         obscured).  Fixes bug #79574.
10943
10944 2007-03-23  Jackson Harper  <jackson@ximian.com>
10945
10946         * TextControl.cs:
10947         * TextBoxBase.cs:
10948         * RichTextBox.cs: Preserve line endings in the lines text buffer,
10949         also added an enum that represents the line ending type. 
10950
10951 2007-03-23  Andreia Gaita  <avidigal@novell.com>
10952
10953         * NumericUpDown.cs: Fix logic so Text and Value properties are not
10954         messed with in every method call, but only from DownButton, 
10955         UpButton, UpdateEditText() and ValidateText. Fixes #80346
10956
10957 2007-03-23  Chris Toshok  <toshok@ximian.com>
10958
10959         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
10960         format objects if the format spec is "".  Fixes bug #80889.
10961
10962 2007-03-22  Miguel de Icaza  <miguel@novell.com>
10963
10964         * ToolStripPanel.cs (Join): added stubs to build PDN3
10965
10966         * Control.cs (AutoScrollOffset): Add.
10967
10968         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
10969         property, its only implemented for Win32, on X11 it defaults to
10970         some hardcoded value.
10971
10972         * ToolStripItem.cs (AllowDrop): Add property
10973
10974 2007-03-22  Mike Kestner  <mkestner@novell.com>
10975
10976         * ListView.cs : in FullRowSelect Details mode, only enable box
10977         selection if the user clicks over the "item" column outside of the
10978         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
10979
10980 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10981
10982         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
10983           handle is not created yet.
10984         * Form.cs: Select: Don't call CreateHandle if the handle is already
10985           created, avoids a stack overflow on Windows when we are recreating
10986           controls.
10987         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
10988           they are made visible, and override AfterTopMostControl to keep
10989           them on top when other controls are brought to front.
10990           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
10991           or force_*scroll_visible is true (old implementation always shows
10992           scrollbars when needed, no matter what auto_scroll was set to).
10993         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
10994           IsHandleCreated check.
10995
10996 2007-03-22  Andreia Gaita  <avidigal@novell.com>
10997
10998         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
10999         row or col separator.
11000         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
11001
11002 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
11003
11004         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
11005
11006 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
11007
11008         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
11009         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
11010         every time. Fixes #80410.
11011
11012 2007-03-22  Chris Toshok  <toshok@ximian.com>
11013
11014         * BindingSource.cs (AddNew): partially implement.
11015
11016         remove a couple of NotImplementedException's
11017         to get bug #81148 closed.
11018
11019 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
11020
11021         [Fixes #80380]
11022         
11023         * Control.cs:
11024         - UpdateCursor method added to update the screen cursor.
11025         - GetAvailableCursor method added to return cursor for enabled tree,
11026         it searches for cursor on control and it's parent's for enabled control.
11027         - Call UpdateCursor method on setter of Cursor property.
11028         - On setter of Enabled call UpdateCursor when it is false, we need to
11029         change cursor to normal (or to this parent cursor) because cursor 
11030         setting theres no effect to disabled controls.
11031         - Some minor source changes to follow the coding style guidelines.
11032
11033         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
11034         controls.
11035
11036 2007-03-22  Chris Toshok  <toshok@ximian.com>
11037
11038         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
11039         generates.
11040
11041 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11042
11043         * XplatUIX11.cs: Implement default locations for forms.
11044         * Form.cs: Completely rework startup location for forms. Fixes #79964.
11045         * Hwnd.cs: Add previous_child_startup_location (to track the current
11046           startup location for any child forms of the current form) and
11047           previous_main_startup_location (to track the startup location for
11048           the current toplevel form).
11049
11050 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
11051
11052         * Control.cs: Don't trigger a layout if an implicit control is added
11053         that isn't visible.  Also, don't notify the owner when an implicit control
11054         is added.  (Owners shouldn't even know about their implicit controls.)
11055
11056 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
11057
11058         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
11059         to save some re-layouts.
11060
11061 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
11062
11063         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
11064         [Fixes #81203]
11065
11066 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
11067
11068         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
11069         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
11070
11071 2007-03-21  Mike Kestner  <mkestner@novell.com>
11072
11073         * ListView.cs : disable selection update for non-left button clicks
11074         with mods and over selected items.  [Fixes #80524]
11075
11076 2007-03-20  Jackson Harper  <jackson@ximian.com>
11077
11078         * TextControl.cs:
11079         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
11080         \r\r\n, \n.
11081
11082 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11083
11084         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
11085           very probably a more complicated calculation there. Update the
11086           textbox' ForeColor and BackColor when the ComboBox' colors are
11087           changed. Change the border change in LayoutComboBox to only affect
11088           the textbox, not all the calculations there. Seems to fix most of
11089           #79436.
11090
11091 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11092
11093         * ComboBox.cs: Handle Home and End keys as well as all combinations of
11094           modifiers + navigation keys as input keys, enables advanced text
11095           selection in the combobox (like Shift+Left Arrow for instance).
11096           ComboTextBox now overrides Focused and returns whatever
11097           ComboBox.Focused returns, since it really should be focused
11098           whenever the ComboBox is. Fixes #80795. Also make the border around
11099           the text box one pixel bigger, as mentioned in #79436.
11100
11101 2007-03-20  Jackson Harper  <jackson@ximian.com>
11102
11103         * TreeView.cs: Don't offset the images, this was causing some
11104         artifacts when expanding/collapsing with images that were the
11105         exact height of the treenode.
11106
11107 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11108
11109         * TrackBar.cs: Query the theme for the correct value when the mouse
11110           moves and the thumb is pressed. 
11111         * Theme.cs: Added TrackBarValueFromMousePosition
11112         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
11113           implementation was updating the trackbar value when drawing, now
11114           the drawing methods only draw. Fixes #80900. Refactored the
11115           calculations out to TrackBarValueFromMousePosition and
11116           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
11117           according to the mouse position whenever it wants to. Changed the
11118           light coloured pen when drawing the thumb from ControlLight to
11119           ControlLightLight, because the ControlLight is the same colour as
11120           the background so the 3D effect is lost. 
11121
11122 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
11123
11124         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
11125         defined. Fixes #80784.
11126
11127 2007-03-20  Marek Habersack  <mhabersack@novell.com>
11128
11129         * ContextMenuStrip.cs: align with the change introduced in
11130         revision 74664.
11131
11132 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
11133
11134         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
11135         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
11136         in SetTopmost.
11137
11138 2007-03-19  Chris Toshok  <toshok@ximian.com>
11139
11140         * Control.cs (WmPaint): don't make use of the Handle property
11141         after an event is emitted, as the user could have closed the
11142         form/destroyed the control.  Store the Handle in a local variable
11143         and make use of that.  Fixes bug #80768.
11144
11145 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
11146
11147         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
11148         behavior in X11 environments.
11149
11150 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
11151
11152         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
11153         because on setter of topmost we dont call SetTopmost when handle is not
11154         created.
11155
11156 2007-03-20  Jackson Harper  <jackson@ximian.com>
11157
11158         * TextControl.cs: Need to use SelectionLength () not
11159         selection_length, since that var is reset to -1.
11160         - Draw the caret when we don't have focus.
11161         * TextBox.cs: The selectall actually doesn't occur until the first
11162         focus.
11163         * TextBoxBase.cs: Need to update the caret position after a
11164         selectall.
11165         
11166 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11167
11168         * ListView.cs: Enable scrolling when using Tile view.
11169
11170 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
11171
11172         [Fixes #80902]
11173
11174         * XplatUIDriver.cs: Abstract SetOwner method created.
11175
11176         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
11177         must be implemented and was masked as todo.
11178
11179         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
11180         GWL_HWNDPARENT.
11181
11182         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
11183         cheking for null owner to remove transient. The SetTopmost will be change
11184         on a decond step.
11185
11186         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
11187         SetTopmost. Now owned forms will work properly in win32 and X11.
11188
11189 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11190
11191         * MdiWindowManager.cs: Update function name.
11192         * Form.cs: After closing a form MdiParent is always null.
11193         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
11194           better what it should do: necessary book-keeping when the form is
11195           closed, it should not close the form itself.
11196
11197 2007-03-19  Andreia Gaita  <avidigal@novell.com>
11198
11199         * ListViewItem.cs: Fix back and fore color. The subitems only
11200         use their own colors if they are set, otherwise use the listview's
11201         colors. Don't set default colors on constructor for subitem.
11202         Fixes #79315.
11203
11204 2007-03-19  Mike Kestner  <mkestner@novell.com>
11205
11206         * ListView.cs : make box selection for Details views with 
11207         FullRowSelect conform to MS behavior when clicking in the "item" 
11208         column and clicking outside the defined columns.
11209         [Fixes case 5-6 of #80374]
11210
11211 2007-03-19  Chris Toshok  <toshok@ximian.com>
11212
11213         * ScrollableControl.cs: create the controls from within the ctor,
11214         but don't actually add them until our handle is created.  this
11215         fixes a NRE possibility jpobst found (if you override OnLayout in
11216         a subclass, it's called before your ctor).  Also, add a
11217         IsHandleCreated guard to UpdateSizeGripVisibility as well.
11218
11219 2007-03-19  Jackson Harper  <jackson@ximian.com>
11220
11221         * TextBox.cs: Reduce the amount of invalidation we do.
11222         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
11223         some of them are true by default on MS.
11224         - Add some functions to reduce the amount of invalidates we do.
11225         * TextControl.cs: Less invalidation.
11226
11227 2007-03-19  Chris Toshok  <toshok@ximian.com>
11228
11229         [ Fixes #81773, and *seems* to fix #81553 as well ]
11230
11231         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
11232         AccumulateDestroyedHandles.  We need to do it *after* we send
11233         WM_DESTROY, as the user's code can access Control.Handle in
11234         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
11235         move the WM_DESTROY/zombie handling to before the call to
11236         XDestroyWindow.  For some reason without this ordering
11237         FormTest.RecreateHandle hangs.  This ordering is semantically
11238         equivalent, however, as XDestroyWindow is async anyway.
11239
11240 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
11241
11242         * RichTextBox.cs: Reset backcolor_set after setting default.
11243
11244 2007-03-19  Chris Toshok  <toshok@ximian.com>
11245
11246         * ScrollableControl.cs: the scroll position should not effect the
11247         canvas size.  commit patch from georgegiolfan@yahoo.com, which
11248         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
11249         
11250 2007-03-19  Chris Toshok  <toshok@ximian.com>
11251
11252         * ScrollableControl.cs: clean this up a bit.  create the
11253         scrollbars in the ctor and just show/hide them as needed.  Also,
11254         make hscroll_visible/vscroll_visible internal to Recalculate, and
11255         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
11256         everywhere else.  This seems to fix the scrollbars appearing
11257         beneath the content for me (i have *no* idea why that is,
11258         however.)
11259
11260 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
11261
11262         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
11263         some redundacy for stuff in Anchor and Dock that base will take care of.
11264         [Fixes #80762]
11265
11266 2007-03-19  Mike Kestner  <mkestner@novell.com>
11267
11268         * ListView.cs : make box selection for Details views without 
11269         FullRowSelect dependent on the text bounds, not item bounds.
11270         * ListViewItem.cs : add an internal property to obtain the TextBounds
11271         in Details view.  [Fixes case 1-4 of #80374]
11272
11273 2007-03-19  Andreia Gaita  <avidigal@novell.com>
11274
11275         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
11276         we're < 2.0. #78448 && #80316
11277
11278 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
11279
11280         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
11281         have the same style available as the previously selected one.  Also,
11282         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
11283
11284 2007-03-19  Jackson Harper  <jackson@ximian.com>
11285
11286         * TextControl.cs: Add an alignment property that all new lines
11287         will be given.
11288         - Make sure to use the align shift when calculating the line's X
11289         position.
11290         * TextBox.cs: Set the alignment on the document as well as on all
11291         the document lines.
11292
11293 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11294
11295         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
11296           throw if setting the parent of an mdichild that already has an
11297           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
11298           AssemblyProductAttribute in the assembly, use the type's namespace (as
11299           MS seems to do). CreateControl: don't create the handle if the control
11300           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
11301           create handle if the control is not a form. Change FocusInternal to
11302           virtual so that it can be overriden by Form.
11303         * TextBox.cs: Update call to FocusInternal.
11304         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
11305           form is not a toplevel form when it's a mdi child, so update is_toplevel
11306           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
11307           hasn't been created. Show (IWin32Window): Don't allow this overload for
11308           toplevel windows. CenterToParent/CenterToScreen/Select: create the
11309           handle as MS does. SetVisibleCore: if called on a MdiChild and the
11310           parent isn't visible yet, save the visibility and restore it when the
11311           parent is made visible.
11312         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
11313           methods, since the visibility of the scrollbars can be changed from
11314           several places, not only from AutoScroll.
11315           [Fixes #81179]
11316
11317 2007-03-19  Jackson Harper  <jackson@ximian.com>
11318
11319         * RichTextBox.cs: Enable shortcuts by default.
11320         * TextBoxBase.cs: Add conditional shortcuts.  
11321
11322 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
11323
11324         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
11325
11326 2007-03-19  Chris Toshok  <toshok@ximian.com>
11327
11328         [ Fixes bug #80604]
11329         
11330         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
11331         swallow the message we're waiting on, instead of delivering it, as
11332         this is only used for the WM_SHOWWINDOW raised from
11333         MapWindow/UnmapWindow, and the message needs to be generated
11334         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
11335         before doing the Map/Unmap.  Also make sure that the Hwnd is still
11336         alive after the message has been handled.
11337
11338         *before* the window is shown.
11339
11340         * Control.cs (CreateControl): guard a few more things inside the
11341         if (!is_created) block, as we might end up being called again -
11342         yay .net.
11343         (WmShowWindow): call CreateControl if we're showing the control.
11344
11345 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11346
11347         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
11348           controls without a handle if they have any parent with a handle. In
11349           Dispose add a check whether the handle is created or not before
11350           calling BeginInvoke, this removes the need of the extra disposing
11351           parameter (which was bogus anyway since it didn't prevent the
11352           invoke from happening, it only skipped the check for an existing
11353           handle, meaning that the invoke would call on an inexistent
11354           handle).
11355
11356 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
11357
11358         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
11359         appears in taskbar.
11360
11361 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
11362
11363         * MessageBox.cs:
11364         - Fixed a problem that dont show help button for messages with 3 buttons.
11365         - Refactory button size and position calculations, now dont use fixed 
11366         values, also fixed button sizes (#80043) and form's border space.
11367         - AddButton method created, now all other AddButton methods call this one.
11368         - Some other source code cosmetic changes.
11369
11370 2007-03-18  Jackson Harper  <jackson@ximian.com>
11371
11372         * RichTextBox.cs: Don't do this all fonts must match check if
11373         there is only one char selected.
11374
11375 2007-03-18  Jackson Harper  <jackson@ximian.com>
11376
11377         * TreeView.cs: ScrollWindow works properly now, so we don't need
11378         to screw around with the scroll area.  This fixes some artifacts
11379         when expanding and collapsing.
11380
11381 2007-03-18  Jackson Harper  <jackson@ximian.com>
11382
11383         * TextBoxBase.cs: Allow updating the selection position when the
11384         cursor is outside the textarea, but we have a capture.
11385         * TextControl.cs: A special case for when the cursor is outside
11386         the bounds of the TB.
11387         
11388 2007-03-18  Jackson Harper  <jackson@ximian.com>
11389
11390         * TextBoxBase.cs: Remove image pasting code for now.  There is no
11391         way to get an image on the clipboard right now anyways.
11392         * TextControl.cs:
11393         * RichTextBox.cs: Use the new RTF Picture class for pictures.
11394
11395 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
11396
11397         * MessageBox.cs:
11398         - Set window properties in constructor intead of on CreateParams.
11399         - Remove topmost from Window ExStyle.
11400         - Set ShowInTaskbar to false.
11401         - Set form border to FixedDialog.
11402         - Some cosmetic changes and remove unneeded comments.
11403         - It fixes itens 2,3 and 4 of bug #80043.
11404
11405 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
11406
11407         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
11408         none was explicitly set. Fixes part of bug #79949.
11409
11410 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
11411
11412         * ToolStripComboBox.cs: Add AutoComplete*.
11413
11414 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
11415
11416         * ToolStripComboBox.cs: Add FlatStyle.
11417
11418 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
11419
11420         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
11421         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
11422
11423 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11424
11425         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
11426           CheckBox.cs, RadioButton.cs, BindingSource.cs,
11427           DataGridColumnStyle.cs: Remove warnings.
11428
11429 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11430
11431         * Menu.cs: MergeMenu: Check menu argument for null before looping over
11432           it.
11433         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
11434           visibility of mdi child forms. FormSizeChangedHandler: update the
11435           maximized size if size has changed while maximized.
11436         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
11437           creating the handle.
11438         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
11439           avoid creating the handle if not created.
11440         * XplatUI.cs: Update debug output.
11441         * XplatUIStructs.cs: Added ToString's for a couple of structs.
11442
11443 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
11444
11445         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
11446         ProcessCmdKey().
11447         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
11448         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
11449         Implement keyboard shortcuts.
11450
11451 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
11452
11453         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
11454         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
11455         ColorDialog and all derived classes.
11456
11457 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
11458
11459         [ Fixes bug #79828 ]
11460
11461         * ToolBar.cs:
11462         - Rename ToolBarButtonInfor to ToolBarItem.
11463         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
11464         - Maintain an array of ToolBarItem, used instead of ToolBarButton
11465         collection to be able add same button more than one time on a toolbar.
11466         - Refactory all properties and methods to use ToolBarItem. 
11467
11468         * ToolBarButton.cs: 
11469         - Remove all propeties and methods that is now in ToolBarItem.
11470         - Rectangle propery now gets the rectangle from first ToolBarItem to
11471         mimic win32 behavior.
11472         - Size calculation and layout methods also removed.
11473
11474         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
11475         ToolBarItem instead of ToolBarButton to right drawing buttons when
11476         same button/separator was added more than one time to ToolBar.
11477
11478         * ThemeNice.cs: Same as above. 
11479
11480 2007-03-15  Andreia Gaita  <avidigal@novell.com>
11481
11482         * XplatUIX11.cs: Fire extra MouseMove events right after
11483         MouseDown and MouseUp, emulating win32's <censored> behaviour
11484         for apps that rely on it.
11485
11486 2007-03-15  Jackson Harper  <jackson@ximian.com>
11487
11488         * TextControl.cs:
11489         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
11490         it is drawn on the controls client window and there is no NC
11491         area.
11492         - Set the background color to gray on 2.0 when we are readonly.
11493
11494 2007-03-15  Chris Toshok  <toshok@ximian.com>
11495
11496         [ Fixes bug #81144 ]
11497         
11498         * XplatUIX11.cs: implement VirtualScreen independently of
11499         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
11500         property.
11501
11502 2007-03-15  Chris Toshok  <toshok@ximian.com>
11503
11504         * Hwnd.cs: add an internal field for the cached_window_state.
11505
11506         * XplatUIX11.cs: cache the window state, invalidating the cache
11507         (and thus re-querying the X server) only when we see an update to
11508         the _NET_WM_STATE property.
11509
11510 2007-03-15  Chris Toshok  <toshok@ximian.com>
11511
11512         * BindingSource.cs: get a lot of the unit tests working.
11513
11514 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
11515
11516         * Control.cs: Modify UpdateStyles to store distances when bounds >=
11517         0 instead of just bounds > 0.  [Fixes bug #80912]
11518
11519 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
11520
11521         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
11522         and methods.
11523
11524 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
11525         
11526         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
11527         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
11528         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
11529         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
11530
11531 2007-03-15  Chris Toshok  <toshok@ximian.com>
11532
11533         [ Fixes #81101 ]
11534         
11535         * Control.cs: add Ivan's fix for 81101, with a slight modification
11536         - you can set control.Target to null.
11537
11538 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
11539
11540         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
11541         HideDropDown, use Hide instead to prevent an NRE.
11542         [Fixes bug #81147]
11543
11544 2007-03-14  Jackson Harper  <jackson@ximian.com>
11545
11546         * TextBoxBase.cs: Mess with the creation stuff a little. We need
11547         to calculate the document before the handle is created, in some
11548         cases. (Actually just one case).
11549
11550 2007-03-14  Jackson Harper  <jackson@ximian.com>
11551
11552         * TextBoxBase.cs: Need to display the caret after letting the base
11553         wndproc handle the focus methods, because the caret display
11554         methods check the focus state.
11555         - Try to display the caret after updating it's position with SelectWord.
11556         - Don't need to do an immediate update on this recalc, since there
11557         will be an invalidate anyways.
11558
11559 2007-03-14  Jackson Harper  <jackson@ximian.com>
11560
11561         * TreeView.cs: Some workarounds so that we can match event order a
11562         little better.
11563
11564 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
11565
11566         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
11567         #80803. Avoid NullReferenceException when Control does not have
11568         parent. Fixed different blinkstyle issues. Only subscribe to Tick
11569         event a single time. Only draw error icon when control is created and
11570         visible. Fixes failing unit tests.
11571
11572 2007-03-14  Andreia Gaita  <avidigal@novell.com>
11573
11574         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
11575         Selecting events. Fire Leave and Enter events when changing tabs.
11576
11577 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
11578
11579         * TreeView.cs: Add TreeViewNodeSorter.
11580         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
11581
11582 2007-03-14  Chris Toshok  <toshok@ximian.com>
11583
11584         * Form.cs: go ahead and remove the RecreateHandles that jpobst
11585         removed earlier and I had him add back it.  It turns out metacity
11586         *does* in fact handle the MOTIF_WM_HINTS property changing, it
11587         just doesn't redraw the window titlebar until you resize the
11588         window.  This also means we aren't recreating the entire window
11589         hierarchy on X when you change this property.  And it looks better
11590         on windows, too.
11591
11592 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11593
11594         * ListViewItem.cs:
11595         * ListView.cs: Collecting selection information
11596         is now done in SelectedIndexCollection rather than in
11597         SelectedListViewItemCollection. This is done so we can
11598         have the selection information code in one single place
11599         (virtual mode selection information entirely depends on
11600         SelectedIndexCollection).
11601
11602 2007-03-13  Miguel de Icaza  <miguel@novell.com>
11603
11604         * ErrorProvider.cs: Add stubs for ISupportInitialize
11605
11606 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11607
11608         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
11609         in the right order with the right values, from the Checked property, 
11610         just as MS does (instead of triggering them from ListView).
11611
11612         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
11613
11614 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11615
11616         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
11617         the correct handler in OnItemCheck method (ItemCheckEventHandler 
11618         instead of EventHandler). This used to throw an InvalidCastException.
11619
11620 2007-03-13  Jackson Harper  <jackson@ximian.com>
11621
11622         * TextBoxBase.cs: Calculate the document before the handle is
11623         created, so there isn't an extra invalidate called.
11624
11625 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
11626
11627         * Form.cs: Don't set owner in ShowDialog until we are sure
11628         that we aren't going to throw an exception.  [Fixes bug #80773]
11629
11630 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
11631
11632         * TreeView.cs: Make it compile.
11633
11634 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
11635
11636         * Control.cs: Another place we don't call SizeFromClientSize.
11637         * Form.cs: Another place we don't call SizeFromClientSize.
11638         [Fixes bug #81125]
11639
11640 2007-03-12  Jackson Harper  <jackson@ximian.com>
11641
11642         * TreeView.cs: Basically emulating some strangness here with
11643         exanding nodes and setting node positions when windows aren't
11644         created.
11645         - Also attempting to walk the node tree less than previously, and
11646         just use visible order calculations for determining offsets.
11647         - oops made scrolling backwards.
11648         * TreeNode.cs: We need to start nodes with a zero visible order,
11649         because the order calcs are based on the first nodes order.
11650
11651 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
11652
11653         * Form.cs: Don't exit the program if RecreateHandle is called on
11654         the main form.
11655
11656 2007-03-12  Chris Toshok  <toshok@ximian.com>
11657
11658         * XEventQueue.cs: remove the use of PostQuitState.
11659
11660         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
11661         WM_QUIT message in GetMessage, return false (and if we're in the
11662         nested WaitForHwndMessage, repost the WM_QUIT message).
11663
11664 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
11665
11666         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
11667         or the MaximizeBox properties.  [Part of bug #80640]
11668
11669 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
11670
11671         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
11672         no links.
11673
11674 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
11675
11676         * ToolStripItem.cs: Fix some tests I broke by checking Visible
11677         instead of visible.
11678
11679 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
11680
11681         * FileDialog.cs: Use text of File name combobox to determine what
11682         files the user selected. Added tokenizer to parse the file names.
11683         Fixes bug #81123.
11684
11685 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
11686
11687         * Control.cs: We can't call SizeFromClientSize in the constructor,
11688         but we still need to do the same work, so make an internal version.
11689         [Fixes bug #80621]
11690
11691 2007-03-12  Jackson Harper  <jackson@ximian.com>
11692
11693         * TreeView.cs:
11694         * TreeNode.cs:
11695         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
11696         IsExpanded.
11697
11698 2007-03-12  Jackson Harper  <jackson@ximian.com>
11699
11700         * TextBoxBase.cs: Now that the handles are being created a little
11701         later, we need to make sure that the document is recalculated when
11702         the handle is created.
11703
11704 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
11705
11706         * Theme.cs: GetLinkFont abstract method added.
11707         
11708         * LinkLabel.cs: 
11709         - Remove CalcTrimRectangle, no longer needed.
11710         - Factor also remove, position issues must be fixed in libgdiplus.
11711         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
11712         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
11713         care about font used to draw links.
11714         - Set TabStop to true when control is "Selectable", control is selectable
11715         when have one or more links. Fixes #80501 (test case is also added).
11716         - Set the LinkArea values after links change, LinkArea values must be
11717         based in first link position and size, a test case was created.
11718         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
11719         the attribute must be true LinkArea.Length > 0. The same was applied to
11720         TabStop.
11721         
11722         * ThemeWin32Classic.cs: 
11723         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
11724         in draw method.
11725         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
11726         color change.
11727         - Draw focus rectangle for every parts focused, including parts that 
11728         is on another line, its because regions returns various rectangles
11729         and not only one. Needed to mimic W32 look.
11730         - Uses Graphics.Clip to delimite region painted, it mean that now 
11731         complete text is passed to DrawString, with this we solve layout
11732         issues without create another text renderer.
11733         - Uses Region.Intersect to fix some flickers problems, now only needed
11734         parts will redrawed.
11735         - This changes fixes #79614 and some other unreported issues, on Linux 
11736         some layout problems still remain, the problem is under 
11737         MeasureCharacterRanges but it is an libgdiplus bug.
11738
11739 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
11740
11741         * TextBox.cs: Set for foreground color.
11742         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
11743         this is already done in Control.
11744
11745 2007-03-10  Jackson Harper  <jackson@ximian.com>
11746
11747         * TextBox.cs: Set the background color, but reset the
11748         backcolor_set flag which is just for the user setting the
11749         background color.
11750
11751 2007-03-09  Chris Toshok  <toshok@ximian.com>
11752
11753         * Control.cs: really remove the call to XplatUI.SetVisible from
11754         CreateHandle(), like I said I did when I merged the branch.
11755
11756         * BindingSource.cs: implement some more of this stuff.
11757
11758 2007-03-09  Jackson Harper  <jackson@ximian.com>
11759
11760         * TextBox.cs: Don't explicitly set our background colors.
11761         * TextControl.cs:
11762         * TextBoxBase.cs: Draw readonly text.
11763         - Need to invalidate when backcolor or readonly are changed.
11764         
11765 2007-03-09  Jackson Harper  <jackson@ximian.com>
11766
11767         * TextBoxBase.cs: Don't set the forecolor until the handle is
11768         created.
11769         - Do not raise OnPaint, and removed some old debug code.
11770
11771 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
11772
11773         * ScrollableControl.cs: Fix mouse wheel scrolling.
11774
11775 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
11776
11777         * Control.cs: Wire up MouseDoubleClick event.
11778
11779 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
11780
11781         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
11782         top or bottom.
11783         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
11784         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
11785         item is added.  This logic was moved to ToolStrip.OnItemAdded.
11786         [Fixes bug #81090]
11787
11788 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11789
11790         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
11791
11792 2007-03-08  Jackson Harper  <jackson@ximian.com>
11793
11794         * TreeView.cs: Show the correct image for selected node (this used
11795         to work, not sure how the code got deleted). Also implemented 2.0 feature
11796         SelectedImageKey.
11797
11798 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11799
11800         * ListView.cs:
11801         * ListViewItem.cs: Cache index in items when retrieving them
11802         in VirtualMode.
11803
11804 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
11805
11806         * ToolStripItem.cs: Don't return the explicit_size if we are using 
11807         AutoSize.  Fixes invalidation issue when user has explicitly set a
11808         size and has AutoSize = true.
11809
11810 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
11811
11812         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
11813
11814 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
11815
11816         * DataGridView.cs: Remove event handler from DataView when a
11817         DataTable is used as DataSource.
11818
11819 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
11820
11821         * Control.cs: Create internal setter for client_size to allow it to be
11822         set without triggering resizing code.
11823         * Form.cs: Calculate client_size in constructor, only change client_size
11824         in FormBorderStyle property if Handle has been created.
11825         [Fixes #80574, #80791]
11826
11827 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
11828
11829         * SystemInformation.cs: Add TerminalServerSession.
11830
11831 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
11832
11833         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
11834         TreeView code.
11835
11836 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
11837
11838         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
11839         Handle before we were supposed to.  Now checks ActivateOnShow property
11840         in Control.
11841         * Control.cs: Add internal ActivateOnShow property.
11842         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
11843         for ActivateOnShow.
11844         * Hwnd.cs Remove no longer needed no_activate field.
11845
11846 2007-03-07  Jackson Harper  <jackson@ximian.com>
11847
11848         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
11849         2.0 properties
11850         * DrawTreeNodeEventHandler.cs: Add
11851         * DrawTreeNodeEventArgs.cs: Correct default value.
11852         
11853 2007-03-07  Chris Toshok  <toshok@ximian.com>
11854
11855         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
11856         to be called before NativeWindow.WndProc.  Put the HwndCreating
11857         magic there to hook up our Hwnd's to handles.
11858
11859 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
11860
11861         * DataGridView.cs: Comment out debug code.
11862
11863 2007-03-07  Chris Toshok  <toshok@ximian.com>
11864
11865         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
11866         to make the rest of the world happy]
11867
11868         * Control.cs (CreateHandle): there's no need to call
11869         XplatUI.SetVisible here, it's effectively done by
11870         XplatUI.CreateWindow on X now, and always was on windows.
11871
11872         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
11873         shortcircuit out of the loop if we have a message loop running on
11874         this thread.
11875
11876         [Changelog from merge]
11877
11878         2007-03-05  Chris Toshok  <toshok@ximian.com>
11879
11880                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
11881                 causes handle creation.
11882
11883         2007-02-28  Chris Toshok  <toshok@ximian.com>
11884
11885                 * ApplicationContext.cs: Add a flag to make sure we only raise the
11886                 ThreadExit event once (ExitThreadCore can be indirectly called
11887                 from a few places.)  I don't like the additional flag, but it
11888                 makes the event ordering/count correct.
11889
11890                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
11891                 without locking the collection.  An enumerator doesn't give us any
11892                 protection from modification anyway.  Lock the thread hash and
11893                 replace the complicated enumerator loop with a foreach.
11894                 (Application.CloseForms): make internal so it can be called from
11895                 ApplicationContext.  This should probably be moved to MWFThread.
11896                 (Application.ExitThread): don't call MWFThread.Current.Exit()
11897                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
11898                 when the runloop exits (in response to WM_QUIT.)
11899                 (Application.RunLoop): add a comment (and check) for
11900                 context.MainForm being null after setting context.MainForm.Visible
11901                 = true.  This is because you're perfectly free to dispose of a
11902                 form in VisibilityChanged.  Chalk this up to another case where we
11903                 need to synchronously generate WM_ACTIVATE from Control.Show.
11904                 Also, add handling for WM_QUIT here so we'll exit the loop.
11905                 
11906                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
11907                 fact that we don't wait if we're only unmapping the whole_window
11908                 makes me a bit nervous, but it doesn't seem to cause any problems
11909                 yet.
11910
11911                 also, add a comment about the stupid, broken and wrong resetting
11912                 of PostQuitState to false in GetMessage().
11913
11914                 In PostQuitMessage, we need to add a WM_QUIT message to the
11915                 thread's queue.  We use the FosterParent to get the right
11916                 handle/hwnd/queue.
11917
11918                 Lastly, in SetVisible, we need to unmap both windows, since the
11919                 waiting only happens when we're unmapping the client window.  So
11920                 now, the *only* time we unmap just the whole_window is in the hack
11921                 for resizing a control to 0,0.
11922                 
11923         2007-02-21  Chris Toshok  <toshok@ximian.com>
11924
11925                 * Application.cs (CloseForms): rewrite this so that we don't
11926                 modify the list while we're traversing it.
11927
11928         2007-02-20  Chris Toshok  <toshok@ximian.com>
11929
11930                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
11931                 of OnHandleCreated.
11932                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
11933                 handle is created.  otherwise we'll create it here.
11934                 (VerticalScrollEvent): same here.
11935
11936                 * Application.cs (CloseForms): call Form.Dispose, don't post
11937                 WM_CLOSE_INTERNAL.
11938
11939                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
11940                 here. Application should Dispose() of the Form's.
11941
11942                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
11943                 WM_DESTROY as well.
11944                 (MapWindow,UnmapWindow): only actually do the waiting for
11945                 SHOWWINDOW if the control we're dealing with is a Form.
11946                 (CreateWindow): if the control isn't a form, SendMessage
11947                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
11948
11949                 * Control.cs (SetVisibleCore): always use is_visible here, not
11950                 value.  If we use value, we can end up re-setting something
11951                 visible if, for instance, you do Control.Hide() in a delegate
11952                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
11953
11954         2007-02-20  Chris Toshok  <toshok@ximian.com>
11955
11956                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
11957                 the message we need.  PeekMessage returning false should not be a
11958                 condition under which we exit the loop.
11959
11960         2007-02-15  Chris Toshok  <toshok@ximian.com>
11961
11962                 * Control.cs (Refresh): only refresh if we've got a handle and are
11963                 visible.
11964                 (CreateAccessibilityInstance): CreateControl() here.
11965                 (UpdateChildrenZOrder): complicate the code loop even more by
11966                 taking into account controls that haven't had their handle
11967                 created, and those that aren't visible.  But on the flip side,
11968                 simplify the code by splitting it into two loops.  one which
11969                 builds up the list of child controls we're interested in, and the
11970                 other that sets the z order of those children.
11971
11972         2007-02-14  Chris Toshok  <toshok@ximian.com>
11973
11974                 * Control.cs: Control.AccessibilityObject causes the control to be
11975                 created, not just the handle.
11976
11977         2007-02-14  Chris Toshok  <toshok@ximian.com>
11978
11979                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
11980                 problem on X where a window might have its handle created (and be
11981                 visible) while the window is unmapped.  calling XConfigureWindow
11982                 on an unmapped window is bad, and generates X errors.
11983
11984         2007-02-13  Chris Toshok  <toshok@ximian.com>
11985
11986                 * Control.cs (CreateHandle): don't loop over our children setting
11987                 their parent here.  do it when in WndProc when we're shown.
11988                 (UpdateChildrenZOrder): make this internal so we can call it from
11989                 ScrollableControl.
11990                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
11991                 creating its handle.  Also, remove the calls to PerformLayout from
11992                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
11993                 OnVisibleChanged only seems to be called directly here for the
11994                 toplevel control.  It's propagated down the window hierarchy by
11995                 calls to child.OnParentVisibleChanged.
11996                 (OnVisibleChanged): don't do layout here - it's done (oddly
11997                 enough, according to a glance at stack traces on ms.net..) in
11998                 ScrollableControl.
11999                 
12000                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
12001                 z order of our children before calling PerformLayout.
12002
12003         2007-02-12  Chris Toshok  <toshok@ximian.com>
12004
12005                 [big change, fixes #80020]
12006                 
12007                 * AccessibleObject.cs: we need to make owner internal again to fix
12008                 some of ControlAccessibleObject.
12009
12010                 * Control.cs: lots of changes here.  add support for WM_CREATE,
12011                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
12012                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
12013                 we create child controls.  leave the MonoTODO's for the
12014                 accessibility calls, but fix the exceptions so the tests pass.
12015
12016                 Add the InvalidOperationExceptions to Invoke methods, and remove a
12017                 couple of InvokeInternal methods we aren't using.
12018                 
12019                 Also, add a couple of CreateHandle calls in places where we know
12020                 the handles are being created but our code doesn't reference
12021                 .Handle.
12022
12023                 Make SetVisibleCore call OnVisibleChange if the handle isn't
12024                 created.  If the handle is created, we rely on XplatUI.SetVisible
12025                 generating the event synchronously.
12026                 
12027                 Lastly, make sure we don't use this.Handle inside CreateHandle,
12028                 because we can call back into client (and that code can dispose of
12029                 the control).
12030
12031                 * XplatUIStructs.cs: misc/cleanup.
12032
12033                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
12034                 although we don't populate the wParam properly.
12035                 (CreateWindow): generate WM_CREATE.
12036                 (MapWindow,UnmapWindow): make these calls synchronous, at great
12037                 performance expense (particularly in the unmap case), to match
12038                 win32 behavior.
12039
12040                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
12041                 to call it.
12042                 (set_MdiParent): don't recreate the handle unless it's been
12043                 created already.
12044                 
12045                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
12046                 it's created.
12047
12048                 * NativeWindow.cs: this is probably the weirdest part of the
12049                 patch.  We need a way to link up the window being created to the
12050                 WM_CREATE message.  Since we can only be creating one window at a
12051                 time on a given thread, we keep track of a per-thread reference so
12052                 we can dispatch it properly.  We also need to keep track of the
12053                 Hwnd currently being created so that the win32 backend doesn't
12054                 have problems.
12055                 
12056                 * XplatUIWin32.cs: a similar change to the one we made in
12057                 NativeWindow.cs.
12058
12059 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
12060
12061         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
12062         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
12063         to draw the menu shortcut string.
12064
12065 2007-03-07  Jackson Harper  <jackson@ximian.com>
12066
12067         * TreeNode.cs: Add the 2.0 collapse method.
12068
12069 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
12070
12071         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
12072
12073 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
12074
12075         * DataGridView.cs: Change DataSource will clear column and row
12076         lists. Call Invalidate() to reflect DataSource change.
12077
12078 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
12079
12080         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
12081         and a new row is added to it.
12082
12083 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
12084
12085         * DataGridView.cs: Add columns when DataSource is en empty list but
12086         is a System.Data.DataView (from a System.Data.DataTable).
12087
12088 2007-03-06  Andreia Gaita  <avidigal@novell.com>
12089
12090         * Label.cs: Implement AutoEllipsis (2.0)
12091
12092 2007-03-06  Jackson Harper  <jackson@ximian.com>
12093
12094         * TreeView.cs: Implement 2.0 TopNode setter property.
12095         - Use a local var instead of the skipped_nodes field for computing
12096         how many nodes to skip.  Otherwise we won't scroll because the
12097         valuechanged handler checks if skipped_nodes is equal to the new
12098         value.
12099         - Implement 2.0 Sort method.
12100         - Add useless 2.0 DoubleBuffer property
12101         - Implement 2.0 LineColors property.  Lets you change the color of
12102         the lines in the tree. Terribly useful for creating non cohesive
12103         desktops.
12104         - Implement 2.0 image key feature.
12105
12106 2007-03-06  Jackson Harper  <jackson@ximian.com>
12107
12108         * TreeView.cs: We can't get the bounds of the nodes before raising
12109         the AfterSelect event, because that event could change the node's
12110         bounds (scrolling, font change, etc).
12111
12112 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12113
12114         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
12115         * Form.cs: Don't recreate handle when creating FormWindowManager, just
12116           update window styles. In CreateParams us VisibleInternal instead of
12117           VIsible to get the actual visible flag set for this form.
12118         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
12119           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
12120           handle the case when the form is already maximized, in which case
12121           it should be restored. Fixes #81043.
12122
12123 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12124
12125         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
12126
12127 2007-03-05  Jackson Harper  <jackson@ximian.com>
12128
12129         * TreeViewHitTestInfo.cs: implement.
12130
12131 2007-03-05  Jackson Harper  <jackson@ximian.com>
12132
12133         * InternalWindowManager.cs: class status fix.
12134
12135 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12136
12137         * InternalWindowManager.cs: All windows that have a parent
12138         are confined to their parent when they're being moved.
12139         Fixes #80822.
12140
12141 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
12142
12143         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
12144         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
12145
12146 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12147
12148         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
12149           buttons invisible before deciding which ones should be visible
12150           (fixes minimize/maximize buttons showing up in toolwindows). Remove
12151           an unused variable.
12152         * InternalWindowManager.cs: Remove warning.
12153
12154 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12155
12156         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
12157         to throw an InvalidOperationException is virtual mode is being used.
12158
12159 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
12160
12161         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
12162         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
12163         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
12164         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
12165         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
12166         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
12167
12168 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12169
12170         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
12171           driver.KeyboardDelay from XplatUI.KeyboardDelay 
12172         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
12173           (patch by Sergey Volk)
12174
12175 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12176
12177         * ToolWindowManager.cs: Added, contains logic for
12178           tool windows.
12179         * CreateParams.cs: Add a few helper methods and an
12180           internal variable to know which control the CreateParams belongs
12181           to.
12182         * Control.cs: Call Form.ChangingParent when the
12183           parent is about to be changed.
12184         * XplatUIX11.cs: DeriveStyles (): Set
12185           caption_height for all windows that have captions and are children.
12186           Update to use ToolWindowManager instead of InternalWindowManager
12187           for ToolWindows.
12188         * XplatUIWin32.cs: Set fake window styles for all
12189           windows that have window managers.
12190         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
12191           now duplicated for mdi windows when they are
12192           maximized, first for the buttons the window itself has, then for
12193           the buttons that appear in the menu bar. Makes things a little
12194           easier). Updated UpdateWindowDecorations, SetWindowState and the
12195           mouse eventhandlers accordingly.
12196         * Form.cs: Add ChangingParent (), contains the
12197           logic of what should happen when the parent changes. In MdiParent
12198           don't set things that ChangingParent () is doing. When handling
12199           WM_CLOSE, we can close the form if there are any other modal forms
12200           and the current form is a descendent of the modal form.
12201         * InternalWindowManager.cs: A lot of refactoring,
12202           the title buttons are now extracted to a separate container class
12203           that takes care of all button code (clicks, tooltips, etc). Moved
12204           Iconic|Maximized|Normal Bounds properties to this class from
12205           MdiWindowManager, so that the window state logic can succeed for
12206           other than mdi wm's. Implemented general window state change logic.
12207           Moved CreateButtons to ThemeWin32Classic, since the theme might
12208           override which buttons are available when as well as the exact
12209           location.
12210         * FormWindowManager.cs: Added, contains logic for
12211           normal forms.
12212         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
12213           which buttons go where (and if they are at all visible). 
12214           Removed special handling of maximized windows, since they aren't special. 
12215           In DrawManagedWindowDecorations don't try to draw the text if it is
12216           empty.
12217         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
12218           use whatever the wm gives us.
12219
12220 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
12221
12222         * ButtonBase.cs: Add 2.0 properties.
12223         * Button.cs: Override Draw for 2.0.
12224         * Control.cs: Add Entered and Selected properties.
12225         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
12226         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
12227         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
12228         buttons.
12229         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
12230
12231 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
12232
12233         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
12234
12235 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
12236
12237         * XplatUIWin32.cs: Register a new class with Windows each time we get
12238         a new ClassStyle.  [Fixes bugs #79432, #80817]
12239         * Controls.cs: Set the correct ClassStyle in CreateParams.
12240         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
12241
12242 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
12243
12244         * ListView.cs: Add fireEvent argument to ReorderColumn since the
12245         ColumnReordered event must not be signaled when modifying DisplayIndex
12246         of a ColumnHeader. Added internal ReorderColumns method which takes
12247         care of drawing, and updating the internal DisplayIndex of the
12248         ColumnHeader. Added AddColumn method which is invoked from
12249         ColumnHeaderCollection when adding or inserting columns, and which
12250         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
12251         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
12252         Recalculated dispay indices after removing a ColumnHeader.
12253         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
12254         match MS. Allows last display index to be returned after ListView
12255         is disposed. Update actual location of ColumnHeader when DisplayIndex
12256         is modified.
12257
12258 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
12259
12260         * LinkLabel.cs: Improve CalcTrimRectangle.
12261         
12262         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
12263
12264 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
12265
12266         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
12267         get rectangle as a result value.
12268
12269 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
12270
12271         * LinkLabel.cs: Theres some diferences between rectangle return from 
12272         MeasureCharacterRanges and the area used for DrawString to fix this 
12273         CalcMeasurementFactor method was created, it calcules the diferences
12274         to be use later to adjust rectangle in draw operations. Fixes #80473.
12275         
12276         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
12277         to adjust draw rectangle.
12278
12279 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
12280
12281         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
12282         text and some other changes to reduce and optimize source code.
12283
12284 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
12285
12286         * RadioButton.cs: Implement 2.0 event.
12287         * RelatedImageListAttribute.cs: Implement new class.
12288
12289 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
12290
12291         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
12292
12293 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
12294
12295         * CheckBox.cs: Implement 2.0 functionality.
12296
12297 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12298
12299         * ListView.cs: Refactor Add and AddRange methods of
12300         ListViewItemCollection, to not update the ListView
12301         everytime an item is added in AddRange. Also move the update
12302         code to a new CollectionChanged method, and call it
12303         from other methods that need it as well (this should also fix some
12304         bugs when Sorting is used).
12305
12306 2007-02-27  Jackson Harper  <jackson@ximian.com>
12307
12308         * TextControl.cs: Try to never let the caret stay in a non-text
12309         tag.
12310         * TextBoxBase.cs: Update the caret.
12311
12312 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
12313
12314         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
12315         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
12316         delete POINT structure, duplicate of one in XplatUIStructs.
12317         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
12318
12319 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
12320
12321         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
12322         edit box since otherwise the Label would immediately be set (even if
12323         the user did not modify the label). In OnKeyDown set Handled to true
12324         if Return or Escape was pressed. In ColumnHeaderCollection unlink
12325         columns that are to be removed. In ListViewItemCollection unlink items
12326         that are to be removed.
12327
12328 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
12329
12330         * TextRenderer.cs: If we set a GDI clip region, we need to clear
12331         it when we are done.  [Fixes bug #80949]
12332
12333 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
12334
12335         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
12336
12337 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12338
12339         * ListView.cs: I forgot to commit the changes for ListView 
12340         in my previous patch.
12341
12342 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
12343
12344         * Clipboard.cs: Partially implement an overload of SetDataObject.
12345         * Form.cs: Implement ShowWithoutActivation.
12346         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
12347
12348 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12349
12350         This is a first set of changes to make the Virtual mode works,
12351         by avoiding the retrieval of ListViewItem instances until
12352         draw time.
12353
12354         * ListView.cs: Store item position in the ListView instead of the
12355         ListViewItem, this way we don't request the Bounds property of
12356         ListViewItem inside the ListView calculations, as well as cache the item
12357         size in item_size field. Store indexes instead of ListViewItem
12358         instances in the matrix used by icon view. Add a ItemMatrixLocation
12359         struct to hold the row and col info of the matrix info.
12360
12361         * ListViewItem.cs: Don't store the location anymore, and only cache
12362         the rectangles for GetBounds. Use the ListView.GetItemLocation
12363         method to retrieve the actual location.
12364
12365 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
12366
12367         * TextRenderer.cs: Add clipping support, thanks to George.
12368         [Fixes bug #80949]
12369
12370 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
12371
12372         * ListViewItem.cs: Cancel label edit when item is removed from 
12373         ListView.
12374         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
12375         event before the edit textbox is displayed.  Added CancelEdit method
12376         which is used end to editing while ignoring the value set by the
12377         user. In EndEdit, set focus to ListView to avoid losing focus to
12378         other controls. In ListViewItemCollection.Clear, cancel editing of
12379         any of the items.  In Remove, cancel editing of item being removed.
12380         Avoid udplicate code by modifing RemoveAt to invoke Remove.
12381
12382 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
12383
12384         * FileDialog.cs: Update FSEntry when move is successful. Fixes
12385         bug #80948.  
12386
12387 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
12388
12389         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
12390         compatible with non X11 systems. Fixes #80901.
12391
12392 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
12393
12394         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
12395         whether the item should be unselected and reselect. We do no want this
12396         when we're starting to edit the label. Do not fire the 
12397         SelectedIndexChanged event from ListView when its already been fired
12398         by modifying ListViewItem.Selected. Fixes bug #80943.
12399
12400 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
12401
12402         * TextRenderer.cs: Previos commit logic was backwards.
12403
12404 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
12405
12406         * TextRenderer.cs: Don't add padding on MeasureText if we were
12407         sent the NoPadding flag.
12408
12409 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
12410
12411         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
12412         after DrawButton. To prevent image overlaps button borders SetClip and 
12413         ResetClip added before and after draw image. Fixes #79129.
12414
12415 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
12416
12417         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
12418         window size, it fix problem when you run under win32 that theres
12419         Size diferent than ClientSize. Also fix controls size and positions
12420         to mimic Win32. Fixes #80837.
12421
12422 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
12423
12424         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
12425         menu area to fix some problems for non X11 systems. Fixes #80613.
12426
12427 2007-02-22  Jackson Harper  <jackson@ximian.com>
12428
12429         * TreeNode.cs: When a node is expanded, set its is_expanded flag
12430         even if it doesn't have any children.
12431
12432 2007-02-22  Jackson Harper  <jackson@ximian.com>
12433
12434         * TreeView.cs: Calculate the top node 'on the fly', this
12435         eliminates issues where you need to click on the tree before
12436         scrolling it to get the top node computed correctly.
12437         * TreeNodeCollection.cs: We don't need to mess with the top node
12438         anymore.
12439
12440 2007-02-22  Jackson Harper  <jackson@ximian.com>
12441
12442         * DataGridViewRow.cs: Fix typo so height can actually be set.
12443         Patch by Peter Grimm.
12444
12445 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
12446
12447         * FileDialog.cs: Fixed support for renaming files and directories.
12448         * ListView.cs: Do not lose focus when edit is canceled. Process
12449         Escape as regular key (to prevent closing of dialogs).
12450
12451 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
12452
12453         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
12454         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
12455
12456 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
12457
12458         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
12459         did not modify label.
12460         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
12461         modified the text. Reset Label when user presses Escape in edit mode.
12462         Move focus to ListView after having cancelled or finished editing the
12463         label.
12464
12465 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
12466
12467         * ComboBox.cs: Removed unnecessary initializations. Marked items field
12468         private. Clear textbox when Text is set to null and SelectedIndex is
12469         already -1.
12470         * FileDialog.cs: Removed unnecessary initializations. Removed 
12471         workarounds for ComboBox bugs that are now fixed. Modified
12472         DefaultExt, InitialDirectory and Title property to change null to
12473         zero-length string in getters. Avoid directly accessing fields.
12474
12475 2007-02-20  Jackson Harper  <jackson@ximian.com>
12476
12477         * TextControl.cs: Remove RecalAlignments call, that was some
12478         debugging leftovers.
12479         - Don't use the line indent when we shouldn't.
12480         * RichTextBox.cs: Add support for paragraph left indents.
12481
12482 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12483
12484         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
12485         Seems like the class status pages doesn't catch params differences.
12486
12487 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
12488
12489         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
12490
12491 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
12492
12493         * ComboBox.cs: Setting Text should have no effect if item text of
12494         selected item exactly matches value. First lookup text using
12495         case-sensitive comparison, and fallback to case-insensitive comparison.
12496         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
12497         allow startIndex to be last index. Changed ArgumentOutOfRangeException
12498         paramname to match MS. Restart from first item if string is not found
12499         after startIndex. Fixed paramname of ArgumentNullException that is
12500         thrown for null value in ObjectCollection.Contains.
12501
12502 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
12503
12504         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
12505
12506 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12507
12508         * ListControl.cs: In SelectedValue use value.Equals to compare for
12509         equality instead of ==, otherwise it will fail for strings.
12510         Fixes #80794.
12511
12512 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12513         
12514         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
12515         since the caret won't show up unless ShowSelection is true. 
12516         Fixes #80795.
12517
12518 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12519
12520         * Application.cs: When disabling all forms but the main form, do not
12521           disable any descendants of the main form (such as mdi children or
12522           other parented forms). Fixes #80822 on Windows.
12523         * Form.cs: If we have a parent, set the WS_CHILD style.
12524         * Control.cs: Update the window styles if the control whose parent has
12525           changed is a form (the WS_CHILD style has to be switched).
12526
12527 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
12528
12529         * XplatUIStructs.cs: MsgUIState structure added.
12530
12531 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
12532
12533         * FileDialog.cs: Removed need for separate fileName field. On 2.0
12534         profile, do not check filename(s) for illegal character if filename(s)
12535         were set non-interactively but always check on 1.0 profile. Fixed NRE
12536          in DefaultExt and only strip off first leading dot. Improve exception
12537         message when invalid Filter is set. Do not ignore InitialDirectory if
12538         it does no exist. Store specified Title, and if empty use default
12539         title (depending on type of dialog). Added an internal DialogTitle 
12540         property for retrieving dialog title. Fixed logic of displayed dir to
12541         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
12542         string as its buggy.
12543         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
12544         FileName is a zero-length string (it can never be null). Override 
12545         DialogTitle property to set default title of dialog box.
12546         * SaveFileDialog.cs: Override DialogTitle property to set default
12547         title of dialog box.
12548
12549 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
12550
12551         * FileDialog.cs: Modify default text of filename and filetype labels
12552         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
12553         after we've updated the SelectedIndex. Fixes part of bug #80887.
12554         * SaveFileDialog.cs: Set text of filetype label.
12555
12556 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12557
12558         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
12559         label field. Needed by latest Jackson's fixes for ListView.
12560
12561 2007-02-16  Andreia Gaita  <avidigal@novell.com>
12562
12563         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
12564         print preview images.
12565
12566 2007-02-16  Jackson Harper  <jackson@ximian.com>
12567
12568         * ListView.cs: Make AfterLabelEdit work correctly.
12569         * FileDialog.cs: After changing the name of the folder, we have to
12570         make sure that it is created, or that we pop up an error because
12571         it already exists.
12572
12573 2007-02-16  Jackson Harper  <jackson@ximian.com>
12574
12575         * X11Dnd.cs: Implement aliases on mime handlers, so things like
12576         System.String are mapped to text.
12577         - Handle dataobjects, getting all the possible formats out of them
12578         - We dont need the drag event args before we give feedback. This
12579         allows feedback cursors to be immediate before selections have
12580         been converted.
12581
12582 2007-02-16  Jackson Harper  <jackson@ximian.com>
12583
12584         * TextBoxBase.cs: Modified the method for inserting images to
12585         taking a line and position instead of tag and position.
12586         * RichTextBox.cs: Handle PngBlip data by inserting the png image
12587         into the RTF file.
12588         * TextControl.cs: Allow images to be inserted as the first tag of
12589         a line.
12590         - Fix some off by one issues when we assume the first tag is a
12591         text tag, not an image tag.
12592
12593 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12594
12595         * ListView.cs: Set focus to ListView when ItemControl gets a
12596         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
12597         Fixes part of #80467.
12598
12599 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12600
12601         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
12602           validate Text input (if null or empty string reset Value to default
12603           value). Fixes #80830.
12604
12605 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12606
12607         * ListView.cs: Set owner as null for columns and items when
12608         Dispose is invoked. Fixes #80607.
12609
12610 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
12611
12612         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
12613         showing DropDowns, don't show a Grip when doing Flow layout.
12614         [This fixes the toolbox in PDN 2.72.]
12615         * ToolStripItem.cs: Add Anchor property and some internal properties to
12616         reduces needed changes to FlowLayout.
12617         * ToolStripOverflow.cs: Remove unused variable.
12618         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
12619         use it in the layout calculations.
12620
12621 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
12622
12623         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
12624         reported in #79640.
12625         
12626         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
12627         size calculation.
12628
12629 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
12630
12631         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
12632         MeasureString format, it can make button very large in some cases, it is
12633         strange but is what win32 do.
12634
12635 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
12636
12637         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
12638         size calculation.
12639
12640         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
12641         rendering, the value is based on MenuAccessKeysUnderlined.
12642
12643 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
12644
12645         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
12646         for most themes.
12647         
12648         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
12649         
12650         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
12651         and use MenuAccessKeysUnderlined instead.
12652
12653 2007-02-13  Andreia Gaita  <avidigal@novell.com>
12654
12655         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
12656         A selected control would not get a Focus call if:
12657                 - the default active control of the container is the same as
12658                   the one that was selected
12659                 - we are switching from one container to another
12660         Under these conditions, the container being selected already has
12661         an active_control, which is the same as the one being activated, 
12662         so set_ActiveControl would always return and not send the Focus
12663         call. Fix to check if the currently active control of the container
12664         is actually focused.
12665
12666 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
12667
12668         * StatusStrip.cs: Implement the spring layout.
12669         * ToolStripControlHost.cs: Make sure the hosted control's visibility
12670         always matches the host.
12671         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
12672         and TextAfterImage.
12673
12674 2007-02-13  Andreia Gaita  <avidigal@novell.com>
12675
12676         * Control.cs: Code reorganization only.
12677           - Reorganize the WndProc cases so that each case has it's own handling method, 
12678           to help with the no-line-numbering stack traces.
12679           - Formatting changes (it's vstudio's fault, really :p)
12680
12681 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12682
12683         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
12684           Thread.CurrentUICulture to match DateTimePicker's (and MS)
12685           behaviour.
12686
12687 2007-02-12  Jackson Harper  <jackson@ximian.com>
12688
12689         * RichTextBox.cs:
12690         * TextBox.cs: By default we have a non multiline document
12691         - use the multiline property instead of the internal variable
12692         * TextBoxBase.cs: Treat multiline and non multiline the same in
12693         most places.
12694         - Use the documents multiline flag instead of tracking it ourself
12695         * TextControl.cs: Attempt at getting multiline to match MS
12696         behavior.  Lines now track an offset, which is either their X or Y
12697         offset depending on whether or not we are in multiline mode.
12698         - Update all the methods to understand that lines have an X value.
12699         - Fix crash in Undo::Duplicate when empty lines are deleted.
12700
12701 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
12702
12703         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
12704         code moved to properties PreferredHeight and PreferredWidth. It solve the
12705         all problems when preferred sizes must be recalculated. Fixes #80801.
12706
12707 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
12708
12709         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
12710         font height when compatible_text_rendering is false. Partially fix #80801.
12711
12712 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
12713
12714         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
12715
12716 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
12717
12718         * Form.cs: Improved exception messages in ShowDialog.
12719
12720 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
12721
12722         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
12723         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
12724         if not set. Fixes bug #80764. Avoid accessing current_settings field
12725         directly.
12726
12727 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
12728
12729         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
12730         false.
12731
12732         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
12733         public in 2.0 and for easy maintenance and dont break compatibility it is 
12734         internal in 1.1.
12735         
12736 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
12737
12738         * ToolStripItem.cs: Implement using images from ImageList.
12739
12740 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12741
12742         * DateTimePicker.cs: Change default date-formatting culture from
12743           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
12744           seems to be the way MS does it.
12745
12746 2007-02-08  Andreia Gaita  <avidigal@novell.com>
12747
12748         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
12749         (the 6 was cut off on the right side)
12750
12751 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
12752
12753         * Form.cs: Tell MenuStrips to close when the form is clicked.
12754         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
12755         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
12756         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
12757         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
12758         support for Overflow, where items that do not fit are automatically
12759         reparented to a drop down menu.
12760         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
12761         Also: fixes bug #80747.
12762
12763 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12764
12765         * ComboBox.cs: Remove warning (unused code).
12766         * ScrollableControl.cs: Remove warning for 1.1 profile.
12767
12768 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12769
12770         * Form.cs: Remove a warning.
12771
12772 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12773
12774         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
12775           'g' specifier, not documented anywhere, but seems to always show up
12776           as a single space (might have something to do with the DateTime 'g'
12777           specifier, which is the era format, but since DateTimePicker can't
12778           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
12779           won't crash if the format has an unmatched quote. Now shows
12780           single-character formats correctly. Fixes #80744.
12781
12782 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
12783
12784         * StatusStrip.cs: Stretch property needs to call base.Stretch,
12785         not this.Stretch to fix stack overflow. [Fixes bug #80760]
12786
12787 2007-02-07  Chris Toshok  <toshok@ximian.com>
12788
12789         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
12790         background color.  it overwrites the background image we've
12791         already painted.  Fixes #80599.
12792
12793 2007-02-07  Chris Toshok  <toshok@ximian.com>
12794
12795         * DataGrid.cs: return immediately from Edit() when there are no
12796         columns.  Fixes #80662.
12797
12798 2007-02-07  Chris Toshok  <toshok@ximian.com>
12799
12800         * MessageBox.cs: fix #80625.  don't always show the Help button in
12801         2.0.  use the displayHelpButton parameter to determine if we
12802         should show it. Also, make the internal show_help field private.
12803
12804 2007-02-07  Chris Toshok  <toshok@ximian.com>
12805
12806         * Control.cs (SetVisibleCore): check in the proposed patch for
12807         80604, and set is_visible before calling CreateControl.
12808
12809 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
12810
12811         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
12812         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
12813         on it.
12814
12815 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
12816
12817         * MenuAPI.cs: hotkey_active internal field added, it is required because
12818         we need to know when hotkeys must be draw, before this change a keystate
12819         Navigating was used but we can have menu in navigating state without
12820         hotkeys. Fixes #80694.
12821         
12822         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
12823
12824 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12825
12826         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
12827           corresponding events and methods to be internal for 1.1 profile and
12828           public for 2.0 profile (required by SizeGrip).
12829         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
12830           implicit control list). Don't set the size nor the location of the
12831           SizeGrip anymore as it's not needed.
12832         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
12833           draw directly on the captured control (fixes #80656). Removed
12834           ShowGrip (it wasn't used anywhere), redraw (always true), added
12835           GetDefaultSize and GetDefaultRectangle to calculate defaults.
12836         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
12837           be called from SizeGrip.
12838
12839 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12840
12841         * Timer.cs: Throw ArgumentException if Interval <= 0.
12842
12843 2007-02-05  Jackson Harper  <jackson@ximian.com>
12844
12845         * TreeView.cs: We need to check scrollbar visibility when window
12846         visibility is updated, because non visible trees don't ever add
12847         scrollbars.
12848         * Cursor.cs: We want the override cursor to be reset to NULL when
12849         we set current cursor to the default cursor.
12850
12851 2007-02-05  Jackson Harper  <jackson@ximian.com>
12852
12853         * TextControl.cs: Don't have crlfs when we are non multiline.
12854         - Consolidate the line position.
12855
12856 2007-02-05  Jackson Harper  <jackson@ximian.com>
12857
12858         * X11Keyboard.cs: BACK+CTRL gets a special char code.
12859
12860 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12861
12862         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
12863           handling LeaveNotify->NotifyUngrab in order to send
12864           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
12865           after calling XUngrabPointer, so we call WindowUngrabbed directly
12866           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
12867         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
12868           MouseCaptureChanged correctly. Also create handles if changing
12869           Capture (matches MS behaviour).
12870
12871 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12872
12873         * SizeGrip.cs: Make the last change 2.0 only.
12874
12875 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12876
12877         * SizeGrip.cs: If resizing and the capture is lost, revert any size
12878           changes to initial size (fixes #80597).
12879
12880 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12881
12882         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
12883
12884 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12885
12886         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
12887           background) and only allow dragging if enabled. This way the
12888           sizegrip can be used to fill the open square that otherwise would
12889           have been shown in the bottom right corner of ScrollableControl
12890           when ScrollableControl is not suppose to support sizing.
12891         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
12892           sizegrip is shown and enabled, and hook up with necessary events.
12893
12894 2007-02-01  Chris Toshok  <toshok@ximian.com>
12895
12896         * DataGridTextBoxColumn.cs: clean up the
12897         GetFormattedString/GetColumnValueAtRow combination of functions.
12898         Also fix UpdateUI, and the initial state of
12899         IsInEditOrNavigateMode.
12900
12901         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
12902         aren't supposed to scroll the textbox here, we're supposed to
12903         scroll the datagrid.
12904
12905 2007-02-01  Chris Toshok  <toshok@ximian.com>
12906
12907         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
12908         setting the position.
12909
12910 2007-02-01  Chris Toshok  <toshok@ximian.com>
12911
12912         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
12913         here, since the most recent focus fixes keep us from generating
12914         the Leave event when our textbox gets focus.
12915         (Edit): we should be passing null for the column style's
12916         instantText parameter.
12917         
12918 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
12919
12920         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
12921         raised.  Fixes menu text/icons not showing up in PDN.
12922
12923 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12924
12925         * Control.cs: Remove code in constructor that makes every
12926         control with WS_CHILD set have initial location -1, -1.
12927
12928 2007-01-31  Jackson Harper  <jackson@ximian.com>
12929
12930         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
12931         XplatUIX11.
12932         * XplatUIX11.cs: Give teh keyboard to teh dnd.
12933
12934 2007-01-31  Jackson Harper  <jackson@ximian.com>
12935
12936         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
12937         - Remove some debug code.
12938
12939 2007-01-31  Jackson Harper  <jackson@ximian.com>
12940
12941         * XplatUIX11.cs: If you set the override cursor during a grab, it
12942         should actually override the grab cursor.  This comes into play
12943         when you are setting custom cursors in a DND feedback method.
12944
12945 2007-01-31  Jackson Harper  <jackson@ximian.com>
12946
12947         * X11Dnd.cs: Add support for handling the QueryContinue and
12948         GiveFeedback events.
12949         - Cancel drag and drop actions when the escape key is clicked.
12950         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
12951         can handle the ESCAPE key.
12952         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
12953         done when dnd events are continued after the button is released.
12954         - Add a new helper method so that dnd can translate key events.
12955
12956 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
12957
12958         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
12959         make it more obvious what is happening.
12960
12961 2007-01-30  Jackson Harper  <jackson@ximian.com>
12962
12963         * XplatUIX11.cs: Don't break when handling button release in drag
12964         and drop operations. We need that BUTTONUP message to get through
12965         so capture is released.
12966         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
12967         this is handled automatically when the mouse is down.
12968
12969 2007-01-30  Jackson Harper  <jackson@ximian.com>
12970
12971         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
12972         is closed, so we need to make sure that we aren't changing the
12973         dialog result when the OK (Open or Save) button has been clicked
12974         and we are closing the window ourselves.  Note we don't need to
12975         worry about the cache being written in this case, because it was
12976         already done in the previous FilOk call.
12977
12978 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12979         
12980         * DateTimePicker.cs: Remove a warning.
12981         * ComboBox.cs: Remove a couple of warnings.
12982
12983 2007-01-29  Chris Toshok  <toshok@ximian.com>
12984
12985         * XplatUIX11.cs: don't crash, and remove the icon if the user has
12986         set one, if SetIcon is passed a null icon.
12987
12988 2007-01-29  Andreia Gaita  <avidigal@novell.com>
12989
12990         * TextBox.cs: Redraw when the password characters changes
12991         * TextControl.cs: Check if textbox has a password char and draw 
12992         a line of password chars instead of the text in the line. LineTag gets 
12993         an extra Draw() method which allows document.Draw to override the text 
12994         that will be drawn. Removes 1024 char limitation on length of passworded 
12995         lines.
12996
12997 2007-01-29  Jackson Harper  <jackson@ximian.com>
12998
12999         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
13000         single chars is not.
13001
13002 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
13003
13004         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
13005         one pixel.  Fix a StackOverflowException caused by an overload wrongly
13006         calling itself.
13007
13008 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
13009
13010         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
13011         also remove ProcessArrowKey and put the code inside ProcessKeys.
13012
13013 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
13014
13015         * PaddingConverter.cs: Added.
13016
13017 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13018         
13019         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
13020         ShowPanels is false (fixes #80600). Only draw up to 127 characters
13021         of text (fixes #80601). For panels clip the text to draw to the
13022         panel (fixes #80603).
13023
13024 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13025
13026         * ComboBox.cs: Fixed implementation of ResetText.
13027
13028 2007-01-25  Jackson Harper  <jackson@ximian.com>
13029
13030         * TextControl.cs: For the last char of a line we need to use the
13031         line size, not that chars width, since it won't actually be
13032         computed since the right side of a char is based on the start of
13033         the left side of the next char, and the next char does not exist.
13034
13035 2007-01-25  Chris Toshok  <toshok@ximian.com>
13036
13037         * Splitter.cs: fix the new unit tests, and reindent some switch
13038         statements.
13039
13040 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13041
13042         * ComboBox.cs: Implemented 2.0 methods and events.
13043         * TextBoxBase.cs: Added OnTextUpdate, so that
13044         ComboBox.ComboTextBox can inform ComboBox of it.
13045
13046 2007-01-25  Jackson Harper  <jackson@ximian.com>
13047
13048         * TextControl.cs: Respect ShowSelection when deciding whether or
13049         not to display the caret, this allows comboboxes to have carets
13050         when the combotextbox does not have focus.
13051
13052 2007-01-25  Jackson Harper  <jackson@ximian.com>
13053
13054         * TextControl.cs: Add a Suspend/Resume for updating, basically the
13055         same as the Suspend/Resume for recalc, except this will do actual
13056         Invalidates.
13057         - New Undo manager, works much like the MS version.
13058         - Implemented Redo
13059         * TextBoxBase.cs: The Cut operation is undoable.
13060
13061 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13062         
13063         * TextBoxBase.cs: Don't antialias text. Makes it look way better
13064         on Windows (no difference on Linux).    
13065
13066 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13067
13068         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
13069         we don't want to activate any windows. Fixes #79433.
13070
13071 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
13072
13073         - ButtonBase.cs: Fix capitalization of parameter: disposing.
13074         [Fixes bug #80609]
13075
13076 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
13077
13078         * FileDialog.cs:
13079         - Move to using System.ComponentModel.EventHandlerList
13080         - Replace Refresh with Invalidate
13081         - Clear the mime filecache on closing
13082         - Some other memory reducing work. After beeing closed FD now uses
13083           only about 300 KB for the fdo mime stuff plus the memory of the
13084           cached icons.
13085         * Mime.cs: Changed coding style and removed unnecessary commented
13086         code. Some more memory memory reducing work.
13087
13088 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13089
13090         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
13091         a few other missing 2.0 properties.
13092         * Theme.cs: Added DrawFlatStyleComboBox.
13093         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
13094
13095 2007-01-24  Chris Toshok  <toshok@ximian.com>
13096
13097         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
13098         wake_waiting flag, not just when there's data to be read.  if we
13099         don't, then future wakeup's won't reach us and we'll be doomed to
13100         wait for the entire 1 second timeout forever (unless there are X
13101         events to be had).
13102
13103 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
13104
13105         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
13106         until you pass Items.Count, not Items.Count - 1 like 1.1.
13107
13108 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
13109
13110         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
13111
13112 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
13113
13114         * ToolStripContainer.cs: The recent Dock fix exposed that I was
13115         adding the panels in the wrong order.
13116
13117 2007-01-24  Jackson Harper  <jackson@ximian.com>
13118
13119         * TextBoxBase.cs: When we move the caret we also need to move the
13120         selection, this fixes some random crashing after doing select
13121         text, unselect, delete a char, paste.
13122
13123 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13124
13125         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
13126
13127 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
13128
13129         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
13130         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
13131         * ToolBar.cs: Force redraw in BackgroundImageChanged.
13132
13133 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
13134
13135         * ToolBar.cs:
13136         - Implement support for vertical toolbars. Fixes #80539;
13137         - Call LayoutToolBar when resize, it fix some other problems in layout.
13138         - Rename requested_height to requested_size, as we can have width on it
13139         when toolbar is vertical.
13140         - Create a private property "Vertical" that uses Dock to verify when 
13141         toolbar is vertical or not.
13142         - Set ControlStyles when change Dock property.
13143         - Refactory in LayoutToolBar to have better variables names and to support
13144         vertical toolbars.
13145         - Fixes default value for ButtonSize when button count is equal zero, size
13146         must be (39, 36) test case writed.
13147
13148 2007-01-23  Chris Toshok  <toshok@ximian.com>
13149
13150         * Control.cs: fix the checks so that they work correctly for mdi
13151         parents/children.
13152
13153 2007-01-23  Chris Toshok  <toshok@ximian.com>
13154
13155         * Control.cs: ControlCollection seems to have super-secret
13156         abstraction breaking knowledge of Mdi containers.  allow MdiClient
13157         to add toplevel controls.
13158
13159 2007-01-23  Chris Toshok  <toshok@ximian.com>
13160
13161         * Control.cs: throw an ArgumentException if a toplevel control is
13162         added to our control collection from ControlCollection.Add, as
13163         well as from ControlCollection.IList.Add.  This fixes the
13164         ControlSetTopLevelTest.TestTopLevelAdd unit test.
13165
13166         Also, in ControlCollection.IList.Add, don't through an
13167         ArgumentNullException, throw an ArgumentException, when value ==
13168         null.  This matches MS.
13169
13170 2007-01-23  Chris Toshok  <toshok@ximian.com>
13171
13172         * BindingSource.cs: initial, incomplete, implementation of
13173         BindingSource.
13174
13175 2007-01-23  Jackson Harper  <jackson@ximian.com>
13176
13177         * TextControl.cs:
13178         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
13179         that I can fix a broken unit test (TextBoxTest::ClearUndo)
13180         
13181 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
13182
13183         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
13184
13185 2007-01-23  Andreia Gaita  <avidigal@novell.com>
13186
13187         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
13188         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
13189         IndexOfKey() for 2.0
13190
13191 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13192
13193         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
13194         to prevent it from changing z-order.
13195         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
13196         leave UI updates in MdiWindowManager.
13197         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
13198         1 sized (NC handling goes weird on Linux otherwise).
13199         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
13200         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
13201         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
13202         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
13203         and SetWindowState(s) to allow for changing the size of an activated child
13204         before activating it (reduces a lot of flicker).
13205
13206 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
13207
13208         * Form.cs: Changing FormBorderStyle has different semantics based
13209         on whether the Form is visible or not.  If not visible, don't change
13210         the Size.  But InvalidateNC needs to be called to force the window
13211         to pick up the changes and redraw itself.  [Fixes bug #80574]
13212
13213 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
13214
13215         [Moma work]
13216         * ContainerControl.cs: ProcessCmdKey.
13217         * ErrorProvider.cs: new constructor.
13218         * Form.cs: fix AutoValidateEvent compiler warning.
13219         * Label.cs: fix OnAutoSizeChanged compiler warning.
13220         * MenuStrip.cs: fix CanOverflow compiler warning.
13221         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
13222         * TextBox.cs: Dispose.
13223         * ToolStrip.cs: CanOverflow, re-enable double buffering.
13224         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
13225         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
13226         * ToolStripItem.cs: Overflow, RightToLeft properties.
13227
13228 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13229
13230         * Form.cs: Move the layout of the main form to MdiWindowManager.
13231         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
13232         do a layout of the main window to update MdiClient's client area to
13233         the right area. Fixes #80533. Remove the calculation of nc size, 
13234         it was just wrong and the correct one is the same as for 
13235         InternalWindowManager. 
13236
13237 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
13238
13239         * Control.cs: Setting Anchor or Dock needs to reset the other
13240         to its default.  [Fixes bug #80556]
13241
13242 2007-01-20  Chris Toshok  <toshok@ximian.com>
13243
13244         * CheckedListBox.cs: class status changes.
13245
13246         * ScrollableControl.cs: same.
13247
13248         * RichTextBox.cs: same.
13249
13250         * ContainerControl.cs: same.
13251
13252         * ListView.cs: same.
13253
13254         * NotifyIcon.cs: same.
13255
13256         * MenuStrip.cs: same.
13257
13258         * RadioButton.cs: same.
13259
13260         * CheckBox.cs: same.
13261
13262         * PrintPreviewDialog.cs: same.
13263
13264         * Form.cs: same.
13265
13266 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
13267
13268         * TreeNode.cs: Apply Alan's patch for Name property.
13269
13270 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13271         
13272         * Form.cs: Implemented SizeGripStyle.
13273         * SizeGrip.cs: Check for minimum and maximum size for the
13274         control being resized and only resize if size has actually
13275         changed.
13276
13277 2007-01-19  Chris Toshok  <toshok@ximian.com>
13278
13279         * DataGridColumnStyle.cs: stop setting _readonly in the
13280         PropertyDescriptor setter.  fixes a unit test failure.
13281
13282         also, rename ParentReadOnly to TableStyleReadOnly, and have it
13283         just consult our table style (if we have one).  We don't need to
13284         consult the datagrid readonly attribute because that's passed in
13285         as the _ro arg to Edit.  this simplifies things a little.
13286         
13287         * DataGrid.cs: use CurrentColumn instead of
13288         current_cell.ColumnNumber just to simplify some of the code.
13289
13290         switch the order of some things in the CurrentCell setter to keep
13291         the previous cell from getting a textbox again -
13292         EnsureCellVisibility causes scrolling to happen, which calls Edit.
13293         So we need to set the new cell before calling it.
13294         
13295         call Edit in OnEnter, as does Microsoft.
13296         
13297         also, make sure the current table style isn't the one we create
13298         initially when checking to see if it's different than the one
13299         we're setting it to in BindColumns (this fixes #80421).
13300
13301         * GridTableStylesCollection.cs: table styles can have "" for a
13302         mapping name.  part of the fix for #80421.
13303
13304         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
13305         Edit significantly.
13306
13307 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
13308
13309         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
13310         and less GDI object leaky-er.
13311
13312 2007-01-18  Andreia Gaita  <avidigal@novell.com>
13313
13314         * LinkLabel.cs: Add opaque control style
13315
13316 2007-01-18  Jackson Harper  <jackson@ximian.com>
13317
13318         * TextControl.cs: Calculate width properly.
13319         - Don't store the tag's X offset, this can be figured out very
13320         easily.
13321         - When getting the caret tag make sure to get the last empty tag.
13322
13323 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
13324
13325         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
13326         [Fixes bug #79959]
13327
13328         * Control.cs: Color.Empty shouldn't count for previous transparent
13329         redraw changes.
13330
13331 2007-01-18  Jackson Harper  <jackson@ximian.com>
13332
13333         * TextBox.cs:
13334         * RichTextBox.cs:
13335         * TextControl.cs: Starting to merge in some pieces of my older
13336         undo work.  Basically just some slight cleanup of the undo API.
13337
13338 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13339
13340         * TrackBar.cs: Fix signature of RightToLeftLayout.
13341         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
13342         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
13343         * Application.cs: Implemented UseWaitCursor.
13344
13345 2007-01-18  Jackson Harper  <jackson@ximian.com>
13346
13347         * TextControl.cs: We can't skip tags if any part of the tag is
13348         visible.
13349
13350 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
13351
13352         * ContainerControl.cs: Override OnLayout.
13353
13354 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
13355
13356         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
13357
13358         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
13359         everything else.
13360
13361 2007-01-18  Chris Toshok  <toshok@ximian.com>
13362
13363         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
13364         (leftover from the container_selected days, I'd wager).  fixes bug
13365         #80546.
13366
13367 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
13368
13369         * Control.cs: Apply patch from George to fix the new testcase on
13370         bug #80451.  We can't just check for Color.Transparent, we need 
13371         to check if the back color's alpha channel is < 255.
13372
13373 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
13374
13375         * Form.cs: Move setting show_icon = true to before the constructor
13376         so that the base constructor has that information when it calculates
13377         the form's size.  Was causing forms to be (6, 6) bigger than they
13378         were supposed to be.  Thanks for catching this Rolf!
13379
13380 2007-01-18  Jackson Harper  <jackson@ximian.com>
13381
13382         * TextControl.cs: When replacing a selection we need to invalidate
13383         from the initial selection start, because selection start is moved
13384         to the end of the replacement.
13385
13386 2007-01-18  Andreia Gaita  <avidigal@novell.com>
13387
13388         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
13389
13390 2007-01-18  Chris Toshok  <toshok@ximian.com>
13391
13392         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
13393         I just added.
13394
13395 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
13396
13397         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
13398         layout methods and properties from ToolBarButton must be available
13399         into ToolBarButtonInfo.
13400
13401 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
13402
13403         * Control.cs: If the control has a transparent background, we
13404         need to refresh it when it moves and when it's parent's background
13405         image changes.  [Fixes bug #80451]
13406
13407 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
13408
13409         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
13410
13411 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
13412
13413         * XplatUIWin32.cs: Implement proper double buffering for Windows.
13414         [Fixes bug #80447, and probably speeds up things as well]
13415
13416 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13417
13418         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
13419         * XplatUIWin32.cs: We need to recalculate NC size after changing 
13420         window style to toolwindow (otherwise the client rectangle will be
13421         3 pixels to small for some reason).
13422         * MdiWindowManager.cs: Revert NC size calculations to match how
13423         they are calculated only based on window styles (to match
13424         Win32AdjustWindowRectEx, since otherwise when setting size or 
13425         location, Control will call Win32AdjustWindowRectEx to update client 
13426         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
13427         calculate a different value of client size causing another paint 
13428         (and flickering))
13429         * InternalWindowManager.cs: When moving or resizing a window only
13430         update size or location if they actually changed.
13431         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
13432         (seems to match Windows behaviour better). Cleaned up 
13433         ManagedWindowDecorations to draw what's needed and nothing else
13434         (was drawing borders and lines where they shouldn't be)
13435         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
13436         (style = 0xFFFF) and takes into account caption height when 
13437         calculating window rectangle.   
13438
13439 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
13440
13441         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
13442         can be added to toolbar multiple times, we need to maintain a list of 
13443         button information for each positions.
13444
13445 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
13446
13447         * ToolBar.cs: Some small stetic changes.
13448
13449 2007-01-16  Jackson Harper  <jackson@ximian.com>
13450
13451         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
13452         that allow us to have nested recalc = false blocks.
13453         - Add paste support for images in the RichTextBox
13454         * RichTextBox.cs: flush the text after the color is changed, so
13455         the change takes effect.
13456         - Use SuspendRecalc
13457         - Some extra debugging info
13458         * TextControl.cs: Tags no longer track their length, it is just
13459         computed from the next tags length, this makes things a little
13460         simpler and reduces places that we have to track length changes.
13461         - Refactored the linetag class a little so we could make it
13462         a base class for different kinds of tags
13463         - Created a image tag, a tag that can have a single image inserted
13464         into it
13465         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
13466         that we can call suspend multiple times.
13467         - Add some debugging methods
13468
13469 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13470
13471         * MdiClient.cs: Add ActivatePreviousChild for 
13472         mdi child window navigation.
13473         * Form.cs: Use MdiClient.ActivateNextChild/
13474         ActivatePreviousChild instead of Form.SelectNextControl
13475         to select the next/previous child since 
13476         SelectNextControl doesn't do it in the same order
13477         as mdi children should do it.
13478
13479 2007-01-16  Chris Toshok  <toshok@ximian.com>
13480
13481         * Control.cs: remove container_selected field.
13482
13483 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13484
13485         * MdiClient.cs: Update main form's ActiveChild when
13486         updating keyboard focus for the mdi child.
13487
13488 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
13489
13490         * Control.cs: PreferredSize fix.
13491
13492         * Form.cs: Add several 2.0 events, properties, and methods.
13493
13494 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
13495
13496         * Form.cs: Provide meaningful message when MdiParent is assigned a
13497         Form that is not an MdiContainer.
13498
13499 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13500
13501         * MdiClient.cs: Update main form's ActiveChild when
13502         activating a mdi child.
13503
13504 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13505
13506         * MdiWindowManager.cs: Fix NRE when merging menus and main form
13507         doesn't have a menu.
13508
13509         * Form.cs: Request NCRecalc after creating a mdi child window.
13510         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
13511         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
13512         
13513         * MdiClient.cs: Add new method SendFocusToActiveChild that either
13514         sends keyboard focus to the active child, or to the MdiClient
13515         if there are no child forms.
13516         
13517 2007-01-15  Chris Toshok  <toshok@ximian.com>
13518
13519         * ListView.cs: drop the *Internal overrides, just do our work in
13520         ItemControl's WndProc instead.
13521
13522         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
13523         of the various controls, and forward the events properly (in the
13524         same manner as MS) from the textbox to the UpDown.  Also the
13525         ActiveControl of the UpDownBase gets set properly now.  Finally,
13526         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
13527
13528         * NumericUpDown.cs: set Text in the ctor.
13529
13530         * DomainUpDown.cs: call UpdateEditText in the ctor.
13531         
13532         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
13533         so even a Selectable = false textbox can be focused if you click
13534         in it.  Go figure.
13535
13536         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
13537         just add their handling in their respective WndProc's.  Also add
13538         an explicit FocusInternal method that doesn't consult CanFocus
13539         before calling Select(this).
13540
13541         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
13542         do our work in WndProc instead.
13543
13544         * TabControl.cs: same.
13545
13546         * ComboBox.cs: same.
13547
13548 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
13549
13550         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
13551         Fixes #80006.
13552
13553 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
13554
13555         * ListViewItem.cs:
13556         * ThemeWin32Classic.cs: Don't draw the item text outside
13557         item bounds in Details view, as well as use trimming.
13558         Fixes bug #80376.
13559
13560 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
13561
13562         * Form.cs: Implement Form.ShowIcon.
13563         
13564         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
13565         null, which when combined with the DlgModalFrame window style removes
13566         the icon from the title bar.
13567
13568 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
13569
13570         * Control.cs: Call OnMouseClick after OnClick. (2.0)
13571
13572 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
13573
13574         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
13575         menu when mdi child windows theres a menu, uses insert to get icon
13576         at first position. Partially fix #80006.
13577
13578 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
13579
13580         * Clipboard.cs: Implement 2.0 methods.
13581
13582 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
13583
13584         * Menu.cs: Implement Insert method of MenuItemCollection class
13585         to fix MenuMerge.
13586
13587 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13588
13589         * ListView.cs: Implement 2.0 FindItemWithText method.
13590
13591 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
13592
13593         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
13594         to calculate menu bar size. Fixes #80290.
13595
13596 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
13597
13598         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
13599
13600 2007-01-11  Chris Toshok  <toshok@ximian.com>
13601
13602         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
13603         initial form.
13604
13605 2007-01-11  Chris Toshok  <toshok@ximian.com>
13606
13607         * LinkLabel.cs: make sure to call base.Select in our Select method
13608         if it turns out we're going to be selected (i.e. if we have a link
13609         that is going to receive focus).  That way our container's
13610         ActiveControl is updated properly.
13611
13612 2007-01-11  Chris Toshok  <toshok@ximian.com>
13613
13614         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
13615         they have 1 or more links.  this fixes the crash gert reported.
13616
13617 2007-01-11  Andreia Gaita  <avidigal@novell.com>
13618
13619         * ContainerControl.cs: Remove ContainerSelected flag, not needed
13620         anymore.
13621
13622         * Control.cs (Controls.Add): Check if control to be added to the collection
13623         is a top level control, and throw an ArgumentException if it is.
13624         Remove ContainerSelectedFlag, not needed anymore.
13625
13626         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
13627         top most control doesn't activate the form. This fixes a problem in the
13628         MessageBox, where the default button wouldn't get focus because the form
13629         was activated before being Loaded - when the Owner is set, SetTopMost is
13630         called, and it would activate it.
13631
13632 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
13633
13634         * Button.cs: When clicked and setting the parent form's DialogResult,
13635         use FindForm instead of Parent, since parent could be a container
13636         control and not the Form.  Fixes bug #80495.
13637
13638 2007-01-10  Chris Toshok  <toshok@ximian.com>
13639
13640         * Form.cs: move the call to SendControlFocus into the same
13641         is_loaded check.
13642
13643 2007-01-10  Chris Toshok  <toshok@ximian.com>
13644
13645         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
13646         It breaks in the face of the new ActiveControl stuff, and should
13647         be unnecessary.
13648
13649         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
13650         activecontrol's focus if it's not already set, after we set
13651         ActiveControl, but before we call OnActivated.  Re-fixes #79667
13652         after the previous focus/active control fixes regressed it.
13653
13654         * Control.cs: reindent some code.
13655         
13656 2007-01-10  Chris Toshok  <toshok@ximian.com>
13657
13658         * Splitter.cs: clearing some outstanding changes from my tree.
13659         Replace all accesses (not writes) to the internal dock_style field
13660         with the Dock property.
13661
13662 2007-01-10  Chris Toshok  <toshok@ximian.com>
13663
13664         * Control.cs: make FireEnter, FireLeave, FireValidating, and
13665         FireValidated virtual.
13666
13667         * Form.cs: override and don't chain up calls to FireEnter and
13668         FireLeave.
13669
13670 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13671
13672         * ListView.cs: Add more text padding space when using
13673         auto resize for columns (the previous value didn't work fine).
13674
13675         * ThemeWin32Classic.cs: Update text position inside columns,
13676         to match the appeareance of .Net.
13677
13678         * ColumnHeader.cs: When using auto resize, only the Width should
13679         depend on the sub items, not the Height. Also, set width after
13680         auto resizing (the value of Width should never remain as -1 or -2).
13681
13682 2007-01-10  Chris Toshok  <toshok@ximian.com>
13683
13684         * Application.cs: fix compilation errors when debug is enabled.
13685
13686 2007-01-10  Chris Toshok  <toshok@ximian.com>
13687
13688         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
13689         add some nice ascii art pictures and explanation of the process).
13690         (GetMostDeeplyNestedActiveControl): new utility function we need
13691         because our ActiveControl can refer to a child container with its
13692         own ActiveControl.
13693
13694         * Form.cs (OnActivated): remove the call to SelectActiveControl
13695         from here, since you can override this method and not chain up,
13696         and winforms still sets the active control.
13697         (OnCreateControl): also remove the unnecessary SelectActiveControl
13698         call from here.
13699         (WndProc): it's actually called from the WM_ACTIVATE block, just
13700         before calling OnActivated.
13701
13702         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
13703         inside the else.  the ActiveControl setter will end up setting
13704         focus on @control.  This keeps us from setting it again (and
13705         generating an extra LostFocus/GotFocus pair).
13706         (Select (bool, bool)): reindent.
13707
13708 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
13709
13710         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
13711         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
13712         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
13713         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
13714         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
13715         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
13716         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
13717         ToolStripTextBox.cs: Another wave of corcompare work.
13718
13719 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13720
13721         * ColumnHeader.cs: Implement 2.0 AutoResize method using
13722         the Width property.
13723
13724         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
13725         methods by callling Column.AutoResize method on columns.
13726
13727 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
13728
13729         * Control.cs: Provide proper implementations of PreferredSize
13730         and GetPreferredSize (2.0).
13731
13732 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
13733
13734         * Form.cs: Remove one character (!) to make my previous OnClosing
13735         stuff work for modal windows like MessageBox.
13736
13737 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13738
13739         * ListView.cs:
13740         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
13741         ListView.Columns to get the last displayed column. Fixes #80452.
13742
13743 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
13744
13745         * Label.cs, LinkLabel.cs: Source code identation fixes.
13746
13747 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
13748
13749         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
13750         we dont need to invalidate only borders because when we invalidate four
13751         border lines the invalidate's generates a complete redraw of button, 
13752         because it now invalidate a complete rect some other redraws operations
13753         are fixed. Fixes #80196.
13754         
13755         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
13756         Remove ToolBarInvalidateEntireButton as it is not used.
13757
13758 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
13759         
13760         * Form.cs: Make sure that both OnClosing and OnFormClosing are
13761         called for 2.0 profile.
13762         * CloseReason.cs: Make class internal for 1.1.
13763
13764 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
13765
13766         * ToolStripManager.cs: Implement FindToolStrip functionality.
13767         * ToolStrip.cs: Register and unregister with ToolStripManager.
13768
13769 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
13770
13771         * Control.cs: This was messy.  2.0 moves much of ControlCollection
13772         to ArrangedElementCollection.  Implemented this with as few #if's as 
13773         possible (which is still too many).
13774
13775 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
13776
13777         * Control.cs: Implement SizeFromClientSize() [2.0].
13778
13779 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
13780
13781         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
13782         use Theme.BorderSize to calculate area instead of static value 1, 
13783         by the way use new BorderStaticSize instead     Border3DSize when 
13784         border_static is true. Fixes #79537.
13785         
13786         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
13787         
13788         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
13789         it is not needed.
13790
13791 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
13792
13793         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
13794
13795 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
13796
13797         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
13798         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
13799         
13800         * Hwnd.cs: 
13801         - border_static field added, it will used to define when a control 
13802         theres 3D border but it must be static (thin).
13803         - In GetWindowRectangle use Theme.BorderSize to calculate area 
13804         instead of static value 1, by the way use new BorderStaticSize instead
13805         Border3DSize when border_static is true.
13806
13807         * XplatUIX11.cs, XplatUIOSX.cs: 
13808         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
13809         
13810         * Theme.cs: BorderStaticSize field added.
13811
13812 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
13813
13814         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
13815
13816 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
13817
13818         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
13819         mimic same behavior than win32 that set border only in CreateParams,
13820         it fix problems under CreateParams overrides. Fix #79442 and partial
13821         fix #79537.
13822         
13823         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
13824         of thi control you must call recreate handle. 
13825         
13826         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
13827         need to do anything as RecreateHangle will take care about borders.
13828
13829 2007-01-05  Mike Kestner  <mkestner@novell.com>
13830
13831         * ListView.cs: hack to eliminate Lost/Got focus notifications on
13832         cycles between the ItemControl and parent.  Fixes #80388.
13833
13834 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
13835
13836         * Control.cs: Lazy init layout engine. Do not directly use 
13837         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
13838
13839 2007-01-05  Chris Toshok  <toshok@ximian.com>
13840
13841         * DataGrid.cs: don't forceably rebind columns in SetDataSource
13842         unless our list manager has changed (i.e. unless we have reason to
13843         believe our columns have changed).  Fixes #80422.
13844         
13845         also, disable the call do BindColumns in
13846         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
13847         1.1 the event isn't raised in response to a column addition on a
13848         table.)
13849
13850 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
13851
13852         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
13853         that inheritors can not call it if they choose.  Fixes bug #80456.
13854
13855 2007-01-05  Andreia Gaita  <avidigal@novell.com>
13856
13857         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
13858         doesn't blow up with a null exception on marshalling.
13859         
13860 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
13861
13862         * Control.cs: Implement several 2.0 protected properties and methods.
13863         Ensure that all necessary events are being called when properties
13864         are set.
13865
13866 2007-01-05  Mike Kestner  <mkestner@novell.com>
13867
13868         * ListView.cs: implement PgUp/PgDn for Details view.  Also
13869         fixes First/LastVisibleIndex to use the item_control.ClientRect 
13870         instead of the parent control.  Fixes #80378.
13871
13872 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
13873
13874         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
13875           determine whether to use yard-pound or not (bug #78399).
13876
13877 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13878
13879         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
13880         problems. So it is time to bring back the old popupbutton colors.
13881
13882 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13883
13884         * ColumnHeader.cs:
13885         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
13886         property by using the internal information of the
13887         columns order in ListView.
13888
13889 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
13890
13891         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
13892         Add 2.0 Tag properties.
13893
13894         * LinkArea.cs: Add 2.0 ToString method.
13895
13896 2007-01-03  Chris Toshok  <toshok@ximian.com>
13897
13898         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
13899         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
13900         when we're editing, which fixes #80047.
13901
13902 2007-01-03  Chris Toshok  <toshok@ximian.com>
13903
13904         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
13905         #80404.
13906
13907 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
13908
13909         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
13910         property and implementation.
13911
13912         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
13913         for MdiWindowListItem property.
13914
13915         * ToolStripDropDown.cs: Don't consider hidden menu items while
13916         laying out the menu.
13917
13918 2007-01-03  Andreia Gaita  <avidigal@novell.com>
13919
13920         * SendKeys.cs: window handle is not needed in win32, so just
13921         get the active window for X after parsing keys and don't use
13922         it when building the message; it is passed by parameter to the 
13923         Xplat method and used there to build the message instead. Also,
13924         wait for events to be processed on SendWait, as opposed to Send,
13925         which doesn't wait :) Playing with threads and Send() completely 
13926         hangs on ms.net, only SendWait() works.
13927         
13928         XplatUIX11.cs
13929         X11Display.cs: Check for valid window handle.
13930
13931 2007-01-03  Jackson Harper  <jackson@ximian.com>
13932
13933         * TextControl.cs: Need to prevent wrap calculations when replacing
13934         text (this was there before i removed it accidently).
13935         - Don't update the cursor during the positioning, just set it to
13936         selection_start at the end of the operaion.
13937
13938 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13939
13940         * Control.cs:
13941         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
13942         
13943 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13944
13945         * MonthCalendar.cs: Added Click and DoubleClick events again,
13946         but this time they only hide Control's Click and DoubleClick.
13947         
13948 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
13949
13950         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
13951         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
13952
13953 2007-01-02  Jackson Harper  <jackson@ximian.com>
13954
13955         * TextBoxBase.cs: We move the caret with the split now, so we
13956         don't need to explicitly move the caret after splitting.  This
13957         fixes the caret bumping down an extra line on Enter.
13958
13959 2007-01-02  Miguel de Icaza  <miguel@novell.com>
13960
13961         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
13962         2.72). 
13963
13964         * ScrollableControl.cs: Add Scroll event.
13965
13966 2007-01-02  Mike Kestner  <mkestner@novell.com>
13967
13968         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
13969         to fix all hdr height padding codepaths.  Fixes #80207.
13970
13971 2007-01-02  Chris Toshok  <toshok@ximian.com>
13972
13973         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
13974         setting it to the Control defaults anyway, and it being after the
13975         Dock set was screwing up layout.
13976         (set_Dock): don't short circuit out of setting base.Dock.  Also,
13977         no need to call UpdateStatusBar here, as it'll be re-layed out if
13978         it needs to be.
13979
13980 2007-01-02  Mike Kestner  <mkestner@novell.com>
13981
13982         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
13983         to header height for width == -1. Fixes the rest of #80207.
13984
13985 2007-01-02  Mike Kestner  <mkestner@novell.com>
13986
13987         * ListView.cs: rework the mouse event forwarding everaldo added
13988         to translate the coordinates to the parent control not
13989         raise the parent events until after we've done our work. Hover
13990         needs more work, in the case where HoverSelection is on, because
13991         the item control receives more than one MouseHover per Enter
13992         event, so we need to ensure only the "first" hover gets forwarded.
13993         Opening a minor bug for that.
13994
13995 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
13996
13997         * CheckedListBox.cs: Fixed SelectionMode to match MS.
13998         * ListControl.cs: Implemented AllowSelection property. Removed extra
13999         tabs.
14000         * ListBox.cs: Implemented AllowSelection property.
14001
14002 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
14003
14004         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
14005         SelectedItem, it prevent for errors when you must disable item
14006         before perform click. Fixes #80409.
14007
14008 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
14009
14010         * MenuAPI.cs: Prevent second level and beyond submenus to close
14011         until first level when move out side of popup.
14012         
14013 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
14014
14015         * MenuAPI.cs:
14016         - Down submenu positin in three pixels.
14017         - Closes sub menu when mouse leaves from menu. Fixes #80402.
14018
14019 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
14020
14021         * ThemeWin32Classic.cs:
14022         - Fix popup menu size adding one pixel on the top.
14023         - Down menu item border from two to one to mimic Win32.
14024         - Some source identation fixes. 
14025
14026 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
14027
14028         * ThemeWin32Classic.cs: Use float numbers to calculate size and
14029         position of menu arrows, it fix wrong arrow size.
14030
14031 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
14032
14033         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
14034         instead of line, it simplify draw operation and fix it using 3D
14035         borders to mimic Win32.
14036
14037 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
14038
14039         * StatusStrip.cs: Add implementation of the sizing grip.
14040
14041         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
14042         StatusStrip rendering.
14043
14044 2006-12-31  Chris Toshok  <toshok@ximian.com>
14045
14046         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
14047         override the layout style (anchor/dock) of the control.  assign to
14048         Dock instead.  Fixes bug #80416.
14049
14050         * ToolStrip.cs: same.
14051
14052 2006-12-31  Andreia Gaita  <avidigal@novell.com>
14053
14054         * ContainerControl.cs: Use ContainerSelected flag to check if 
14055         a Container is directly selected, or if Select is called on a 
14056         non-container. If a container is directly selected, focus events 
14057         should not be raised.
14058         Apply #80411 patch to throw exception on set_ActiveControl if 
14059         control is the same as the current one.
14060         
14061         * Control.cs: Use ContainerSelected flag (see above).
14062         Add invalidation check to raise event but not invalidate if 
14063         dimensions are 0.       
14064         Apply #80411 patch.
14065         
14066
14067 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
14068
14069         * MenuAPI.cs: After click, dont close popup menu when menu is
14070         ContextMenu. Fixes #80399.
14071
14072 2006-12-30  Chris Toshok  <toshok@ximian.com>
14073
14074         * ContainerControl.cs: make sure we throw the exception if the
14075         container control doesn't contain the control we're setting
14076         ActiveControl to.
14077
14078 2006-12-30  Chris Toshok  <toshok@ximian.com>
14079
14080         * Control.cs (SetTopLevel): fix the exception raised by
14081         SetTopLevel for child controls.
14082         (set_Anchor): call UpdateDistances when setting the anchor type.
14083         This fixes bug #80336.
14084
14085 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
14086
14087         * Theme.cs: For now, revert back to 8pt font.
14088
14089 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
14090
14091         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
14092         Fixes #80395.
14093
14094 2006-12-29  Chris Toshok  <toshok@ximian.com>
14095
14096         * Control.cs: reorder the code in OnResize to give the same event
14097         ordering as MS.
14098
14099 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14100
14101         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
14102         TileHorizontally and TileVertically.
14103         
14104 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
14105
14106         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
14107         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
14108         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
14109         Corrected copyright and email adress.
14110
14111 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
14112
14113         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
14114         of Exception in FullPath property if no TreeView is associated with
14115         the TreeNode.
14116
14117 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
14118
14119         * Theme.cs: Marked default_font as private, and initialize it in ctor
14120         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
14121         on 2.0 profile.
14122         * ThemeGtk.cs: Removed default_font intialization.
14123         * ThemeWin32Classic.cs: Removed default_font initialization.
14124
14125 2006-12-28  Chris Toshok  <toshok@ximian.com>
14126
14127         * Control.cs: fix a couple of place where we were creating handles
14128         more aggressively than we should be.  Fixes ControlRefresh unit
14129         tests.
14130
14131 2006-12-28  Chris Toshok  <toshok@ximian.com>
14132
14133         * Control.cs: contrary to what the comment said, Control.Dock does
14134         not supercede Control.Anchor - the last one you assign to decides
14135         the layout behavior.  so we need to keep track of which was the
14136         last set.  Also, fix some of the affected property arguments in
14137         PerformLayout calls, and remove an redundant parent.PerformLayout
14138         call in OnResized.
14139
14140         Add a VisibleInternal property, which returns is_visible.  We
14141         can/should get rid of all the usage of this field elsewhere.
14142
14143 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14144         
14145         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
14146         control style, not DoubleBuffer. Added UseDoubleBuffering property
14147         that indicates whether doublebuffering is enabled and supported.
14148         (comment from and code based on Gert Driesen's patch in #80324).
14149         Fixes #80324.
14150
14151 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14152         
14153         * Control.cs: Fixed a NRE.
14154
14155 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14156
14157         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
14158         for 2.0.
14159
14160 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14161
14162         * Control.cs: Rewrote double buffering, now a seperate
14163         class handles all the buffering, no Graphics is disposed of
14164         until the painting is finished (earlier implementation 
14165         would crash if the control was resized in the OnPaint, 
14166         since it would cause the double buffer to be recreated
14167         and the old one disposed), a separate Graphics is 
14168         created for every paint (MS behaviour and anyways the state
14169         of the Graphics would have to be saved and restored otherwise)
14170         
14171         * XplatUIDriver.cs: 
14172         * XplatUIX11.cs:
14173         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
14174         so that we can get the graphics for the back buffer without
14175         having to create a new one and remove the offscreen_dc parameter
14176         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
14177         
14178 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14179
14180         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
14181         Also make virtual all the key-related methods.
14182
14183         * ListViewItem.cs: Make virtual the key related methods for
14184         ListViewSubItemCollection.
14185
14186 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14187
14188         * ListView.cs:
14189         * ListViewItem.cs:
14190         * ThemeWin32Classic.cs:
14191         * Theme.cs: Initial support for Tile view in ListView,
14192         as well as the implementation of the required bits for it (Item
14193         and Subitem).
14194
14195 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
14196
14197         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
14198         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
14199         Provide useful exception messages.
14200
14201 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14202
14203         * TrackBar.cs: Remove a warning.
14204         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
14205         when used by DateTimePicker, fixes #80287. This also requires that 
14206         MonthCalendar implements it's own drawing for the yearly updown control,
14207         otherwise the Capture tracking would be too complicated. Removed the Click 
14208         and DoubleClick events (according to comments they were hiding the base class
14209         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
14210         raise these events, not that they cannot be raised. It is possible to raise 
14211         them by calling OnClick and OnDoubleClick). Added two internal fields in 
14212         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
14213         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
14214         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
14215         event, no longer needed.
14216         
14217 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
14218
14219         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
14220         true if new value differs from current value.
14221
14222 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
14223
14224         * Control.cs: ControlCollection.Count must be public. Fixed build of
14225         unit tests.
14226
14227 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
14228
14229         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
14230
14231 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
14232
14233         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
14234
14235 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
14236
14237         * Control.cs: Invalidates control including when Width and Height is 
14238         equal zero or is not visible, only Paint event must be care about 
14239         this. Fixes #79913.
14240
14241 2006-12-26  Chris Toshok  <toshok@ximian.com>
14242
14243         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
14244         more corcompare work.
14245
14246         * DataGridView.cs: fix compiler warning.
14247
14248         * ColumnHeader.cs: some corcompare work, and also take the
14249         opportunity to make the internal fields private.
14250
14251         * ListView.cs: fix the fallout from the above field change.
14252
14253 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
14254
14255         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
14256         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
14257         ToolStripTextBox.cs: Fixes to events and corcompare.
14258
14259 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
14260
14261         * ListView.cs: Call owner.OnMousexx event to propagate events from
14262         item to ListView. Fixes #80367.
14263
14264 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
14265
14266         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
14267         if value is less than one. ItemHeight should not be set to a value
14268         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
14269         Removed extra tabs.
14270
14271 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
14272
14273         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
14274         * ToolStripStatusLabel.cs: Add Spring for Moma.
14275
14276 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
14277
14278         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
14279         Fixed code formatting. Removed debug code.
14280         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
14281
14282 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
14283
14284         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
14285         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
14286         ArgumentOutOfRangeException if ColumnCount is negative. In 
14287         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
14288         less than 4 or higher than 32768.
14289         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
14290         Fixed FormatProvider to return CurrentCulture unless explicitly set.
14291         Fixed IsFormatProviderDefault to return true if FormatProvider has
14292         not been explicitly set.
14293
14294 2006-12-25  Chris Toshok  <toshok@ximian.com>
14295
14296         * Application.cs: add a couple of 2.0 events.
14297
14298 2006-12-25  Chris Toshok  <toshok@ximian.com>
14299
14300         * Control.cs: fix compiler warning.
14301
14302         * AxHost.cs: corcompare fixes.
14303
14304         * ApplicationContext.cs: corcompare fixes.
14305
14306 2006-12-25  Chris Toshok  <toshok@ximian.com>
14307
14308         * Control.cs: only update dist_right/dist_bottom if the
14309         width/height is > 0.  this fixes anchored controls being resized
14310         smaller until they disappear and then resized larger again.
14311
14312 2006-12-25  Chris Toshok  <toshok@ximian.com>
14313
14314         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
14315         since they're nothing more than X/Left and Y/Top, respectively.
14316
14317         Also, move back to a per-control Bitmap/Graphics for
14318         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
14319         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
14320         Height.
14321
14322 2006-12-25  Miguel de Icaza  <miguel@novell.com>
14323
14324         * MessageBox.cs: Implemented overload that takes a new "bool
14325         displayHelpButton" by adding a new internal field "show_help".
14326         When clicked this will raise the HelpRequested on the owner or the
14327         main form. 
14328
14329         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
14330         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
14331
14332         * ListView.cs: Add support ColumnWidthChanged and
14333         ColumnWidthChanging. 
14334
14335         Add support for ColumnReordered event.
14336         (ReorderColumn): Add NET_2_0 specific support for cancelling the
14337         reorder.
14338
14339         Very nice codebase!
14340
14341         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
14342
14343         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
14344
14345 2006-12-24  Chris Toshok  <toshok@ximian.com>
14346
14347         * GridTablesFactory.cs: 2.0 corcompare work.
14348
14349         * ToolStripContainer.cs: add "override" to
14350         ContextMenuStripChanged, and remove the local event object.
14351
14352         * ToolStripDropDown.cs: same with a couple properties.
14353
14354         * ToolStripPanel.cs: same with AutoSizeChanged event.
14355
14356         * TextBoxBase.cs: add "override" to AutoSizeChanged.
14357
14358         * Form.cs: add the remaining 2.0 events, and do some corcompare
14359         attribute work.
14360
14361         * DateTimePicker.cs: add "new" to padding.
14362
14363         * ButtonBase.cs: use Control's use_compatible_text_rendering.
14364
14365         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
14366
14367         * DataGridView.cs: PaddingChanged is overridden.
14368
14369 2006-12-24  Chris Toshok  <toshok@ximian.com>
14370
14371         * Control.cs: corecompare work here too.
14372
14373         * DataGridViewElement.cs, DataGridView.cs,
14374         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
14375         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
14376         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
14377         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
14378         work.
14379
14380 2006-12-24  Miguel de Icaza  <miguel@novell.com>
14381
14382         * Control.cs: Switched the error message on the console for a
14383         todo.  A review of the code will have to cope with this anyways
14384         (since its a large feature, it is in our radar) and it was
14385         producing too much output when running PDN.
14386
14387         * ToolStripComboBox.cs: Set the text when the SelectedIndex
14388         changes.  Applications depend on this (PDN 2.72)
14389
14390 2006-12-23  Chris Toshok  <toshok@ximian.com>
14391
14392         * TableLayoutSettings.cs: finish up the corcompare work for this
14393         class.
14394
14395 2006-12-23  Chris Toshok  <toshok@ximian.com>
14396
14397         * Control.cs: make SetImplicitBounds internal, do some futzing
14398         with LayoutEngine so that it's available in 1.1, and remove the
14399         entire duplicated code mess from PerformLayout.  Use
14400         System.Windows.Forms.Layout.DefaultLayout instead.
14401
14402         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
14403
14404 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
14405
14406         * Form.cs: Add MainMenuStrip property.
14407
14408 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
14409
14410         * Control.cs: Add ContextMenuStrip property and implementation.
14411         Fix ContextMenu implementation to show menu centered on control when
14412         activated using the keyboard instead of showing at screen (0,0).
14413
14414         * ToolStripDropDown.cs: Fix needed overload of Show ().
14415
14416 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
14417
14418         * Menu.cs: Name property added for 2.0 profile.
14419         
14420 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
14421
14422         * Menu.cs: Update information about FindMenuItem, method to be
14423         implemented soon.
14424
14425 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
14426
14427         * MenuAPI.cs: When deselect items deselect also selected subitems.
14428         
14429 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
14430
14431         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
14432         FindSubItemByCoord to found itens that is not active, also an
14433         cheking added to FindSubItemByCoord to search for items only 
14434         in visible popup windows. Fixes #80274.
14435
14436 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
14437
14438         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
14439         internal property, it be care about change ExStyle. 
14440
14441 2006-12-22  Andreia Gaita  <avidigal@novell.com>
14442
14443         * ContainerControl.cs: set activeControl for parent forms up the 
14444         tree when the new activecontrol is a container.
14445         When validating the active control, if it is a container, also
14446         raise up the validation for it's active control. Fixes #80280
14447         
14448         * Control.cs: Add internal property flag and check to prevent
14449         Focus events from getting raised when Select() is called for
14450         a ContainerControl. There are still too many focus events being
14451         raised at the moment though.
14452         Cleaned up the code a bit.
14453
14454 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14455
14456         * Control.cs: Added all missing 2.0 events.and
14457         fixed a couple of corcompare issues.
14458         * TrackBar.cs: Implemented missing 2.0 bits.
14459         * MonthCalendar.cs, 
14460         * DateTimePicker.cs, 
14461         * MdiClient.cs: Fixed some corcompare issues.
14462
14463 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
14464
14465         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
14466         SplitterPanel.cs: corecompare work.
14467
14468 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
14469
14470         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
14471         Clean up warnings for BackgroundImageChanged and PaddingChanged
14472         events now that they are implemented in Control.cs.
14473
14474 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
14475
14476         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
14477         
14478         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
14479         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
14480         of TableLayoutPanel and supporting cast.
14481
14482 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14483
14484         * XplatUIWin32.cs: 
14485         - GrabWindow now confines the mouse pointer to the confine window.
14486         - Added Win32ClipCursor and Win32GetClipCursor.
14487
14488         * Control.cs: 
14489         - Added CaptureWithConfine to be able to capture and confine 
14490         mouse pointer.
14491         
14492         * InternalWindowManager.cs: 
14493         - Call CaptureWithConfine instead of Capture if we're an
14494         MdiChild (fixes #79982).
14495
14496 2006-12-21  Chris Toshok  <toshok@ximian.com>
14497
14498         * DataGrid.cs: guard against the initial state of selection, where
14499         selection_start == -1.  make sure we only select from index >= 0.
14500         Fixes bug #80291.
14501
14502 2006-12-21  Chris Toshok  <toshok@ximian.com>
14503
14504         * Control.cs: we don't need to be so draconian with
14505         UpdateDistances, and we thusly don't need to call it before
14506         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
14507
14508 2006-12-21  Daniel Nauck  <dna@mono-project.de>
14509
14510         * ComboBox.cs,
14511         TextBox.cs: Implemented AutoComplete properties.
14512
14513 2006-12-20  Chris Toshok  <toshok@ximian.com>
14514
14515         * DataGridView*.cs: some corecompare work.
14516
14517 2006-12-20  Jackson Harper  <jackson@ximian.com>
14518
14519         * XplatUIX11.cs: We need to hide the caret when deleting it,
14520         otherwise you get carets left lying around everywhere.
14521         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
14522         prevents getting some weird half drawn caret tracers when
14523         scrolling.
14524         * TextControl.cs: Attempt to reduce the number of times we need to
14525         recreate the caret.
14526
14527 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
14528
14529         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
14530
14531 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14532
14533         * DateTimePicker.cs:
14534         - Implemented missing 2.0 bits.
14535         - Changed some default values to match MS.
14536         
14537 2006-12-20  Jackson Harper  <jackson@ximian.com>
14538
14539         * TextBoxBase.cs: When changing the font across the document we
14540         can't recalculate after changing each line, since that will cahnge
14541         the line count.
14542         - PreferredHeight is a little different than i thought.
14543         - When backspacing, move the caret before we do the actual char
14544         delete, because when that delete crosses a wrap boundary the
14545         positional information will change.
14546
14547 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14548
14549         * Control.cs: Added some missing 2.0 bits: 
14550         BackgroundImageLayout, BackgroundImageLayoutChanged, 
14551         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
14552         add IBindableComponent and IDropTarget implementation.
14553         
14554         * MonthCalendar.cs: 
14555         - Added all missing 2.0 features:
14556         BackgroundImageLayout, RightToLeftLayout, 
14557         OnHandleDestroyed, RightToLeftLayoutChanged, 
14558         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
14559         PaddingChanged.
14560         - Rewrote all the BoldDate code, it was completely broken.
14561         - Fixed all the tests (the tests can now be re-enabled, the
14562         problems were not with the tests, but with the control, it was
14563         mostly broken).
14564         
14565         * DateTimePicker.cs: Changed the location where the 
14566         MonthCalendar is shown.
14567         
14568 2006-12-19  Chris Toshok  <toshok@ximian.com>
14569
14570         * DataGridView.cs: add IDropTarget implementation.
14571
14572         * ToolStripPanel.cs: add IDropTarget implementation.
14573
14574 2006-12-19  Jackson Harper  <jackson@ximian.com>
14575
14576         * TextControl.cs: soft now means something different than what it
14577         used to mean, we want to move the caret regardless of whether or
14578         not this break was soft (would we really have wanted the caret
14579         to not move with the break in the old context?)
14580         * TreeView.cs: Make sure we factor in the vert scrollbar when
14581         calculating the horizontal scrollbar's maximum.
14582
14583 2006-12-19  Andreia Gaita  <avidigal@novell.org>
14584
14585         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
14586         check for keywords in alternate casing, close bug #80049.
14587
14588 2006-12-19  Chris Toshok  <toshok@ximian.com>
14589
14590         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
14591         methods (which all do nothing).
14592
14593         * IDropTarget.cs: add the 4 missing methods.
14594
14595 2006-12-19  Chris Toshok  <toshok@ximian.com>
14596
14597         * TableLayoutRowStyleCollection.cs: corcompare work.
14598         
14599         * TableLayoutSettings.cs: same.
14600
14601         * TableLayoutStyle.cs: same.
14602
14603         * TableLayoutColumnStyleCollection.cs: same.
14604
14605 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
14606
14607         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
14608         TableLayoutPanel I've had in my local tree for way too long.
14609
14610 2006-12-19  Miguel de Icaza  <miguel@novell.com>
14611
14612         * TableLayoutSettings.cs: Finish the public API (still needs all
14613         the logic to update on changes). 
14614
14615         * TableLayoutPanelCellPosition.cs: new file.
14616         
14617         * TableLayoutRowStyleCollection.cs,
14618         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
14619         TableLayoutSettings.cs: Track the final 2.0 table api.
14620
14621 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14622
14623         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
14624         and Image List 2.0 members for ColummnHeader.
14625         * ListView.cs: Add key-related 2.0 methods for
14626         ColumnHeaderCollection.
14627
14628 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
14629
14630         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
14631         ArgumentNullException if items argument is null. Ignore null item in
14632         arrays. Removed extra tabs.
14633
14634 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
14635
14636         * MonthCalendar.cs: Fixed InvalidCastException.
14637
14638 2006-12-19  Jackson Harper  <jackson@ximian.com>
14639
14640         * TextControl.cs: Don't increment the position here.
14641         - When calculating char positions only add in the line break size
14642         for hard line breaks.
14643
14644 2006-12-19  Andreia Gaita  <avidigal@novell.org>
14645
14646         * SendKeys.cs: Changed some things to match ms.net behaviour
14647         when parsing shifted capital letters.
14648         
14649         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
14650         Add window handle as parameter to SendInput. X11 needs the 
14651         window handle, and the handle being passed      to it in the keys 
14652         queue is the active control handle (which windows needs), not 
14653         the window handle.
14654         
14655         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
14656         to support SendKeys on X.       
14657         
14658         * X11Keyboard: Implement helper method to lookup a linux keycode
14659         given the virtual keycode. Added table of keycode-2-virtualkey
14660         values to support this.
14661
14662 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14663
14664         * ListView.cs: Add support for SelectedIndexCollection
14665         and SelectedItemCollection 2.0 methods. Implement support
14666         for ImageKey too.
14667         * ListViewItem.cs: Add support for ListViewSubItemCollection
14668         2.0 methods. Also, fix an incorrect behavior of AddRange method
14669         (it shouldn't call Clear).
14670         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
14671
14672 2006-12-19  Jackson Harper  <jackson@ximian.com>
14673
14674         * RichTextBox.cs: 
14675         * TextBoxBase.cs: New args for FormatText
14676         * TextControl.cs: Rewrote the main drawing method, this version
14677         feels a little easier to understand and debug to me.  Hopefully it
14678         does to others also
14679         - Fix FormatText to OR in the new formating values.  Added
14680         FormatSpecified param, basically this works in the same way as
14681         BoundsSpecified in Control.
14682         - Set the caret properties when the caret is positioned.
14683         - When wrapping text make sure that we calculate the width of the
14684         last character
14685         - when calculating alignments we might have wrapped down to the
14686         next line, so don't search for an individual tag, search for the
14687         end of the line
14688         - We need to invalidate the selection area when we replace the
14689         selection.
14690         
14691 2006-12-19  Daniel Nauck  <dna@mono-project.de>
14692
14693         * Application.cs: add Restart () 2.0 support
14694
14695 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
14696
14697         * MenuItem.cs: Invalidate menu item rectangle after change Enable
14698         property. Fixes #80268.
14699         
14700 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
14701
14702         * MenuAPI.cs: Dont trigger select event when closes top menu
14703         item. Fixes #80270.
14704
14705 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
14706
14707         * MenuAPI.cs: When you click on menuitem only trigger onselect
14708         event for top menu itens. Fixes #80271.
14709         
14710 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14711
14712         * MdiWindowManager.cs: Make IconicBounds depend on
14713         the bottom of MdiClient, not the top (fixes #80267)
14714         
14715 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14716
14717         * MdiClient.cs: Added missing 2.0 attribute
14718
14719 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14720
14721         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
14722         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
14723
14724 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
14725
14726         * MenuAPI.cs: Fix click when menuitem is not popup,
14727         this regression was caused by last commit (#80272).
14728
14729 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
14730
14731         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
14732         fire click event or close menu. Fixes #80272.
14733
14734 2006-12-17  Daniel Nauck  <dna@mono-project.de>
14735
14736         * ListViewHitTestInfo.cs: add
14737
14738 2006-12-17  Daniel Nauck  <dna@mono-project.de>
14739
14740         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
14741         * FlatButtonAppearance.cs: add
14742         * DockingAttribute.cs: add
14743
14744 2006-12-17  Chris Toshok  <toshok@ximian.com>
14745
14746         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
14747         and rebind our columns when it does - this way, if you make
14748         changes to the DataTable (or set the Table attribute on a DataView
14749         after setting it as the DataGrid's DataSource, the changes are
14750         made visible.)  Fixes bug #80107.
14751
14752 2006-12-17  Daniel Nauck  <dna@mono-project.de>
14753
14754         * ListViewGroup.cs: add internal Location property for layouting.
14755         * Theme.cs: add abstract ListViewGroupHeight function.
14756         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
14757
14758 2006-12-16  Andreia Gaita  <avidigal@novell.com>
14759
14760         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
14761         Added reset of selected index to 0 when adding first tab page.
14762         Fixes #80264
14763         
14764         * NumericUpDown.cs: Fix NET_2_0 check
14765
14766 2006-12-16  Daniel Nauck  <dna@mono-project.de>
14767
14768         * ListViewGroup.cs: fixed DefaultValueAttribute value
14769
14770 2006-12-16  Daniel Nauck  <dna@mono-project.de>
14771
14772         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
14773
14774 2006-12-15  Miguel de Icaza  <miguel@novell.com>
14775
14776         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
14777         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
14778         ScrollableControl.cs: Add a handful of methods that are
14779         overwritten in 2.0 
14780
14781 2006-12-15  Chris Toshok  <toshok@ximian.com>
14782
14783         * XplatUIWin32.cs: initial implementation of the Reversible
14784         drawing functions.  there are some problems.  DrawReversibleFrame
14785         doesn't seem to work at all for Dashed FrameStyle, and in the
14786         Thick case there are drawing errors at the corners (we probably
14787         need to bind Rectangle instead of doing moveto/lineto's.)
14788
14789 2006-12-16  Andreia Gaita  <avidigal@novell.com>
14790         
14791         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
14792         to send blocks of key messages. Send accumulates keys to send with Flush, 
14793         while SendWait sends all keys immediately.
14794                 
14795         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
14796         XplatUIX11.cs,  XplatUIX11-new.cs:
14797         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
14798         to Win32 SendInput.
14799         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
14800         
14801         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
14802         testing for ms.net on this class is very tricky, as the tests run too fast 
14803         to allow the hook to release, essentially freezing the keyboard and the 
14804         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
14805         category :p
14806
14807 2006-12-16  Daniel Nauck  <dna@mono-project.de>
14808
14809         * Padding.cs: fixed serialization compability to MS ("_var" field names),
14810                         added missing attributes.
14811  
14812 2006-12-15  Daniel Nauck  <dna@mono-project.de>
14813
14814         * ListViewGroup.cs: Added missing attributes.
14815         * ListViewGroupCollection.cs: Added missing attributes.
14816
14817 2006-12-15  Daniel Nauck  <dna@mono-project.de>
14818
14819         * ListViewItem.cs: fixed ListViewSubItem text property.
14820
14821 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14822         
14823         * Control.cs: Added missing 2.0 attributes
14824         
14825 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14826         
14827         * MdiClient.cs: Added missing 2.0 attribute.
14828         * MonthCalendar.cs: Added some missing 2.0 attributes 
14829         and properties.
14830         
14831 2006-12-15  Daniel Nauck  <dna@mono-project.de>
14832
14833         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
14834
14835 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
14836
14837         * MainMenu.cs: Add the new 2.0 constructor to help out people
14838         using the MainMenu in VS2005.
14839
14840 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14841         
14842         * MdiChildContext.cs: Removed it, no longer used.
14843         * MdiClient.cs: Added missing 2.0 attributes.
14844         
14845 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14846         
14847         * InternalWindowManager.cs: Fix a NullRef with previous 
14848         changes for toolwindows.
14849         
14850 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14851
14852         * Control.cs: 
14853         - Added AfterTopMostControl to allow for certain controls 
14854         to always stay on top when normal controls are brought to 
14855         front.
14856         
14857         * XplatUIWin32.cs: 
14858         - (DrawInversibleRectangle): Get window rectangle from Win32 
14859         in stead of from control, since Win32 doesn't calculate
14860         screen coords correctly from control's Location if it 
14861         have docked siblings.
14862         
14863         * MdiWindowManager.cs:
14864         - Correct the control menu popup location when clicked on
14865         the maximized form icon. (fixes #80223.1)
14866         - Don't show moving rectangle if mouse hasn't moved from
14867         the original clicked point.
14868         - Removed FormGotFocus handler (not used).
14869         - Calculate the control buttons location from the main
14870         window's size and not client size (fixes #79770).
14871         - Form is now closed when the form icon is double-clicked
14872         (fixes #79775). 
14873         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
14874         
14875         * InternalWindowManager.cs:
14876         - Moved some MDI-only methods to MdiWindowManager.
14877         - Removed unused properties and methods.
14878         - Unified method naming for methods handling wm messages.
14879         - Moved all message handling to seperate methods for
14880         each message.
14881         
14882         * ThemeWin32Classic.cs:
14883         - DrawManagedWindowDecorations now draws the title bar 
14884         with a gradient brush.
14885         - Add a CPDrawButtonInternal that allows us to specify
14886         light, normal and dark colors for the buttons (control 
14887         buttons for MDI children were drawn with the same light
14888         color as the background, therefore loosing the 3D effect).
14889         
14890         * SizeGrip.cs:
14891         - Add a CapturedControl property that is used to 
14892         determine the control to resize (defaults to parent). 
14893         Needed for MdiClient, since its SizeGrip's parent is
14894         MdiClient, but the control to resize is the main form.
14895         
14896         * MdiClient.cs:
14897         - Set SizeGrip's CapturedControl to the main form in order
14898         to resize the main form and not the MdiClient.
14899         - Override AfterTopMostControl to leave the scrollbars 
14900         always on top.
14901
14902 2006-12-15  Daniel Nauck  <dna@mono-project.de>
14903
14904         * ListView.cs: fixed ListViewItemCollection AddRange and
14905                         implemented ListViewItemCollection AddRange 2.0 support.
14906
14907 2006-12-15  Daniel Nauck  <dna@mono-project.de>
14908
14909         * ListViewGroup.cs: Add.
14910         * ListViewGroupCollection.cs: Add
14911         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
14912         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
14913                                 stub for ImageKey 2.0 support.
14914
14915 2006-12-14  Mike Kestner  <mkestner@novell.com>
14916
14917         * ListView.cs: add text padding to the autocalculation for columns
14918         of width -2.  Fixes #80207.
14919  
14920 2006-12-14  Mike Kestner  <mkestner@novell.com>
14921
14922         * ListView.cs: add some index guarding for partial row navigation 
14923         logic.  Fixes #80250.
14924
14925 2006-12-14  Mike Kestner  <mkestner@novell.com>
14926
14927         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
14928         are added or inserted to the collection.  Fixes #81099.
14929
14930 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
14931
14932         * MenuAPI.cs: Closes menu when right click out side of popup
14933         it fix problem in ContextMenu and MainMenu. Fixes #80252.
14934
14935 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14936
14937         * ListViewItem.cs: Fix dumb error.
14938
14939         * ListView.cs: Add Find and ContainsKey methods in 
14940         ListViewItemCollection, and also return true for IsReadOnly
14941         and IsFixedSize (changes for 2.0). 
14942
14943 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
14944
14945         * Control.cs: Allow Region to be set to null.
14946
14947 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14948
14949         * MdiWindowManager.cs: Remove unused (commented out) code.
14950         * Form.cs: When the MdiChild is maximized, the form needs 
14951         WM_NCMOUSELEAVE, so request it.
14952         * InternalWindowManager.cs: 
14953         - Added tooltips to control buttons.
14954         - Removed duplicated control button handling code.
14955         - Removed unused (commented out) code.
14956         
14957 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
14958
14959         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
14960         was used because we must set cursor without trigger ChangeCursor event
14961         and without change Cursor control property. Fixes #79963.
14962
14963 2006-12-12  Andreia Gaita  <avidigal@novell.com>
14964         
14965         * Control.cs: Check if Region setter value is null, and ignore
14966
14967 2006-12-12  Jackson Harper  <jackson@ximian.com>
14968
14969         * TextControl.cs: We were almost always drawing one more line then
14970         needed, since the GetLineByPixel will return the last line found
14971         at that pixel. In most cases though, we were invalidating up to
14972         the junction between two lines.
14973         - Improve debug code.
14974
14975 2006-12-12  Chris Toshok  <toshok@ximian.com>
14976
14977         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
14978         and FillReversibleRectangle.
14979
14980         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
14981         and FillReversibleRectangle.
14982
14983         * XplatUIWin32.cs: add stubs which do nothing for
14984         DrawReversibleFrame, DrawReversibleLine, and
14985         FillReversibleRectangle.
14986
14987         * XplatUIOSX.cs: add stubs which raise NIE for
14988         DrawReversibleFrame, DrawReversibleLine, and
14989         FillReversibleRectangle.
14990
14991         * XplatUIX11.cs: add working implementation for
14992         DrawReversibleFrame, DrawReversibleLine, and
14993         FillReversibleRectangle.
14994         
14995         * ControlPaint.cs: implement DrawReversibleFrame,
14996         DrawReversibleLine, and FillReversibleRectangle, by calling into
14997         the appropriate XplatUI method.
14998
14999 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15000
15001         * Form.cs: Make MdiClient have the focus even if it's
15002         not selectable, since it should receive WM_KEY* and WM_MOUSE 
15003         messages. Fixes #79907.
15004         
15005 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15006
15007         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
15008         queried after the window is created.
15009         
15010         * XplatUIX11.cs: Added SendParentNotify to implement 
15011         WM_PARENTNOTIFY logic. Fixes #79965.
15012         
15013         * Control.cs: Added MakeParam.
15014         
15015 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15016
15017         * MdiClient.cs: Resume Layout before setting window
15018         states (fixes #80201).
15019
15020 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15021
15022         * MenuAPI.cs: Deselect a menu item after performing
15023         the click (fixes #80197).
15024
15025 2006-12-11  Jackson Harper  <jackson@ximian.com>
15026
15027         * TextBoxBase.cs: We need to cap this value, since Maximum -
15028         ViewPortHeight can be less than zero.
15029         - Only do selection with the left mouse button.
15030         * TextBox.cs: Don't tell the world that we have a context menu.
15031         * Control.cs: New method so that we can control whether or not the
15032         context menu is visible outside MWF.
15033
15034 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
15035
15036         * ToolBarButton.cs: Fix text positon. 
15037
15038 2006-12-11  Miguel de Icaza  <miguel@novell.com>
15039
15040         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
15041
15042         * Control.cs (DoubleBuffered): Add implementation.
15043
15044         * Application.cs (OpenForms): Add.
15045
15046 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
15047
15048         * Form.cs: Use opacity instead of Opactiy to determine if we need
15049         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
15050
15051 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
15052
15053         * Control.cs: Fix NRE if Control.Site was set to null.
15054
15055 2006-12-11  Chris Toshok  <toshok@ximian.com>
15056
15057         * Control.cs: ControlCollection.Remove should return if the arg is
15058         null, and ControlCollection.SetChildIndex should raise a ANE.
15059
15060 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
15061
15062         * Control.cs: Verify value set for Dock property. Code formatting
15063         updates.
15064
15065 2006-12-11  Jackson Harper  <jackson@ximian.com>
15066
15067         * TextControl.cs: Draw the caret and the selection when a flag is
15068         set on the owner.
15069         * TextBoxBase.cs: We want to draw the caret and the selection for
15070         TextBox but not for TextBoxBase.
15071         - If the window is resized and scrolling is no longer needed (the
15072         whole doc is visible) set the scroll position to zero.
15073         - The default SelectWord (the one TextBox uses) should move the
15074         caret to the end of the word.
15075         - SelectAll moves the caret to the end of the selection.
15076         * TextBox.cs: We don't selectall on focus, we just do it when the
15077         control is created.
15078         
15079 2006-12-11  Mike Kestner  <mkestner@novell.com>
15080
15081         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
15082
15083 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15084
15085         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
15086         2.0 support.
15087         * ListViewItem.cs: Add Name 2.0 property.
15088
15089 2006-12-11  Andreia Gaita  <avidigal@novell.com>
15090
15091         * TabControl.cs: Set visibility on selected or default tab 
15092         when tabcontrol handle is created, so that it's contents
15093         actually show up (duh). Fixes #80193
15094         Don't redraw the control if there is no handle created, as
15095         the selected index might be completely invalid. Added some tests
15096         to check for this.
15097
15098 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
15099
15100         * ToolBar.cs: Uses maximun width and height of all buttons as 
15101         button rectangle when ButtonSize specified, it looks strange but
15102         is what happens in Win32. Fixes #80189.
15103
15104 2006-12-11  Jackson Harper  <jackson@ximian.com>
15105
15106         * TextControl.cs: Need to track undo levels ourself, since
15107         compound actions will mess them up.
15108
15109 2006-12-10  Andreia Gaita  <avidigal@novell.com>
15110
15111         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
15112         SelectedIndex value is changed (even if it's not valid).
15113         Reset SelectedIndex to 0 when the handle is created and if
15114         the current index is invalid.
15115         Fixes SelectdeIndex unit tests and #80128
15116
15117 2006-12-08  Chris Toshok  <toshok@ximian.com>
15118
15119         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
15120         calls EndEdit, it needs to be called before we set current_cell to
15121         its new value.  Otherwise, we end up committing the value in the
15122         textbox to the new cell as well.  Fixes bug #80160.
15123
15124 2006-12-08  Chris Toshok  <toshok@ximian.com>
15125
15126         * Form.cs (set_CancelButton): if the button's DialogResult is
15127         None, set it to Cancel.  Fixes bug 80180.
15128
15129 2006-12-08  Jackson Harper  <jackson@ximian.com>
15130
15131         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
15132         to watch ourselves when setting the canvas size and setting the
15133         scrollbar values.
15134
15135 2006-12-08  Chris Toshok  <toshok@ximian.com>
15136
15137         * DataGrid.cs: comment out the two MakeTransparent calls for the
15138         time being so people using trunk (and not 1.2.2) on windows can
15139         actually use the datagrid.  This deals with bug #80151.
15140
15141 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
15142
15143         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
15144         Graphics.DrawImage (image, int, int, int, int) overload instead
15145         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
15146         the dpi difference and was blurring images it drew.
15147         [Fixes bug #79960]
15148
15149 2006-12-08  Chris Toshok  <toshok@ximian.com>
15150
15151         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
15152         rowcnt is 0 (such as with an empty datasource), and make sure we
15153         initialize not_usedarea.Y to cells.Y, so we don't draw over the
15154         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
15155
15156 2006-12-08  Chris Toshok  <toshok@ximian.com>
15157
15158         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
15159         grid.
15160
15161 2006-12-08  Chris Toshok  <toshok@ximian.com>
15162
15163         [ Fixes bug #80167 ]
15164         
15165         * ThemeWin32Classic.cs: don't draw the image if the button's flat
15166         style is FlatStyle.System.
15167
15168         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
15169         ButtonBase.flat_style private, and switch uses of it to the public
15170         property.
15171         
15172 2006-12-08  Chris Toshok  <toshok@ximian.com>
15173
15174         [ Fixes bug #80121 ]
15175         
15176         * ThemeWin32Classic.cs: center the caption text in the datagrid
15177         when we draw it.
15178
15179         * DataGrid.cs: lessen the amount we add to the caption height from
15180         6 to 2.  6 was making it huge.
15181
15182 2006-12-08  Andreia Gaita  <avidigal@novell.com>
15183
15184         * UpDownBase: Handle MouseWheel call directly instead of capturing
15185         the inner textbox's OnMouseWheel. Fixes #80166
15186
15187 2006-12-08  Jackson Harper  <jackson@ximian.com>
15188
15189         * TextControl.cs: We need to invalidate the textbox when we empty
15190         it (how had this not been discovered before?)
15191
15192 2006-12-08  Jackson Harper  <jackson@ximian.com>
15193
15194         * TextBoxBase.cs: Reworked the mouse down code so I could get it
15195         to behave like MS, we now ignore the eventargs.Click and just
15196         track state ourself, which we were already doing anyways.
15197         - Constrain the double click handler to the double click size.
15198         
15199 2006-12-08  Chris Toshok  <toshok@ximian.com>
15200
15201         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
15202         direction if that scrollbar isn't shown.  fixes bug #80158.
15203
15204 2006-12-08  Andreia Gaita  <avidigal@novell.com>
15205
15206         * NumericUpDown.cs: Update value on getter. Fixes #79950
15207
15208 2006-12-08  Chris Toshok  <toshok@ximian.com>
15209
15210         * MenuItem.cs: add back in the event cloning code.  I didn't know
15211         how to do it in the face of the EventHandlerList work i'd done
15212         last week.  Fixes bug #80183.
15213
15214 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
15215
15216         * Control.cs: Add an invalidate to the BackgroundImage setter.
15217         [Fixes 80184]
15218
15219 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
15220
15221         * ToolStrip*: Add some small properties reported by MoMA, fix event
15222         firing and default properties based off of unit tests, and add some
15223         attributes based off of the class status page.
15224
15225 2006-12-07  Jackson Harper  <jackson@ximian.com>
15226
15227         * TextBoxBase.cs: Take HideSelection into account when determining
15228         whether or not to show the selection.
15229         * RichTextBox.cs: After inserting the RTF into the document move
15230         the cursor to the beginning of the document.
15231
15232 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
15233
15234         * Control.cs: Remove static ArrayList "controls" which maintained
15235         a reference to every control created.
15236         * Application.cs: Create a static FormCollection to maintain a reference
15237         to every form created.  Use it in places that formerly enumerated through
15238         the controls one looking for forms.
15239         * Form.cs: Add and remove self from above FormCollection.
15240
15241 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
15242
15243         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
15244           not libgdk (though it makes me wonder why I didn't have any
15245           problems)
15246
15247 2006-12-07  Chris Toshok  <toshok@ximian.com>
15248
15249         [ you had to know this was coming after that last commit...]
15250         
15251         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
15252         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
15253         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
15254         XCopyArea).
15255
15256 2006-12-07  Chris Toshok  <toshok@ximian.com>
15257
15258         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
15259         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
15260         all the behavior we need for double buffering.
15261
15262         * XplatUIDriver.cs: implement the 3 double buffer methods using a
15263         client side Bitmap, just like the old Control-based double buffer
15264         code did.  The methods are virtual, so each XplatUI driver
15265         subclass can replace the implementation to use a faster, platform
15266         specific approach.
15267
15268         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
15269         double buffer code, and clean things up a bit in the process.
15270
15271 2006-12-06  Chris Toshok  <toshok@ximian.com>
15272
15273         * Control.cs: reindent WndProc.
15274
15275 2006-12-06  Chris Toshok  <toshok@ximian.com>
15276
15277         [ I wanna be like BenM when I grow up ]
15278         
15279         * Hwnd.cs: create a single static Graphics object on the static
15280         Bitmap we create.  use this for our text measurements.
15281
15282         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
15283         This was causing us to allocate a backbuffer for every control,
15284         even when it wasn't flagged as double buffered.  Instead use the
15285         single graphics instance.  This might have implications for
15286         multithreaded applications.  If we run into problems we can switch
15287         to creating 1 Graphics per control, on the static Hwnd bitmap.
15288
15289         this change nets us a 7M savings in private dirty mappings when
15290         running FormsTest.exe.
15291
15292 2006-12-06  Chris Toshok  <toshok@ximian.com>
15293
15294         * ListView.cs: the BackgroundImage override is just to set
15295         attributes.  chain up to base.BackgroundImage.
15296
15297         * RichTextBox.cs: same.
15298
15299         * ToolBar.cs: same, but we need to also redraw the toolbar when it
15300         changes, so instead a handler for BackgroundImageChanged.
15301         
15302         * Control.cs: make background_image private.
15303
15304 2006-12-06  Chris Toshok  <toshok@ximian.com>
15305
15306         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
15307         sure we even need this assignment, but roll with it for now.
15308
15309         * Control.cs: make the cursor field private.
15310
15311 2006-12-06  Chris Toshok  <toshok@ximian.com>
15312
15313         * Form.cs: we don't need to explicitly set ImeMode to
15314         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
15315         behavior in the face of ImeMode.Inherit.
15316
15317         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
15318         change the ctor's assignment to use ImeMode instead of ime_mode.
15319
15320         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
15321         ImeModeInherit.  Only check for the parent's imemode (and return
15322         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
15323         This fixes the button unit test, which sets both ImeMode and
15324         DefaultImeMode to ImeMode.Disable.
15325
15326         also make the ime_mode field private.
15327
15328 2006-12-06  Chris Toshok  <toshok@ximian.com>
15329
15330         * Control.cs: make control_style private.
15331
15332         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
15333         setting the styles to true, then setting them to false instead of
15334         reverting to their previous values.
15335
15336         also, call SetStyle on the scrollbars instead of using
15337         control_style directly.
15338
15339 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
15340
15341         * FormCollection.cs: Implement. [2.0]
15342
15343 2006-12-06  Chris Toshok  <toshok@ximian.com>
15344
15345         * Control.cs: make tab_stop private.
15346
15347         * Label.cs: set TabStop, not tab_stop.  reformat some event
15348         add/remove methods to make them more compact.
15349
15350 2006-12-06  Chris Toshok  <toshok@ximian.com>
15351
15352         * RadioButton.cs: fix TabStop handling.
15353
15354 2006-12-06  Chris Toshok  <toshok@ximian.com>
15355
15356         * TextBox.cs: remove the explicit assignments to has_focus.
15357         Control does that.
15358
15359         * ButtonBase.cs: remove the assignment to has_focus.  Control will
15360         manage that.
15361         
15362 2006-12-06  Chris Toshok  <toshok@ximian.com>
15363
15364         * ButtonBase.cs: remove all uses of is_enabled from this code.
15365         it's always true when any of the code containing the checks is
15366         executed.
15367
15368 2006-12-06  Chris Toshok  <toshok@ximian.com>
15369
15370         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
15371         with different semantics (some are present in both 1.1 and 2.0
15372         profiles) so that we match MS's behavior in our unit tests.
15373
15374 2006-12-06  Jackson Harper  <jackson@ximian.com>
15375
15376         * TextControl.cs: Make this operation undoable.
15377         * TextBoxBase.cs: Factor the border width into the preferred
15378         height.
15379         - implement Modified as per the spec.
15380
15381 2006-12-06  Chris Toshok  <toshok@ximian.com>
15382
15383         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
15384
15385 2006-12-06  Chris Toshok  <toshok@ximian.com>
15386
15387         * Control.cs: make right_to_left and context_menu fields private.
15388
15389 2006-12-06  Chris Toshok  <toshok@ximian.com>
15390
15391         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
15392         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
15393         Control.child_controls private.  switch all uses over to
15394         Control.Controls.
15395
15396 2006-12-06  Chris Toshok  <toshok@ximian.com>
15397
15398         * System.Windows.Forms/GroupBox.cs,
15399         System.Windows.Forms/AccessibleObject.cs,
15400         System.Windows.Forms/ErrorProvider.cs,
15401         System.Windows.Forms/Control.cs,
15402         System.Windows.Forms/UpDownBase.cs,
15403         System.Windows.Forms/ScrollBar.cs,
15404         System.Windows.Forms/DateTimePicker.cs,
15405         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
15406         System.Windows.Forms/ToolTip.cs,
15407         System.Windows.Forms/RadioButton.cs,
15408         System.Windows.Forms/LinkLabel.cs,
15409         System.Windows.Forms/Splitter.cs,
15410         System.Windows.Forms/TextBoxBase.cs,
15411         System.Windows.Forms/ToolStripTextBox.cs,
15412         System.Windows.Forms/ContainerControl.cs,
15413         System.Windows.Forms/ThemeWin32Classic.cs,
15414         System.Windows.Forms/SizeGrip.cs,
15415         System.Windows.Forms/ToolStripDropDown.cs,
15416         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
15417         private.  switch all uses over to Control.Parent.
15418
15419 2006-12-06  Chris Toshok  <toshok@ximian.com>
15420
15421         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
15422         Control does this before calling emitting these events.
15423
15424         * TabControl.cs: same.
15425
15426         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
15427         Control.client_rect.
15428
15429         * ButtonBase.cs: use the ClientSize property instead of the
15430         client_size field.
15431
15432         * ScrollableControl.cs: same.
15433
15434         * Control.cs: another pass at making properties private.  also,
15435         move the initialization of tab_stop to the ctor.
15436
15437 2006-12-05  Andreia Gaita <avidigal@novell.com>
15438
15439         * TabControl.cs: Let the selected index be set freely if the 
15440         control handle is not yet created.
15441
15442 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
15443
15444         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
15445         internal until I can rewrite DefaultLayout.
15446         * ToolStrip.cs: Fix build error and some general cleaning.
15447         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
15448         Fix build errors caused by making some of Control's fields private.
15449
15450 2006-12-05  Jackson Harper  <jackson@ximian.com>
15451
15452         * TextControl.cs: Redo Insert a little so that it use IndexOf
15453         instead of Split, this prevents it from messing up on things like
15454         \n\n\n. Also more effecient since the split array doesn't need to
15455         be created.
15456         * TextBoxBase.cs: AppendText doesnt handle multiline and non
15457         multiline text differently, this is the first of many fixes that
15458         will make multiline/non-multiline the same thing as far as the
15459         TextBoxBase is concerned.
15460         - Don't split the text and insert lines, this can lose some line
15461         endings (like is the last line a soft or hard break). Instead use
15462         the new Insert.
15463         - Fix an off by one when combining all the lines in the Text
15464         getter.
15465         - Remove separate multiline handling from the Text getter/setter.
15466
15467 2006-12-05  Chris Toshok  <toshok@ximian.com>
15468
15469         * ButtonBase.cs: a few changes:
15470
15471         - don't reinitialize internal Control fields in the ctor when they
15472         have the same values as Control sets them.
15473
15474         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
15475         this before calling those methods.
15476
15477         - we don't need to call Refresh for anything.  use Invalidate
15478         instead.
15479
15480         - OnEnabledChanged doesn't need to redraw at all - Control.cs
15481         calls Refresh in its OnEnabledChanged.
15482         
15483         - several of the events we were registered for in the ctor to
15484         redraw ourselves already include calls to Invalidate in the
15485         property setters that raise the events.  remove the extra
15486         invalidation.
15487
15488         - reformat a switch statement that was 83274658 columns wide.
15489         
15490 2006-12-05  Mike Kestner  <mkestner@novell.com>
15491
15492         * ComboBox.cs: fix a unit test regression from a TextBox
15493         SelectionLength return of -1 when there's no selection.  
15494
15495 2006-12-05  Chris Toshok  <toshok@ximian.com>
15496
15497         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
15498         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
15499         cleaning up some of the internal Control fields being used by
15500         subclasses.
15501
15502 2006-12-05  Mike Kestner  <mkestner@novell.com>
15503
15504         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
15505         listbox after AddImplicit calls since it defaults to hidden. Add a 
15506         hack to preserve requested heights across DropDownStyle changes.
15507
15508 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
15509
15510         * PropertyGrid.cs: Hide FindFirstItem method from public API.
15511
15512 2006-12-05  Chris Toshok  <toshok@ximian.com>
15513
15514         * DataGridView.cs: fix compiler warnings.
15515
15516         * PrintControllerWithStatusDialog.cs: same.
15517
15518         * ToolBar.cs: same.
15519
15520         * FolderBrowserDialog.cs: same.
15521
15522         * Splitter.cs: same.
15523
15524         * DataGridViewComboBoxCell.cs: same.
15525
15526         * XplatUIWin32.cs: same.
15527
15528         * PictureBox.cs: same.
15529
15530         * Win32DnD.cs: same.
15531
15532         * PageSetupDialog.cs: same.
15533
15534         * FileDialog.cs: same.
15535
15536         * PrintDialog.cs: same.
15537
15538         * DataGridTextBoxColumn.cs: same.
15539
15540         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
15541
15542 2006-12-05  Chris Toshok  <toshok@ximian.com>
15543
15544         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
15545         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
15546         System.ComponentModel.EventHandlerList work.
15547
15548 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
15549
15550         * DrawTreeNodeEventArgs.cs: Added.
15551
15552 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15553         
15554         * InternalWindowManager.cs: Remove an unused field.
15555         
15556 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15557
15558         * InternalWindowManager.cs:
15559         - Save the point where the title bar is clicked.
15560         
15561         * MdiWindowManager.cs:
15562         - Only allow moving of the window as long as the 
15563         clicked point on the title bar does not get out of
15564         MdiClient's rectangle. Fixes #79982.
15565         
15566         * MdiClient.cs:
15567         - Added Horizontal/VerticalScrollbarVisible.
15568         - Simplified the scrollbar sizing algorithm.
15569         - Cache the difference in scrolled value in
15570         H/VBarValueChanged and move the calculation out
15571         of the for loop.
15572
15573 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15574
15575         * Control.cs: Make the Console.WriteLine in WndProc 
15576         write more info.
15577
15578 2006-12-05  Chris Toshok  <toshok@ximian.com>
15579
15580         * ToolStripManager.cs, ToolStripButton.cs,
15581         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
15582         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
15583         ToolStripSplitButton.cs, ToolStripSeparator.cs,
15584         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
15585         ToolStripProgressBar.cs, ToolStripContainer.cs,
15586         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
15587         to using System.ComponentModel.EventHandlerList.
15588
15589 2006-12-04  Chris Toshok  <toshok@ximian.com>
15590
15591         * LinkLabel.cs: fix up compiler warnings.
15592
15593         * TableLayoutSettings.cs: same.
15594
15595         * TreeView.cs: same.
15596
15597         * ToolBar.cs: same.
15598
15599         * TabControl.cs: same.
15600
15601         * RichTextBox.cs: same.
15602
15603         * ListViewItem.cs: same.
15604
15605         * PropertyGrid.cs: same.
15606
15607         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
15608
15609         * ToolTip.cs same.
15610
15611         * TextRenderer.cs: fix up compiler warnings.
15612
15613         * Label.cs: same.
15614
15615         * Form.cs: corcompare fixes.
15616
15617         * PictureBox.cs: fix up compiler warnings.
15618
15619         * ImageListStreamer.cs: same.
15620
15621         * TrackBar.cs: corcompare fix.
15622
15623         * Control.cs: fix up compiler warnings.
15624
15625         * SplitterPanel.cs: same.
15626
15627         * NumericTextBox.cs: same.
15628
15629         * ImageList.cs: same.
15630
15631         * StatusStrip.cs: same.
15632
15633         * ProgressBar.cs: corcompare fix.
15634
15635         * ToolStripButton.cs: fix up compiler warnings.
15636
15637         * ToolStripStatusLabel.cs: same.
15638
15639         * ToolStripSplitButton.cs: same.
15640
15641         * ToolStripSeparator.cs: same.
15642
15643         * ToolStripProgressBar.cs: same.
15644
15645         * ToolStripDropDownMenu.cs: same
15646
15647         * ToolStripDropDown.cs: same.
15648
15649         * ToolStripDropDownButton.cs: same.
15650
15651         * ToolStrip.cs: same.
15652
15653         * ToolStripControlHost.cs: same.
15654
15655         * ToolStripContentPanel.cs: same.
15656
15657         * ToolStripDropDown.cs: same.
15658
15659         * ToolStripContainer.cs: same.
15660
15661         * ToolStripPanel.cs: same, and add "new" where we need it to work
15662         with the new ArrangedElementCollection.
15663
15664         * ToolStripItemCollection.cs: add "new" where we need it to work
15665         with the new ArrangedElementCollection.
15666
15667 2006-12-04  Andreia Gaita <avidigal@novell.com>
15668
15669         * TabControl.cs: Fix default tab selection to after TabControl
15670         gets focus and not before. Fixes #80128
15671
15672 2006-12-04  Chris Toshok  <toshok@ximian.com>
15673
15674         * DataGridTableStyle.cs: remove the gross calling of
15675         datagrid.Refresh from here.  It's a broken idea and it doesn't
15676         work anyway.
15677
15678         * DataGrid.cs: instead, just register/unregister from the
15679         DataGridTableStyle events in CurrentTableStyle.  we play it
15680         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
15681         even though some would most likely not require it.  Fixes bug
15682         #80115 (and one portion of #80117 as a side effect).
15683
15684 2006-12-04  Chris Toshok  <toshok@ximian.com>
15685
15686         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
15687         so the textbox (if any) goes away.  Fixes bug #80117.
15688
15689 2006-12-04  Chris Toshok  <toshok@ximian.com>
15690
15691         * DataGridColumnStyle.cs: set the column's readonly property
15692         initially based on the property descriptor's IsReadOnly.  Fixes
15693         bug #80044.
15694
15695 2006-12-04  Chris Toshok  <toshok@ximian.com>
15696
15697         * ComboBox.cs: wrap the dropdown style changing work in
15698         SuspendLayout/ResumeLayout.  Fixes bug #79968.
15699
15700 2006-12-04  Jackson Harper  <jackson@ximian.com>
15701
15702         * TextBoxBase.cs: Fix off by one, since these are one-based.
15703         * TextBox.cs: Select all the text when we get focus.  The TextBox
15704         does this but the RTB does not.
15705
15706 2006-12-04  Chris Toshok  <toshok@ximian.com>
15707
15708         * DataGridTextBoxColumn.cs: remove some spew.
15709
15710         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
15711         but some part of me is saying "it shouldn't be here.."  At any
15712         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
15713         setting the value.
15714
15715 2006-12-04  Chris Toshok  <toshok@ximian.com>
15716
15717         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
15718         to reassign the propertydescriptor.
15719
15720 2006-12-04  Jackson Harper  <jackson@ximian.com>
15721
15722         * TextBoxBase.cs:
15723         * TextControl.cs: Remove some unused variables.  Maybe this will
15724         patch things up between mike and I.
15725         - don't split lines less then one char wide, if the viewport is
15726         that small text won't be visible anyways.
15727         
15728 2006-12-04  Jackson Harper  <jackson@ximian.com>
15729
15730         * TextBoxBase.cs: Default selection length is -1, need to do some
15731         more testing on windows to see when this is used for the property.
15732         - Redid the Lines [] property to that we properly remove soft line
15733         breaks
15734         - added support for preserving carriage returns
15735         -  CanUndo is not a variable like 'is undo enabled' it just returns
15736         true if there is undo operations available.
15737         - AppendText doesn't need to grab the last tag itself anymore,
15738         this happens automatically when we move the cursor.
15739         * TextControl.cs: Add CompoundActions to the undo class. This
15740         allows combining the other operations into one big option.  ie a
15741         paste will combine { delete old, insert new, move cursor }
15742         - Add InsertString undo operation
15743         - New method for deleting multiline text
15744         - Add carriage returns to lines. So we can preserve carriage
15745         returns when text is 'roundtripped'
15746
15747 2006-12-04  Chris Toshok  <toshok@ximian.com>
15748
15749         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
15750         minimum 0.  Fixes the scrollbar exception in bug #80136.
15751
15752 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15753
15754         * MdiClient.cs: 
15755         * MdiWindowManager: Removed unused fields and methods.
15756         
15757 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15758         
15759         * StatusBar.cs: Update all panels when a AutoSize=Contents
15760         panel needs updating.
15761         
15762         * StatusBarPanel.cs: Remove twidth and only use initialize.
15763         Fixes #80031.
15764                 
15765 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15766
15767         * Form.cs: When a form's MdiParent is set add it directly
15768         on top of the z-order in stead of relying on MdiClient's
15769         ActivateChild to do it. Fixes #80135.
15770         
15771         * MdiClient.cs: 
15772         - Remove original_order, mdi_child_list is already doing
15773         the same thing.
15774         - Create mdi_child_list on construction in
15775         stead of first use (avoids a few null checks).
15776
15777         * MenuItem.cs: Use an already existing list of mdi children
15778         to get the correct order of children and remove the other
15779         redundant list.
15780
15781 2006-12-04  Chris Toshok  <toshok@ximian.com>
15782
15783         * PropertyGridView.cs: cached_splitter_location is only used in
15784         !DOUBLEBUFFER code.
15785
15786         * PropertyGrid.cs: implement the ComComponentNameChanged event
15787         using Events, hoping that would fix the warning.  Looks like a
15788         compiler bug instead (#80144).
15789
15790         * PropertyManager.cs: remove unused method.
15791
15792 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
15793
15794         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
15795         include parentesis to fix expression evaluation. Fixes #79634.
15796
15797 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
15798         
15799         * MenuAPI.cs:
15800         - Changes to fix behavior in Menu control, some reported in #80097
15801         and other detected during behavior refactory like a select event
15802         problems.
15803         - Remove unneded "if's" conditions.
15804         - Created an internal to flag when popup is active in control, we need 
15805         it because in .NET you can have menu active but without popup active
15806         when you active menu using popup without visible items.
15807         - Mimic win32 behavior for Select and Popup events.  
15808         - Dont open popup menu when you dont have visible subitems.
15809         - Do nothing when click on disabled menu item.
15810         - Some small changes to follow the coding style guidelines.
15811         - Unselect menu only when another control gives focus. Fixes #80097.
15812         - Remove unused code.
15813         
15814         * MenuItem.cs: internal VisibleItems method to check if menu
15815         theres visible subitems, it will be usefull to fix some 
15816         behavior in Menu control.
15817         
15818 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
15819         
15820         * Timer.cs: Tag property for 2.0 profile.
15821         
15822 2006-12-01  Chris Toshok  <toshok@ximian.com>
15823
15824         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
15825         
15826         * Win32DnD.cs: comment out some unused fields.
15827
15828         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
15829         some unused properties/methods.
15830
15831         * XplatUIX11.cs: fix MousePosition so we override the base class's
15832         property instead of conflicting with it.
15833
15834         * PictureBox.cs: comment out some unused fields
15835
15836         * OSXStructs.cs: make some struct fields public.
15837
15838         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
15839         MousePosition so we override the base class's property instead of
15840         conflicting with it.
15841
15842         * X11Dnd.cs: comment out some unused fields
15843
15844         * X11DesktopColors.cs: fix some struct field visibility to quiet
15845         the compiler.
15846
15847         * X11Dnd.cs: remove some debug code.
15848
15849         * ThemeClearlooks.cs: comment out unused field.
15850
15851         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
15852
15853         * ThemeGtk.cs: comment out some unused pinvokes.
15854
15855         * Timer.cs: remove some unused fields.
15856
15857         * ThemeClearlooks.cs: comment out unused field.
15858
15859         * UpDownBase.cs: comment out unused field.
15860
15861         * DataObject.cs: comment out unused field.
15862
15863         * DataGridBoolColumn.cs: reomve unused field.
15864
15865         * DataGrid.cs: remove unused field.
15866
15867         * Cursor.cs: remove old ToBitmap code.
15868
15869         * ControlPaint.cs: remove unused method.
15870
15871         * ScrollBar.cs: remove unused fields.
15872
15873         * ComboBox.cs: remove unused field, and chain up to
15874         AccessibleObject ctor.
15875
15876         * ListBox.cs: remove unused field.
15877
15878         * ButtonBase.cs: wrap a couple fields in NET_2_0.
15879
15880         * GridEntry.cs: remove unused fields.
15881
15882         * Binding.cs: remove unused fields.
15883
15884         * AxHost.cs: remove unused method.
15885
15886         * ContainerControl.cs: remove unused field.
15887
15888         * ScrollableControl.cs: remove unused fields.
15889
15890 2006-12-01  Chris Toshok  <toshok@ximian.com>
15891
15892         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
15893         the Where/WhereString stuff.  it's easy enough to CWL
15894         Environment.StackTrace.
15895
15896         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
15897         unused private fields.
15898
15899 2006-12-01  Jackson Harper  <jackson@ximian.com>
15900
15901         * TextControl.cs: Do not update the view while inserting multiline
15902         text. If we update the view we might wrap lines, before entering
15903         the new lines, which causes the new line insertion calculations to
15904         be totally fubared.
15905         - Remove an old TODO
15906         - Make debug output a little nicer
15907         
15908 2006-12-01  Chris Toshok  <toshok@ximian.com>
15909
15910         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
15911
15912 2006-12-01  Chris Toshok  <toshok@ximian.com>
15913
15914         [ fix the majority of the CS0108 warnings we've been suppressing ]
15915         
15916         * TreeView.cs: mark BackgroundImageChanged as 'new'.
15917
15918         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
15919         to "LayoutToolBar" to quiet mcs.
15920         
15921         * TabControl.cs: mark our ControlCollection class as 'new'.
15922
15923         * TextBoxBase.cs: mark some events as 'new'.
15924
15925         * Splitter.cs: TabStop is 'new'.
15926
15927         * ControlBindingsCollection.cs: mark a few methods as new since
15928         they change the visibility from protected to public.
15929
15930         * RadioButton.cs: DoubleClick -> base class, and remove unused
15931         HaveDoubleClick.
15932
15933         * MonthCalendar.cs: ImeMode property -> base class, and mark many
15934         events as new.
15935
15936         * NumericUpDown.cs: TextChanged -> base class.
15937
15938         * CheckedListBox.cs: mark our ObjectCollection class as new to
15939         quiet mcs.
15940
15941         * FolderBrowserDialog.cs: make HelpRequest event new and have it
15942         muck with the base class.
15943
15944         * StatusBar.cs: fix some mcs warnings about Update being the same
15945         name as a base class method.
15946
15947         * RichTextBox.cs: mark some events as new, and make them do things
15948         to the base class impl.
15949
15950         * UserControl.cs: mark TextChanged as new, and have it manipulate
15951         base.TextChanged.
15952
15953         * UpDownBase.cs: mark some things new.
15954
15955         * CheckBox.cs: mark DoubleClick "new", and add some text about
15956         what we need to look at.
15957
15958         * Panel.cs: make the events "new", and manipulate the base
15959         version.  these are just here for attributes.
15960
15961         * AccessibleObject.cs: make owner private.
15962
15963         * Control.cs: deal with AccessibleObject.owner being private.
15964         cache our own copy if we need it.
15965
15966         * Button.cs: add "new" to the DoubleClickEvent.
15967
15968         * ListBox.cs: no need to track our own has_focus here.  let
15969         Control.has_focus do it for us.  Also some other work to clear up
15970         warnings about not overriding base class methods of the same name.
15971         
15972         * ComboBox.cs: clear up some warnings about not override base
15973         class methods of the same name.
15974
15975 2006-12-01  Chris Toshok  <toshok@ximian.com>
15976
15977         * Form.cs: flag a few things as "new" to quiet some of the mcs
15978         warnings.
15979
15980         * AxHost.cs: same.
15981
15982         * PrintPreviewDialog.cs: same.
15983
15984         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
15985         now DGV isn't so horrible on the class status page.  also, move
15986         all events to using System.ComponentModel.EventHandlerList.  my
15987         wrists hurt.
15988
15989 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
15990
15991         * MdiWindowManager.cs:
15992         - Set form to active mdi child if shown,
15993         and update the active mdi child to the next 
15994         remaining child in the z-order if the form is hidden.
15995
15996         * Form.cs: 
15997         - Track if the form has been visible and if its 
15998         visibility is beeing changed, so that the MdiClient
15999         can properly decide the ActiveMdiChild. The MdiClient 
16000         cannot track this since the form can change visibility 
16001         before MdiClient is created.
16002
16003         * MdiClient.cs:
16004         - Don't activate anything of the parent form is changing
16005         its visibility.
16006         - Rework ActiveMdiChild to only return visible mdi 
16007         children and take into account several other corner 
16008         cases.
16009
16010 2006-12-01  Chris Toshok  <toshok@ximian.com>
16011
16012         * IBindableComponent.cs: new 2.0 interface.
16013
16014 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
16015
16016         * DataGrid.cs: Font for caption area is bold by default.
16017
16018 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
16019
16020         * Menu.cs: Tag property for 2.0.
16021         
16022 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
16023
16024         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
16025         
16026 2006-12-01  Chris Toshok  <toshok@ximian.com>
16027
16028         * TreeView.cs: doh, the Begin* events should be
16029         TreeViewCancelEventHandler.
16030
16031 2006-12-01  Chris Toshok  <toshok@ximian.com>
16032
16033         * Form.cs: Form.ControlCollection already stores off the
16034         form_owner field.  don't access the base class's internal "owner"
16035         field.
16036
16037         * Control.cs: make all the fields in Control.ControlCollection
16038         private.  there's no need for any internal fields here.
16039
16040 2006-12-01  Chris Toshok  <toshok@ximian.com>
16041
16042         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
16043         OnHandleCreated.  Fixes bug #80109.
16044
16045 2006-12-01  Chris Toshok  <toshok@ximian.com>
16046
16047         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
16048         SplitContainer.cs, Control.cs, StatusStrip.cs,
16049         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
16050         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
16051         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
16052         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
16053         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
16054         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
16055         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
16056         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
16057         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
16058         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
16059
16060         do most of the work to convert our code over to use
16061         System.ComponentModel.Component.Events for
16062         adding/removing/dispatching events.
16063
16064
16065 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
16066
16067         * DataGridView.cs: Fix an ArgumentNullException reported 
16068         twice today in IRC.
16069
16070 2006-11-30  Mike Kestner  <mkestner@novell.com>
16071
16072         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
16073         grabbed listbox.  Fixes #80036 and #80101.
16074
16075 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
16076
16077         * Message.cs: Changed ToString() to match MS.
16078         
16079 2006-11-30  Jackson Harper  <jackson@ximian.com>
16080
16081         * TextBoxBase.cs: You can still change the selected text on a read
16082         only textbox.
16083         * TextControl.cs: Lower magic number for wrap calculations. This
16084         lets text get closer to the right (far) edge.
16085
16086 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
16087
16088         * Control.cs: Tweak 2.0 layout properties.
16089         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
16090         * TextRenderer.cs: Add a new overload.
16091         * ToolStrip*: Huge amount of changes and new features.
16092
16093 2006-11-30  Mike Kestner  <mkestner@novell.com>
16094
16095         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
16096         scroll range correct.  Fixes #79994.
16097
16098 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
16099
16100         * MdiWindowManager.cs: Update main form's text when
16101         a form is closed. (fixes #80038)
16102         
16103 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
16104
16105         * ToolBar.cs:
16106         - Fix an regression in ButtonSize.
16107         - Get ImeMode default value change to "Disable".
16108         - Get ShowTooltips default value change to true, default value is 
16109         "false" but after make a test in .NET we get "true" result as default.
16110         
16111 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
16112
16113         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
16114
16115 2006-11-29  Chris Toshok  <toshok@ximian.com>
16116
16117         * XplatUIWin32.cs (GetWindowTransparency): check return value of
16118         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
16119         SetWindowTransparency hasn't been called.
16120
16121 2006-11-29  Chris Toshok  <toshok@ximian.com>
16122
16123         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
16124         if it's supported.
16125         (set_AllowTransparency): reorder things a little so that the
16126         WS_EX_LAYERED style is removed properly.
16127
16128 2006-11-29  Chris Toshok  <toshok@ximian.com>
16129
16130         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
16131         
16132         * Form.cs: only call the XplatUI transparency method (get/set) if
16133         SupportsTransparency says it's supported. Otherwise fallback to
16134         doing nothing (in the set case) or returning the instance field we
16135         cache (in the get case).
16136
16137         * XplatUIStructs.cs: add TransparencySupport flag enum.
16138         
16139         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
16140         change to SupportsTransparency.
16141
16142         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
16143         TransparencySupport.None from SupportsTransparency.
16144
16145         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
16146         TransparencySupport.Set from SupportsTransparency.
16147
16148         * XplatUIWin32.cs: implement GetWindowTransparency calling
16149         GetLayeredWindowAttributes, and implement SupportsTransparency by
16150         checking whether or not both
16151         GetWindowTransparency/SetWindowTransparency are available
16152         entrypoints.  We need to do this since SetWindowTransparency is
16153         available as of win2k, but GetWindowTransparency requires winxp.
16154         yay win32 api.
16155
16156         * XplatUI.cs: Add GetWindowTransparency, and change
16157         SupportsTransparency to allow for either/both Get/Set.
16158
16159 2006-11-29  Chris Toshok  <toshok@ximian.com>
16160
16161         * DataGrid.cs: keep from going into an infinite loop redrawing a
16162         datagrid that has no datasource.  Fixes bug #80033.
16163
16164 2006-11-29  Chris Toshok  <toshok@ximian.com>
16165
16166         * MenuItem.cs: fix the NRE when we assign text (and therefore call
16167         Invalidate) before the mainmenu has been assigned to a control.
16168
16169 2006-11-29  Chris Toshok  <toshok@ximian.com>
16170
16171         * DataGrid.cs: detect when we should be double the double click
16172         row/column autosize stuff, although that codepath has yet to be
16173         written.  part of the work for bug #79891.
16174
16175 2006-11-29  Chris Toshok  <toshok@ximian.com>
16176
16177         * Binding.cs (SetControl): fix unit test.
16178
16179 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16180
16181         * PageSetupDialog.cs: Validate the margins and set them in
16182         PageSettings. 
16183         * NumericTextBox.cs: New class to mimic the behavior of the
16184         textboxes used in the printing dialogs.
16185
16186 2006-11-29  Andreia Gaita  <avidigal@novell.com>
16187         
16188         * Form.cs: Revert previous change (remove call UpdateBounds
16189         from form constructor), because it messes with the handle creation
16190         order, and that one needs lots and lots of love.
16191         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
16192         for valid printer and throw InvalidPrinterException if document
16193         is set but printer not valid), adding a MonoTODO. Once 
16194         handle creation is done properly, we can put this back in.
16195
16196 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
16197
16198         * MenuItem.cs: Create a invalidate method for menu item, to be
16199         calling from set text, it make text changes to imadiate update
16200         on screen. Fixes #80013. 
16201         
16202 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
16203
16204         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
16205         fixes bug #80070 and some other problem on toolbar buttons
16206         layout.
16207
16208 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
16209
16210         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
16211         with dotted brush.      Fixes #79564
16212         
16213 2006-11-28  Andreia Gaita  <avidigal@novell.com>
16214
16215         * Form.cs: Removed call to UpdateBounds on Form
16216         constructor, it was causing a call to CreateHandle
16217         before it was supposed to.
16218         * PrintControllerWithStatusDialog: Applied patch
16219         by Chris Toshok to hide controller when there are
16220         no printers available.
16221         PrintDialog.cs: initialize printer settings to 
16222         null - correct DefaultValues test #5
16223         * PrintPreviewControl.cs: Move PrintController
16224         initialization to GeneratePreview
16225         * PrintPreviewDialog.cs: 
16226         - Remove Preview generation     from Document_set(). It is 
16227         called on OnPaint
16228         - Throw InvalidPrinterException on CreateHandle if
16229         a Document is set but there are no printers or 
16230         printer is not valid.
16231         * ThemeWin32Classic: don't paint PrintPreviewControl
16232         if there is nothing to paint    
16233
16234 2006-11-28  Miguel de Icaza  <miguel@novell.com>
16235
16236         * Form.cs: Add another popular method.
16237
16238         * TabPage.cs: ditto.
16239
16240 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16241
16242         * MenuItem.cs: Fixed a warning.
16243         * InternalWindowManager: Fixed a warning.
16244
16245 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16246
16247         * MenuItem.cs:
16248         - When cloning a menu also clone MdiList and clone the 
16249           window menu items properly (as the forms and menuitems
16250           are kept in an internal hashtable, these need updating 
16251           as well)
16252         - Rewrote the window menu code, menu items are added in the
16253           order the forms were added to their parent, and they are
16254           updated every time the window menu is shown (before the
16255           list was only generated once, in the current order of the
16256           forms, and would never be updated). A checkmark is shown
16257           next to the item corresponding to the active mdi child.
16258
16259 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16260
16261         * XplatUIStructs.cs: 
16262         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
16263         
16264         * XplatUIWin32.cs: 
16265         - Added TME_NONCLIENT to TMEFlags.
16266         - Handles WM_NCMOUSEMOVE in GetMessage to 
16267           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
16268
16269         * MdiWindowManager:
16270         - Now merges mdi child menu to parent menu when maximized.
16271         - Recalculate NC areas of both mdi child and mdi parent. 
16272           Fixes #79757 (4).
16273           on window state and size changes.Fixes #79844 (3).
16274         - Handle WM_NCCALCSIZE to properly calculate borders.
16275
16276         * Form.cs:
16277         - Add/remove to the mdi containers list of mdi children 
16278           in the order they are added.
16279         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
16280           to the maximized mdi child.
16281         
16282         * InternalWindowManager.cs:
16283         - Only execute a click on the control buttons on the mouse up,
16284           not on the mouse down. Show the state of the button 
16285           (was only showing Normal state, never Pressed state). The
16286           pressed button now follows the mouse (if you click the Close 
16287           button and move the mouse over the Maximize button, the 
16288           Maximize button will be shown as pressed). Since Win32 does
16289           not generate WM_NCLBUTTONUP if you release the button outside
16290           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
16291           it as a mouse up.
16292         
16293         * ThemeWin32Classic.cs:
16294         - Draw a missing border around mdi child forms. Fixes #79844 (2).
16295
16296         * MdiClient.cs:
16297         - Added a list of forms which contains the order the forms are
16298           added to the mdi parent.
16299         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
16300         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
16301         - If the active form changes set the scrollbars to the top
16302           of the Z order, otherwise the form could hide them.
16303         - Scrollbars are now sized according to ClientSize, not 
16304           to Size, and they take into account the other scrollbar
16305           to determine maximum.
16306         
16307 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
16308         
16309         * XplatUI.cs:
16310         * XplatUIDriver.cs:
16311         * XplatUIX11.cs:
16312         * XplatUIWin32.cs:
16313         * XplatUIOSX.cs:
16314         - Added RequestAdditionalWM_NCMessages for windows to 
16315           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
16316           Currently only implemented in XplatUIWin32.
16317
16318 2006-11-27  Chris Toshok  <toshok@ximian.com>
16319
16320         * Hwnd.cs: only add the hwnd to the windows hash in
16321         set_WholeWindow and set_ClientWindow if whole_window/client_window
16322         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
16323
16324 2006-11-27  Mike Kestner  <mkestner@novell.com>
16325
16326         * ComboBox.cs: remove redundant OnDropDown call.  It is called
16327         from the ComboListBox.ShowWindow code. Fixes #79969.
16328
16329 2006-11-27  Chris Toshok  <toshok@ximian.com>
16330
16331         * Hwnd.cs: remove the setters for ExposePending and
16332         NCExposePending - noone uses them.
16333
16334 2006-11-27  Jackson Harper  <jackson@ximian.com>
16335
16336         * TextControl.cs: new param for ReplaceSelection which determines
16337         whether we select the new selection, or set the cursor to the end
16338         of the new selection.
16339         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
16340         pasting, select the new text.
16341         * RichTextBox.cs: Use new param for ReplaceSelection.
16342
16343 2006-11-27  Jackson Harper  <jackson@ximian.com>
16344
16345         * TextBoxBase.cs: Set the selection to the caret after the caret
16346         is moved, otherwise they get out of sync.
16347
16348 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
16349
16350         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
16351         it fixes #80015
16352
16353 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
16354
16355         * ThemeWin32Classic.cs: 
16356         - Fix toolbar drop down arrow position.
16357         - Fix drop down appearance when ToolBar.Appearance is normal,
16358         it fixes #80018.
16359         
16360 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
16361
16362         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
16363         * Control.cs: Same.
16364         * UpDownBase.cs: Same.
16365         * ButtonBase.cs: Same.
16366         * ScrollBar.cs: Same.
16367         * TrackBar.cs: Same.
16368         * PictureBox.cs: Same.
16369         * UserControl.cs: Same.
16370         * Label.cs: Same.
16371         * ListControl.cs: Same.
16372         * TextBoxBase.cs: Same.
16373         * ListView.cs: Same.
16374         * RichTextBox.cs: Same.
16375         * TreeView.cs: Same.
16376
16377 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
16378
16379         * PrintDialog.cs:
16380         - Text label for where 
16381         - Text label comment was not shown
16382
16383 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
16384
16385         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
16386
16387 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
16388
16389         * InternalWindowManager.cs: 
16390         - Handle WM_PARENTNOTIFY to activate the form
16391         if any child control is clicked.
16392         - The form is only sizable if not minimized.
16393
16394         * MdiWindowManager.cs:
16395         - Save the IconicBounds if the form is moved.
16396         - Rework SetWindowState, now the window bounds 
16397         are stored only if the old window state is Normal.
16398         
16399         * MdiClient.cs:
16400         - In SetWindowStates store the old window state if 
16401         the window is maximized and restore window state if
16402         the window looses focus.
16403         - Don't handle any scrollbar value changes if 
16404         initializing the scroll bars. Fixes #79771.
16405         - Reworked ArrangeIconicWindows. Current algorithm
16406         tests bounds agains all other minimized windows, if
16407         any intersections create new bounds (going left to 
16408         right, bottom to top) and then test again. When 
16409         successful the bounds are saved and never computed
16410         again. Fixes #79774.
16411
16412 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
16413
16414         * InternalWindowManager.cs: Added HandleTitleBarUp.
16415
16416 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
16417
16418         * NumericUpDown.cs: In .NET 1.1, user entered text is still
16419         hexadecimal in ParseUserEdit.
16420
16421         
16422 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
16423
16424         * MdiWindowManager.cs: 
16425         - Handle a click on the form's icon to show the 
16426         system menu (when maximized). Fixes #79775.
16427         - Change the existing click handler for the form's
16428         icon when not maximized to show on MouseUp.
16429         Fixes #79776.
16430
16431         * Form.cs: In OnResize only layout the mdi child's
16432         parent if it actually has a parent. Might not if
16433         the window is closing.
16434
16435
16436 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
16437
16438         * MdiClient.cs: Ignore active MDI client for text of parent, if
16439         child has no text set.
16440
16441 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
16442
16443         * ToolBar.cs: Fixed ToString to match MS.
16444
16445 2006-11-22  Andreia Gaita  <avidigal@novell.com>
16446
16447         * NumericUpDown: 
16448         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
16449         update inner values on set. Fixes #79966.
16450         - Override OnLostFocus to update value on NET 2. Fixes #79950.
16451         - Fix hexadecimal parsing.
16452         
16453         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
16454         parent. Fixes #79957
16455
16456 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16457
16458         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
16459         the actual size has to be queried, since if height /
16460         width is negative Win32 changes it to 0. 
16461         Fixes #79999 on Windows.
16462         
16463         * XplatUIX11.cs: Set height / width to 0 if negative
16464         in SetWindowPos. Fixes #79999 on Linux.
16465         
16466 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
16467
16468         * ThemeWin32Classic.cs: Fix text redenring when button is
16469         pressed.
16470
16471 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
16472
16473         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
16474         and later navigate by mouse. Fixes #79528.
16475
16476 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
16477
16478         * ToolBar.cs: Set default value for TabStop to false in
16479         constructor, it fixes remaining behavior of bug #79863.
16480
16481 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16482
16483         * MdiWindowManager.cs:
16484         * InternalWindowManager.cs:
16485         - Moved a few methods specific to Mdi from 
16486         InternalWindowManager to MdiWindowManager.
16487         Fixes #79996.
16488         
16489 2006-11-21  Chris Toshok  <toshok@ximian.com>
16490
16491         * XplatUIOSX.cs: stub out InvalidateNC.
16492
16493         * XplatUIWin32.cs: implement InvalidateNC using the call I found
16494         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
16495
16496         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
16497
16498         * XplatUIDriver.cs: add InvalidateNC abstract method.
16499
16500         * XplatUI.cs: add InvalidateNC.
16501
16502 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
16503
16504         * ToolBar.cs: Invalidate complete button area when pressed status 
16505         was changed.
16506         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
16507         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
16508         by 1 when button is pressed.
16509
16510 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
16511
16512         * ToolButton.cs: Invalidate middle of DropDown button when
16513         ToolBar theres DropDownArrows.
16514         * ThemeWin32Classic.cs: Change position of DropDown arrow and
16515         fix DropDown drawing operations.
16516
16517 2006-11-20  Chris Toshok  <toshok@ximian.com>
16518
16519         * NativeWindow.cs: fix the formatting of functions ('{' on the
16520         following line), and enable the thread exception dialog.
16521
16522         * Application.cs: remove the duplicate exception catching from
16523         here.
16524
16525 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
16526
16527         * Toolbar.cs: Triggers button click event when click on icon
16528         of dropdown ToolBarButton. Fixes #79912.
16529         
16530 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16531
16532         * Theme.cs:
16533         * ThemeWin32Classic.cs:
16534         - Added a property WindowBorderFont to enable themeing
16535           of mdi child windows' Text.
16536           
16537 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16538
16539         * InternalWindowManager.cs:
16540         * Form.cs:
16541         * MdiClient.cs:
16542         * MdiWindowManager.cs: 
16543         - If mdi child is maximized, set mdi parent's
16544           text to "Parent - [Child]". Fixes #79770.
16545         - If there is any maximized mdi child windows, only the active 
16546           window (and any new windows) is maximized, the rest are normal.
16547         - On a WindowState change only save mdi child's window bounds 
16548           if the old window state was normal. Fixes #79774.
16549         - The scroll bars are now calculated on hopefully all
16550           necessary events. Fixed #79771 / #79844->6 / #79906.
16551         - MdiClient.SizeScrollBars() now takes into account docked 
16552           controls in the parent when calculating available space.
16553         - InternalWindowManager now always repaints the entire title
16554           area. Fixes #79844->1/4/5.
16555         - Added RequestNCRecalc on mdi child windowstate changes.
16556           Fixes #79772.
16557
16558 2006-11-20  Mike Kestner  <mkestner@novell.com>
16559
16560         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
16561         in the MouseUp handler of the listbox and move the return handling
16562         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
16563
16564 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
16565
16566         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
16567
16568 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
16569
16570         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
16571           working in 1.2.x anymore. So, updated.
16572
16573 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
16574
16575         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
16576         NumberGroupSeparator of current culture instead of assuming en-US.
16577         Fixed bug #79967.
16578
16579 2006-11-17  Mike Kestner  <mkestner@novell.com>
16580
16581         * Control.cs: Add the concept of implicit bounds setting so that
16582         dock/undock round trips preserve explicitly set size/locations.
16583         Fixes #79313.
16584
16585 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
16586
16587         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
16588           can't handle those filters. (Fixes bug #79961)
16589
16590 2006-11-17  Chris Toshok  <toshok@ximian.com>
16591
16592         [ fixes the exit/crashes associated with #79835.  it's clearly
16593         suboptimal though, we need to figure out a better way to solve
16594         this. ]
16595         
16596         * PrintPreviewControl.cs: deal with the new invalid printer
16597         exceptions.
16598
16599         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
16600         and return false (so CommonDialog.ShowDialog doesn't actually show
16601         the form.)
16602
16603         * PrintDialog.cs: enable/disable the Ok button depending on
16604         whether or not the printer is valid.
16605
16606         * CommonDialog.cs (ShowDialog): only actually show the form if
16607         RunDialog returns true.
16608
16609 2006-11-17  Jackson Harper  <jackson@ximian.com>
16610
16611         * TextControl.cs: When soft splitting a line, mark it as a soft
16612         split line. Also carry over the current line break to the next
16613         line.
16614
16615 2006-11-17  Chris Toshok  <toshok@ximian.com>
16616
16617         * XplatUIX11.cs: when scrolling a window with an invalid area, we
16618         only want to shift the part of the invalid area that overlaps the
16619         area we're scrolling.  we also don't want to clear the invalid
16620         area unless the invalid area was entirely contained within the
16621         scrolling area.
16622
16623 2006-11-16  Chris Toshok  <toshok@ximian.com>
16624
16625         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
16626         also make sure to free the memory returned by XGetWindowProperty
16627         in GetText().
16628
16629         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
16630
16631 2006-11-16  Chris Toshok  <toshok@ximian.com>
16632
16633         * XplatUI.cs: add a new super secret way to get at the totally
16634         unsupported X11 backend.
16635
16636 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
16637
16638         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
16639
16640 2006-11-16  Jackson Harper  <jackson@ximian.com>
16641
16642         * TreeView.cs: Allow more explicit setting of top node position
16643         for scrollbars. Slower algo, but more accurate.
16644         - CollapseAll should maintain the current top node.
16645         * TextBoxBase.cs: When positioning the caret, use the line, pos
16646         method, since the x, y method does not grab the correct tag, and
16647         the caret height never gets set correctly. (Maybe I should just do
16648         away with the caret having its own height, and always use the
16649         carets current tag for height).
16650
16651 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
16652
16653         [Fixes 79778, 79923]
16654
16655         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
16656         Parent to the FosterParent instead.
16657
16658 2006-11-16  Jackson Harper  <jackson@ximian.com>
16659
16660         * TreeView.cs: Need to recalc the topnode when we expand or
16661         collapse. The scrolling methods can't handle this on their own,
16662         since they use differences between the last scroll position, and
16663         those difference get completely messed up since we are expanding
16664         nodes.  This problem should probably be fixed in the scrolling
16665         methods, so they can figure out exactly where they are, but this
16666         will slow things down a little.
16667         * ThemeWin32Classic.cs: Special case for groupboxes with empty
16668         strings, makes nunit-gui look a lot nicer.
16669
16670 2006-11-16  Chris Toshok  <toshok@ximian.com>
16671
16672         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
16673         the broken multithreaded event handling we have in here.  File
16674         this entry under "Why we should move to the new X11 backend".
16675
16676         Any thread can make it into UpdateMessageQueue, which gets events
16677         from the X socket - some of which could belong to hwnds being
16678         managed by a different thread.  We can also have multiple threads
16679         in UpdateMessageQueue at the same time, with each one reading from
16680         the X socket.  This leads to many problems, with the following
16681         solutions:
16682
16683         We can't use hwnd.Queue.Enqueue anywhere in here and must use
16684         EnqueueLocked.
16685
16686         The MotionNotify compression we do can't work across threads
16687         (without locking the entire queue, perhaps) since we call
16688         hwnd.Queue.Peek, so we just punt and don't compress motion events
16689         unless the owning thread is the one which got the X event.
16690
16691         ConfigureNotify is another fun one, since it modifies the hwnd's
16692         bounds and then enqueues the event.  We add a lock to Hwnd which
16693         is held when setting configure_pending to true (and enqueuing the
16694         event).
16695
16696         There is a race wrt the wake socket.  we need to make sure that
16697         only 1 thread is waiting on that socket, or else a thread could
16698         sleep waiting for data that never comes.  It's difficult (but not
16699         impossible) to make happen, because it seems to require something
16700         like the following:
16701
16702             1. Thread 1 polls on wake_receive
16703         
16704             2. poll returns saying there's data to be read on
16705                wake_receive.
16706         
16707             3. Thread 2 polls on wake_receive and immediately returns
16708                saying there's data to be read.
16709
16710             4. Thread 2 reads the wakeup byte from wake_receive
16711
16712             5. Thread 1 attempts to read the wakeup byte from
16713                wake_receive.
16714
16715             6. Thread 2 exits (due to a form closing, perhaps).
16716
16717             7. Thread 1 blocks forever.
16718         
16719         Fun, eh?
16720
16721         Fixing the Expose handling isn't done yet, and the races inherent
16722         in that piece of code are responsible for the drawing mistakes you
16723         see when generating expose events in a MT app (like NPlot).  This
16724         one is the likely to be the hardest to bandaid, and it doesn't
16725         appear to cause anything but drawing problems.  The other issues
16726         caused apps to exit or hang.
16727
16728         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
16729         called from a different thread than the one that should be calling
16730         these functions.
16731
16732         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
16733
16734 2006-11-15  Chris Toshok  <toshok@ximian.com>
16735
16736         * Application.cs: null out the context's MainForm when we exit
16737         RunLoop.  Fixes a newly checked in unit test as well as the last
16738         ODE from bug #79933.
16739
16740 2006-11-15  Chris Toshok  <toshok@ximian.com>
16741
16742         * Form.cs (set_Owner): allow a null value so we can clear the
16743         form's owner.
16744         (Dispose): set all our owned_form's Owner properties to null, and
16745         clear the owned_forms collection.
16746         (WM_CLOSE): clean up this a little bit.. still not right though.
16747
16748         * ApplicationContext.cs: OnMainFormClosed should only call
16749         ExitThreadCore if the main form isn't recreating.  Fixes unit
16750         test.
16751
16752 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
16753
16754         [Fixes 78346]
16755
16756         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
16757
16758 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
16759
16760         [Fixes 79433]
16761
16762         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
16763         keep popup window types from stealing focus from the main form
16764         on Windows.
16765
16766         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
16767
16768         * MenuAPI.cs: Set above flag to true.
16769
16770 2006-11-15  Chris Toshok  <toshok@ximian.com>
16771
16772         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
16773         the button being released is not in wParam.
16774
16775 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
16776
16777         * Form.cs: Add the released button to MouseEventArgs.Button
16778         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
16779         on Win32.
16780
16781 2006-11-15  Chris Toshok  <toshok@ximian.com>
16782
16783         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
16784         GetText().  untested because it's unused in our implementation.
16785         Control.Text always caches the text, even if
16786         ControlStyles.CacheText is not set.
16787
16788         fixes bug #79939.
16789
16790 2006-11-15  Chris Toshok  <toshok@ximian.com>
16791
16792         [ fixes #79933 ]
16793         
16794         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
16795         message.  no hiding, no disposing.
16796
16797         in the WM_CLOSE handler, hide the form if it's modal.
16798
16799 2006-11-15  Chris Toshok  <toshok@ximian.com>
16800
16801         * XplatUIX11.cs: use AddExpose instead of sending a message.
16802         fixes textbox border drawing.
16803
16804 2006-11-15  Chris Toshok  <toshok@ximian.com>
16805
16806         * PropertyGridView.cs: keep from crashing on mouse move/down when
16807         the property grid is empty.
16808
16809 2006-11-14  Jackson Harper  <jackson@ximian.com>
16810
16811         * TextControl.cs: Make PageUp and PageDown more like the MS
16812         versions.
16813         * TextBoxBase.cs: When we set the text property position the
16814         cursor at the beginning of the document.
16815
16816 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16817
16818         * Form.cs: if a mdi child's WindowState has changed
16819         before it's creation, it would display wrong control
16820         buttons.
16821         
16822 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
16823
16824         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
16825           (Fixes bug #79927)
16826
16827 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16828
16829         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
16830         the window gets to paint its borders even if the window is
16831         getting smaller.
16832         
16833         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
16834         otherwise the old control buttons would still be painted 
16835         if the window gets bigger.
16836         
16837         * PaintEventArgs.cs: add an internal method so that the clip 
16838         rectangle can be changed.
16839         
16840 2006-11-13  Chris Toshok  <toshok@ximian.com>
16841
16842         [ fixes bug #79745 ]
16843         
16844         * NotifyIcon.cs: lots of cleanup.
16845
16846         * X11Structs.cs: add an enum for XEMBED messages.
16847
16848         * XplatUIX11.cs: reindent one of the giant switch statements, it
16849         was taking up an additional tab stop, and this file is already way
16850         too wide for my laptop's screen.
16851
16852         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
16853         we get it, resize the hwnd to the WMNormalHints max_width/height.
16854
16855 2006-11-13  Jackson Harper  <jackson@ximian.com>
16856
16857         * TextBoxBase.cs: Compute the value changes for the mouse wheel
16858         teh simple way.
16859
16860 2006-11-13  Chris Toshok  <toshok@ximian.com>
16861
16862         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
16863         #79898.  force a reference to the Region to stick around so the
16864         unmanaged object isn't collected (rendering our handle in the MSG
16865         stale).
16866
16867 2006-11-13  Chris Toshok  <toshok@ximian.com>
16868
16869         * XplatUIX11.cs: fix #79917 for window managers which support
16870
16871         using XStoreName on the raw utf8, and we need to convert to
16872         COMPOUND_TEXT if it's non-latin1.
16873
16874 2006-11-13  Chris Toshok  <toshok@ximian.com>
16875
16876         * Form.cs (set_DialogResult): we need to set closing to false if
16877         we're setting our result to None.  fixes bug #79908.
16878
16879 2006-11-13  Jackson Harper  <jackson@ximian.com>
16880
16881         * TextControl.cs: When formatting text, compute the adjusted tag
16882         lengths correctly, using FindTag for the end tag instead of trying
16883         to figure it out outselves.
16884         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
16885         the item, ItemHeight doesn't work, because trees with large
16886         imagelists use those for their height
16887         * TreeView.cs: ActualItemHeight factors in the image height
16888         - compute left edge of checkboxes correctly
16889         - when expanding/collapsing move the bottom down one pixel, so we
16890         aren't moving part of the node
16891
16892 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16893
16894         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
16895         stack in PaintEventStart so that it won't get disposed by the gc
16896         before reaching PaintEventEnd.
16897
16898 2006-11-13  Jackson Harper  <jackson@ximian.com>
16899
16900         * TextBoxBase.cs: Don't select the word if we are on a line with
16901         no text.
16902         - We don't need to position the caret on mouse up, since the mouse
16903         move handler should be doing this
16904         - When double clicking a blank line, the caret is advanced to the
16905         next line.
16906
16907 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
16908
16909         * TreeNodeCollection.cs: Avoid duplicating indexer code.
16910
16911 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
16912
16913         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
16914         Fixes part of bug #79910.
16915
16916 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
16917
16918         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
16919           (bug #79903). Some minor string updates to match ms.
16920
16921 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
16922
16923         * FileDialog.cs: Don't add an extension if the filename
16924           already ends with that extension.
16925
16926 2006-11-10  Jackson Harper  <jackson@ximian.com>
16927
16928         * TreeView.cs: Use the currently highlighted node for the
16929         BeforeSelect event.
16930         * TextBoxBase.cs: There is no need to expand selection on
16931         MouseMove.
16932         - CanUndo means 'is there any undo operations', not 'is undo
16933         allowed on this textcontrol. Fixed ClearUndo unit test.
16934
16935 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
16936
16937         * Button.cs: only perform click when button is Selectable (so as 
16938         not to activate default buttons when they're disabled)
16939         
16940         * Control.cs: Rewrite of the SelectNextControl and related 
16941         methods. HandleClick now selects next control if the current one
16942         is being disabled.
16943         
16944         * Form.cs: OnActivated selects next active control only if Load 
16945         has already occurred. If Load hasn't run, there's no point in 
16946         selecting here, Load might change the state of controls.
16947         
16948         * FocusTest.cs: Tests marked as working again for these fixes
16949
16950 2006-11-10  Chris Toshok  <toshok@ximian.com>
16951
16952         * XplatUIX11.cs: a couple of fixes.
16953
16954         - use XInternAtoms with almost all the atoms we need to register,
16955         instead of many, many calls to XInternAtom.  should help a bit on
16956         startup time, at the expense of making the code look a little
16957         worse.
16958
16959         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
16960         isn't reparented (which seems to be a clue that we're running fon
16961         compiz) and they have an Owner form.  This fixes the tool windows
16962         in paint.net when running under compiz.
16963
16964         - when setting the opacity of a window, support both the case
16965         where the window has been reparented and also when it hasn't been.
16966         Since compiz/beryl doesn't seem to reparent windows, and these are
16967         the only window managers which support translucency, I'm not sure
16968         why we need the hwnd.reparented case at all.. but leave it in.
16969         now we get translucent windows in paint.net under compiz/beryl.
16970
16971 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
16972
16973         * FileDialog.cs: Always return the value for FilterIndex that
16974           was set. Internally convert it to values that make sense.
16975
16976 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
16977         
16978         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
16979
16980 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
16981
16982         * Toolbar.cs: Change default value of DropDownArrows to true, the 
16983         signature still using false to make it compatible with MS but the 
16984         initial value is true. Fixes #79855.
16985
16986 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
16987
16988         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
16989           only available on Linux.
16990
16991 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
16992
16993         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
16994         reduce number of calls to redraw method during toolbar creation.
16995
16996 2006-11-09  Mike Kestner  <mkestner@novell.com>
16997
16998         * ListView.cs : raise SelectedIndexChanged when an item is selected
16999         programmatically via the Item.Selected property.  Gert's nice 
17000         ListViewSelectedIndexChanged test fixture now runs clean.
17001
17002 2006-11-09  Mike Kestner  <mkestner@novell.com>
17003
17004         * ListView.cs : raise SelectedIndexChanged when a selected item is
17005         removed from the item collection using Remove or RemoveAt.
17006
17007 2006-11-09  Mike Kestner  <mkestner@novell.com>
17008
17009         * ListView.cs : raise SelectedIndexChanged once per selected item
17010         for compat with MS.  Fixes #79849+.
17011
17012 2006-11-09  Chris Toshok  <toshok@ximian.com>
17013
17014         * TabControl.cs: initialize row_count to 0, and set it to 1 when
17015         we need to (if we have any tab pages).  Fixes unit test.
17016
17017 2006-11-09  Chris Toshok  <toshok@ximian.com>
17018
17019         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
17020         width is 0, not 3.  Fixes a unit test.
17021
17022 2006-11-09  Mike Kestner  <mkestner@novell.com>
17023
17024         * ListView.cs : use Implicit scrollbars so that focus isn't 
17025         stolen from the listview when they are clicked. Fixes #79850.
17026
17027 2006-11-09  Chris Toshok  <toshok@ximian.com>
17028
17029         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
17030         have a root item.  Fixes #79879.
17031
17032 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
17033
17034         * FileDialog.cs:
17035           - Fix ToString ()
17036           - An ArgumentException is now thrown if a wrong filter
17037             is applied (matches ms). The previous filter doesn't change
17038             anymore if an exception is thrown.
17039           - Changing the FileName property also affects FileNames
17040         * ColorDialog.cs: The length of the CustomColors array is always
17041           16. It doesn't matter if we use a smaller array or null to update
17042           or change the custom colors property.
17043         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
17044           for RootFolder if we get a undefined value.
17045
17046 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17047
17048         * StatusBarPanel.cs: 
17049         - Width is set to MinWidth if Width is smaller than
17050         MinWidth. Fixes #79842.
17051         - MinWidth now always overrides Width (MSDN says MinWidth
17052         is set to Width when AutoSize = None, but they do not 
17053         behave like that).
17054         - Style has now the the correct default value.
17055         
17056 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17057  
17058         * TrackBar.cs: 
17059         - The control is completely invalidated on 
17060         Got/LostFocus to draw the focus rectangle correctly.
17061         - When AutoSize then height is always 45 (width for 
17062         vertical controls).
17063         
17064         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
17065         on the mouse when moved and it doesn't move when grabbed
17066         until the mouse moves as well. Also fixed some wrong 
17067         calculations when clicking on the thumb (control thought
17068         click was outside of thumb and didn't grab it).
17069         Fixes some of the issues in #79718.
17070
17071 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
17072
17073         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
17074
17075 2006-11-08  Chris Toshok  <toshok@ximian.com>
17076
17077         * PropertyGridView.cs: only call ToggleValue if the item is not
17078         readonly.
17079
17080 2006-11-08  Jackson Harper  <jackson@ximian.com>
17081
17082         * TextBoxBase.cs: The RichTextBox and textbox have very different
17083         word selection methods.  Implement the textbox's simple word
17084         selection here, and let the RichTextBox override and provide it's
17085         own.
17086         - Don't do extra selection on mouseup
17087         * RichTextBox.cs: Use the documents word selection algorithm, I
17088         think ideally, this function will be pulled into the
17089         RichTextBox.cs code someday.
17090
17091 2006-11-08  Chris Toshok  <toshok@ximian.com>
17092
17093         * RootGridEntry.cs: new class to represent GridItemType.Root.
17094
17095         * CategoryGridEntry.cs: reformat, and add boilerplate.
17096         
17097         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
17098         returns the UI parent anyway, and we need special handling to
17099         implement the GetTarget method in the face of it.  Also, implement
17100         Select().
17101
17102         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
17103         a root grid item, and use that instead of PropertyGrid.grid_items.
17104         Also, make use of TypeConverters (and add limitted support for
17105         ICustomTypeDescriptors) when initially populating the grid.
17106         Arrays now show up more or less properly.
17107
17108 2006-11-08  Chris Toshok  <toshok@ximian.com>
17109
17110         * Application.cs: set the modal dialog to non modal after we close
17111         it.  Fixes bug #79866.
17112
17113 2006-11-08  Jackson Harper  <jackson@ximian.com>
17114
17115         * TextControl.cs: When combining lines carry over the line end
17116         style from the end line.
17117         - Invalidate the selected area when setting it, if it is visible.
17118         * TextBoxBase.cs: Only rich text box can do full line selects.
17119         - Make sure to set the cursor position when there is a click,
17120         otherwise two clicks in separate areas could cause a large chunk
17121         to be selected.
17122
17123 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
17124
17125         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
17126         Fixes #79863.
17127
17128 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
17129
17130         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
17131         time. Remove tooltips when ToolButton click events.  Fixes #79856.
17132
17133 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
17134
17135         * MenuAPI.cs: Ignore right click for menu actions and fixes
17136         menu border when clicked.  Fixes #79846.
17137
17138 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
17139
17140         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
17141         MouseState after create wParam for message, this fixes mouse button 
17142         equal none in mouse up events.
17143         
17144 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
17145
17146         * Control.cs : Focus() now calls Select to set the Container's
17147         Active Control and to give it focus. To avoid infinite recursion
17148         (because ActiveControl also calls Focus at one point), a check 
17149         is made in Focus with the help of a new internal variable
17150         is_focusing.
17151
17152 2006-11-07  Mike Kestner  <mkestner@novell.com>
17153
17154         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
17155         if there's a selection.  Fixes #79849.
17156
17157 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
17158
17159         * PropertyGrid.cs: Avoid fixed height of help description label.
17160         Fixes part of bug #79829.
17161
17162 2006-11-07  Chris Toshok  <toshok@ximian.com>
17163
17164         * XplatUIX11.cs: fix #79790 again, by using the
17165         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
17166
17167 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
17168
17169         * ToolBar.cs: Fix left click checking.
17170
17171 2006-11-07  Chris Toshok  <toshok@ximian.com>
17172
17173         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
17174
17175 2006-11-07  Chris Toshok  <toshok@ximian.com>
17176
17177         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
17178         PropertyManager unit tests.
17179
17180         * PropertyManager.cs: make property_name internal.
17181
17182 2006-11-07  Chris Toshok  <toshok@ximian.com>
17183
17184         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
17185         pass a unit test.  Also, don't set image_index to anything in
17186         response to setting the ImageList property.
17187
17188 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
17189
17190         * ToolBar.cs: Ignore click events when mouse button is not a
17191         left button, only accepts other button for dropdown menus.  
17192         Fixes #79854.
17193
17194 2006-11-07  Chris Toshok  <toshok@ximian.com>
17195
17196         * DataGrid.cs: make the back and parent row buttons a little less
17197         ugly.
17198
17199 2006-11-07  Jackson Harper  <jackson@ximian.com>
17200
17201         * TextBoxBase.cs: When converting to Text don't put line breaks in
17202         for soft line breaks.
17203         * TextControl.cs: There is an initial "fake" line in the document,
17204         this is now a soft break line, so that an extra line feed doesn't
17205         get added to the end of documents.
17206
17207 2006-11-07  Chris Toshok  <toshok@ximian.com>
17208
17209         [ fix bug #79778 ]
17210         
17211         * CurrencyManager.cs: if the list is readonly, don't bother
17212         checking if IBindingList.AllowNew is true.
17213
17214         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
17215         for non-DataRowView datasources..  or rather, make it not crash.
17216         (DataGridPaintRelationRow): make sure we limit the row painting to
17217         the area not covered by the row header, and make our cell width at
17218         least large enough to cover the relation area.  This allows grids
17219         that have relations but no rows to render correctly.
17220         (DataGridPaintRowContents): same type of changes here.
17221         (SetDataSource): move back to always calling
17222         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
17223         navigating back through relations.
17224         (HitTest): handle the case where we have no cells but have
17225         relations.  Right now we generate a hit in cell 0 of whatever the
17226         row is, not sure if this is strictly correct, but it works for our
17227         purposes.
17228         
17229         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
17230         bother doing anything.
17231
17232 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
17233
17234         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
17235         early version of StatusStrip.  Not responsible for eaten
17236         application or firstborn children.
17237
17238 2006-11-06  Chris Toshok  <toshok@ximian.com>
17239
17240         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
17241         call GetTabRect with a -1 index.  Fixes #79847.
17242
17243 2006-11-06  Jackson Harper  <jackson@ximian.com>
17244
17245         * TreeNodeCollection.cs: Update scrollbars after clearing.
17246
17247 2006-11-06  Chris Toshok  <toshok@ximian.com>
17248
17249         * NumericUpDown.cs: fix the ToString method for some unit test
17250         love.
17251
17252 2006-11-06  Chris Toshok  <toshok@ximian.com>
17253
17254         * PropertyGrid.cs:
17255         - set the initial SelectedGridItem if we can.
17256
17257         - Exclude non-mergable properties only if we're merging > 1
17258         object.  Merging 1 object isn't really merging, obviously.
17259
17260         - Handle PropertySort.NoSort just like Alphabetical, which is
17261         wrong of course, but at least gets things on the screen.
17262         
17263         * PropertyGridView.cs:
17264         - Add method "FindFirstItem" which finds the first property grid
17265         item, so we can select it by default.
17266
17267         - make use of GridEntry.CanResetValue.
17268
17269         - Don't call RedrawBelowItemOnExpansion here anymore, the
17270         individual GridEntry's will do that.
17271
17272         - Remove the ITypeDescriptorContextImpl internal class.
17273         
17274         * GridEntry.cs:
17275         - this class needs to implement ITypeDescriptorContext, as it's
17276         what MS's PropertyDescriptorGridEntry does, which means we can
17277         remove the ITypeDescriptorContextImpl internal class from
17278         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
17279
17280         - keep a reference to our PropertyGridView, and move the call to
17281         RedrawBelowItemOnExpansion here from PGV.  This means
17282         programmaticly setting Expanded actually does something visible.
17283
17284         - add a CanResetValue() function which takes into account our
17285         possibly multiple "selected_objects" in the merged case.  Shifting
17286         PropertyGridView to use this method fixes another unreported
17287         crasher found running the test for #79829.
17288
17289         - when Top or Bounds is updated, make sure the PropertyGridTextBox
17290         is updated to reflect this.
17291
17292         * CategoryGridEntry.cs: the ctor takes the PGV now.
17293         
17294 2006-11-06  Jackson Harper  <jackson@ximian.com>
17295
17296         * TextControl.cs: These are 1 based.
17297         * TextBoxBase.cs: When setting the selected text, don't change the
17298         selected text tags, this is done by ReplaceText, just position the
17299         cursor at the end of the new text.
17300
17301 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
17302
17303         * ListView.cs: Allow label edit only when, when LabelEdit is
17304           set to true.
17305
17306 2006-11-06  Jackson Harper  <jackson@ximian.com>
17307
17308         * TextControl.cs: If a suitable wrapping position isn't found,
17309         just wrap right in the middle of a word.
17310
17311 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
17312
17313         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
17314           bug #79820.
17315
17316 2006-11-06  Jackson Harper  <jackson@ximian.com>
17317
17318         * TreeView.cs: Can't use the VisibleCount property when setting
17319         scrollbar heights, because this doesn't take into account whether
17320         or not the horz scrollbar just came visible.
17321
17322 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
17323
17324         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
17325         activated.  Fixes #79369, #79832.
17326
17327 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
17328
17329         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
17330           had to remove support for links that point to a directory. FileInfo
17331           returns no usefull information (means, the directory they point to)
17332           for such links. Replaced some empty string ("") with String.Empty.
17333
17334 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
17335
17336         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
17337         NullReferenceException when attempting to remove node that is not in
17338         collection. Throw NullReferenceException when null is passed to 
17339         Remove. Allow first element of the collection to be removed. Fixes
17340         bug #79831.  In GetEnumerator ().Current return null if positioned 
17341         before the first element of the collection. In GetEnumerator ().Reset,
17342         position before first element of the collection.
17343
17344 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
17345
17346         * PropertyGrid.cs: To match MS, remove default title and description
17347         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
17348         buttons.
17349
17350 2006-11-04  Chris Toshok  <toshok@ximian.com>
17351
17352         * Theme.cs: add a Clamp method, just for kicks.
17353
17354         * ThemeWin32Classic.cs: clamp all color components to [0..255].
17355
17356 2006-11-04  Chris Toshok  <toshok@ximian.com>
17357
17358         * Form.cs: if the form isn't visible, Close() does nothing.
17359
17360 2006-11-03  Chris Toshok  <toshok@ximian.com>
17361
17362         * Form.cs (Close): if the form is modal, don't Dispose of it, only
17363         Hide it.
17364         (WndProc): don't Dispose after handling the WM_CLOSE message.
17365
17366         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
17367         them as such, instead of using casts from Control to Form.  Also,
17368         don't Dispose of the modal dialog when we fall out of the loop -
17369         Close() it instead.
17370
17371         fixes bug #79813.
17372
17373 2006-11-03  Chris Toshok  <toshok@ximian.com>
17374
17375         * Control.cs (Dispose): only go through the dispose thing if we're
17376         @disposing, and we haven't already been disposed.  Fixes bug
17377         #79814.
17378
17379         * Form.cs: no reason to call "base.Dispose()" here instead of
17380         "Dispose()".
17381
17382 2006-11-03  Mike Kestner  <mkestner@novell.com>
17383
17384         * ComboBox.cs : use ToString instead of casts in AddItem for
17385         sorting functionality.  Fixes #79812.
17386
17387 2006-11-03  Chris Toshok  <toshok@ximian.com>
17388
17389         * Application.cs: pave the way for actually using the thread
17390         exception dialog.  it's ifdefed out at the moment.
17391
17392 2006-11-03  Chris Toshok  <toshok@ximian.com>
17393
17394         * ThreadExceptionDialog.cs: until we get a better layout, actually
17395         hide the details textbox and label when we shouldn't see them.
17396
17397 2006-11-03  Jackson Harper  <jackson@ximian.com>
17398
17399         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
17400         multiline textboxes anymore.  This method also determines the
17401         width/height of a textboxes canvas area.
17402         - Sorta a revert of the last patch.  For multiline just position
17403         the controls, then bail.  This way the scrollbar width won't be
17404         altered.
17405
17406 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
17407
17408         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
17409         it dont need.  Fixes #79537.
17410
17411 2006-11-02  Jackson Harper  <jackson@ximian.com>
17412
17413         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
17414         send the status after firing the DndOver event.
17415
17416 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17417
17418         * TrackBar.cs: Now orientation only switches height / width if
17419         the control's handle is created (Win32 does it like this). Also 
17420         fixed a typo in ToString() for a test to pass, changed the 
17421         exception thrown in set_LargeChange and set_SmallChange to 
17422         match Win32 behaviour, and added TrackBar tests to the unit 
17423         tests.
17424
17425 2006-11-02  Chris Toshok  <toshok@ximian.com>
17426
17427         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
17428         not _NET_WM_STATE_NO_TASKBAR.
17429
17430 2006-11-02  Jackson Harper  <jackson@ximian.com>
17431
17432         * TextControl.cs: Increment count by one, since in the update view
17433         count - 1 is used.
17434
17435 2006-11-02  Jackson Harper  <jackson@ximian.com>
17436
17437         * TextBoxBase.cs: Use client rectangle not bounds for checking if
17438         the mouse is in the client rectangle (duh).
17439
17440 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17441         
17442         * TrackBar.cs: Fixed trackbar jumping around when clicking
17443         on it - the trackbar was not detecting correctly at which
17444         side of the thumb the click was done. (fixes #79718)
17445
17446 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
17447
17448         * ListBox.cs: scroll visible area when change SelectedIndex to
17449         a non visible area.  Fixes #79481.
17450
17451 2006-11-01  Jackson Harper  <jackson@ximian.com>
17452
17453         * TextControl.cs: When replacing the selection move the selection
17454         start/end/anchor to the end of the new text.
17455
17456 2006-11-01  Jackson Harper  <jackson@ximian.com>
17457
17458         * XplatUIWin32.cs: When setting the parent change the controls
17459         visibility to it's visibility flag, not to it's old parents
17460         visibility (.Visible walks the parent chain).
17461
17462 2006-11-01  Chris Toshok  <toshok@ximian.com>
17463
17464         * XplatUIX11.cs: revert the #79790 fix, as the simple.
17465         XSetTransientForHint fix breaks paint .net's tool windows.  more
17466         work needed for that one.
17467
17468 2006-11-01  Chris Toshok  <toshok@ximian.com>
17469
17470         * ScrollBar.cs: throw ArgumentException instead of Exception in
17471         LargeChange/SmallChange setters.  fixes unit tests.
17472
17473 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
17474
17475         * ContainerControl.cs: reverted rev.67183 (which was itself
17476         a reversion of rev.66853... eh).
17477         
17478         * Control.cs: Fixes Reflector hang by changing Focus() call
17479         to what it was before rev.66643 (calling Select() here sets 
17480         ActiveControl, which in some situations calls back Focus and 
17481         eventually does a stack overflow). Temp fix.    
17482         Changes to GetNextControl() to not look for children to select when
17483         parent cannot be selectable (so it looks for siblings instead)  
17484         
17485 2006-10-31  Mike Kestner  <mkestner@novell.com>
17486
17487         * CheckedListBox.cs : off by one error in returned index from
17488         ObjectCollection.Add.  Fixes #79758.
17489
17490 2006-10-31  Chris Toshok  <toshok@ximian.com>
17491
17492         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
17493         calls for the textbox/spinner, to keep from recursing to the point
17494         where we crash.  Fixes #79760.
17495
17496 2006-10-31  Chris Toshok  <toshok@ximian.com>
17497
17498         * ListControl.cs (set_SelectedValue): don't throw exceptions on
17499         null/"" value, just return.  matches ms's behavior and fixes some
17500         failing tests.
17501
17502 2006-10-31  Chris Toshok  <toshok@ximian.com>
17503
17504         * Control.cs (set_Capture): make a logic a little easier to
17505         follow.
17506
17507         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
17508         if it's being destroyed.  A necessary fix surely, but a bandaid
17509         also, to fix the stuck capture problem in bug #78413.
17510
17511 2006-10-31  Chris Toshok  <toshok@ximian.com>
17512
17513         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
17514         convention of clearing hwnd.ClientRect when we set the
17515         width/height (so it'll be recalculated by Hwnd).
17516
17517 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
17518
17519         * ContainerControl.cs: reversed Contains check from
17520         ActiveControl due to hanging problems. This fix
17521         partly regresses #79667 (button does not have
17522         initial focus), so this might be a symptom for 
17523         a larger parenting problem (set_ActiveControl
17524         is being called but the child control does
17525         not have the parent set yet?)   
17526         
17527 2006-10-31  Mike Kestner  <mkestner@novell.com>
17528
17529         * MenuAPI.cs : fix keynav when menu is click activated.
17530
17531 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
17532
17533         * ToolStrip*: Version 0.2.
17534
17535         * MenuStrip.cs: Version 0.1.
17536
17537         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
17538
17539 2006-10-30  Chris Toshok  <toshok@ximian.com>
17540
17541         [ fixes the oversized notify icon issue in bug #79745 ]
17542         
17543         * NotifyIcon.cs: scale the icon down to the size we're given by
17544         the XplatUI layer (this would be faster if we did it once instead
17545         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
17546         since it's never invoked.
17547
17548         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
17549         pixels high by default, so let's hardcode our systray icon to that
17550         size.  The SYSTEM_TRAY protocol should really have a way for
17551         client apps to query for the correct icon size.. but oh well.  A
17552         couple of patches to deal with the screwy client_window ==
17553         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
17554         instance, and also make sure we don't XSelectInput twice).
17555
17556 2006-10-30  Chris Toshok  <toshok@ximian.com>
17557
17558         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
17559         recreating forms.  Control recreation is the bane of my existence.
17560         Fix it in a way that keeps everyone happy.
17561
17562 2006-10-30  Chris Toshok  <toshok@ximian.com>
17563
17564         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
17565         just non-CHILD ones.  otherwise sometimes scrollbars end up with
17566         client_windows not being resized to the proper size (ReportBuilder
17567         shows this extremely well).
17568
17569 2006-10-30  Chris Toshok  <toshok@ximian.com>
17570
17571         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
17572         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
17573         showing up in the gnome taskbar.  Fixes bug #79790.
17574
17575 2006-10-30  Chris Toshok  <toshok@ximian.com>
17576
17577         * ApplicationContext.cs: guard against a NRE.
17578
17579         * Application.cs: null out the old MainForm for the context, so we
17580         don't try to use it again once it's disposed.  Fixes bug #79783.
17581
17582 2006-10-30  Chris Toshok  <toshok@ximian.com>
17583
17584         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
17585         BindingContext, set the data source directly, otherwise do the
17586         lazy approach - the actual ListManager will be created when we get
17587         a BindingContext. Fixes bug #79700.
17588
17589 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
17590
17591         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
17592           XplatUIX11.cs: Remove old 2 parameter SetVisible.
17593
17594         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
17595
17596 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
17597
17598         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
17599         of SetVisible that allows a window to be shown, but not activated.
17600         This is needed on Windows for MenuStrip, and can probably be used
17601         with MainMenu and ComboBox to fix the focus stealing issues on
17602         Windows.
17603
17604         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
17605
17606 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
17607
17608         * PictureBox.cs: Fix the output of the ToString method.
17609
17610 2006-10-29  Chris Toshok  <toshok@ximian.com>
17611
17612         * Control.cs (get_TopLevelControl): fix bug #79781.
17613
17614 2006-10-29  Chris Toshok  <toshok@ximian.com>
17615
17616         * ListControl.cs (set_DataSource): throw Exception here, not
17617         ArgumentException, to match MS behavior.
17618
17619 2006-10-29  Chris Toshok  <toshok@ximian.com>
17620
17621         * Form.cs: remove the try-catch's around calls to GetWindowState.
17622         We can just check the return value.
17623
17624         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
17625         Instead return -1.
17626
17627         * XplatUI.cs: Add note about additional return value for
17628         GetWindowState.
17629
17630 2006-10-29  Chris Toshok  <toshok@ximian.com>
17631
17632         * Control.cs (CreateHandle): when we create our handle, we also
17633         create the handles of our child controls.  Fixes one of the
17634         Control unit tests (CH11).
17635
17636 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
17637
17638         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
17639
17640 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
17641
17642         * ThemeClearlooks.cs: A little speedup.
17643
17644 2006-10-27  Chris Toshok  <toshok@ximian.com>
17645
17646         * Control.cs: implement Control.FromChildHandle in a way that
17647         matches the docs (and fixes the failed test.)
17648
17649 2006-10-27  Chris Toshok  <toshok@ximian.com>
17650
17651         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
17652         comments).
17653
17654         * DataGrid.cs: implement ResetForeColor such that the tests
17655         succeed.
17656         
17657 2006-10-27  Chris Toshok  <toshok@ximian.com>
17658
17659         * ToolBarButton.cs: setting text/tooltiptext to null results in it
17660         being set to "".  Fixes bug #79759.
17661
17662 2006-10-27  Jackson Harper  <jackson@ximian.com>
17663
17664         * TextControl.cs: We need to clear the entire selection area when
17665         setting the start, otherwise multiline selections are still
17666         visible.
17667
17668 2006-10-26  Chris Toshok  <toshok@ximian.com>
17669
17670         * PropertyGridView.cs: 
17671
17672         - ifdef all the code specific to the double
17673         buffer case, and provide some alternatives in the non-doublebuffer
17674         code, which makes heavy use of XplatUI.ScrollWindow to move things
17675         around without having to invalidate (and cause flicker).  There
17676         are still some drawing problems in the non-doublebuffered case, so
17677         DOUBLEBUFFER is defined by default.
17678
17679         - Fix the way dropdowns are handled.  now we explicitly watch for
17680         the events which might cause the dropdown to close, and break out
17681         of the nested event loop there.  This gets rid of all Capture
17682         code, at the expense of the Msg special casing.  Seems to work,
17683         though, and fixes bug #79743.
17684
17685 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
17686         * Control.cs: SetIsRecreating now recreates implicitly added
17687         child controls as well. Finally fixes #79629. The flag passed to 
17688         SetIsRecreating has also been removed since it wasn't used.
17689         
17690 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17691
17692         * PageSetupDialog.cs: Clean some code, fix some bits, 
17693         add some checks, and add a printer sub-dialog.
17694
17695 2006-10-26  Chris Toshok  <toshok@ximian.com>
17696
17697         * PropertyGrid.cs: make set_SelectedObject call
17698         set_SelectedObjects, and move the duplicate logic to the
17699         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
17700
17701         * PropertyGridView.cs: hide the textbox when we get a
17702         SelectedObjectsChanged event.
17703
17704         Fixes bug #79748.
17705
17706 2006-10-26  Chris Toshok  <toshok@ximian.com>
17707
17708         * PropertyGridView.cs: deal with the type converter not supporting
17709         GetStandardValues() or GetStandardValues() returning null, which
17710         is does in the default case.  Fixes #79742.
17711
17712 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
17713
17714         * CheckedListBox.cs: nunit no longer crashes when selecting 
17715         Project/Edit menu option
17716         
17717 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
17718
17719         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
17720         is no menu selected. fixes #79739
17721
17722 2006-10-25  Chris Toshok  <toshok@ximian.com>
17723
17724         * PropertyGridView.cs: factor out the splitter invalidation code
17725         into the SplitterPercent setter, and for kicks implement the
17726         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
17727         amount in either direction.
17728
17729 2006-10-25  Chris Toshok  <toshok@ximian.com>
17730
17731         * PropertyGridView.cs: do some cleanup of the brush used to draw
17732         text - read only fields should be grayed out.  not sure how to do
17733         this with the textbox, though.  but the textbox's should also be
17734         readonly now at least.  Also, hide/show the textbox when resizing
17735         the control.
17736         
17737         * CursorConverter.cs: use System.Reflection when getting the
17738         properties of Cursors, as TypeDescriptor.GetProperties isn't
17739         returning static properties.
17740
17741 2006-10-25  Chris Toshok  <toshok@ximian.com>
17742
17743         * PropertyGridView.cs: factor out the up/down handling, and reuse
17744         it for page up/down.  also add End/Home support.
17745
17746 2006-10-25  Chris Toshok  <toshok@ximian.com>
17747
17748         * PropertyGridView.cs:
17749
17750         - ensure the selected grid item is visible in the scrolled area,
17751         fixes bug #79572.
17752
17753         - fix Keys.Down handling when you're on the last item in the
17754         propertygrid.
17755
17756 2006-10-25  Mike Kestner  <mkestner@novell.com>
17757
17758         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
17759         clicks too.  Fixes #79725.
17760
17761 2006-10-24  Chris Toshok  <toshok@ximian.com>
17762
17763         * PropertyGrid.cs: use property.Converter instead of
17764         TypeDescriptor.GetConverter(property.PropertyType), so we catch
17765         TypeConverters declared on the property as well as on the
17766         PropertyType.  Fixes bug #79678.
17767
17768 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
17769
17770         * MimeIcon.cs, Mime.cs:
17771           Fallback to the default platform handler if no shared mime info
17772           stuff exists (fixes #79693).
17773
17774 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
17775         * ContainerControl.cs: Incorrect contains check in ActiveControl 
17776         from previous fix (duh).
17777
17778 2006-10-20  Chris Toshok  <toshok@ximian.com>
17779
17780         * PropertyGridView.cs: the dropdown should be MIN(number of items
17781         in list, 15).  Fixes #79551.
17782
17783 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
17784         Fixes #79384, #79394, #79652, #79667
17785         * Application.cs: 
17786         
17787         - Modal windows are now destroyed in the proper order for windows
17788         
17789         * ContainerControl.cs:
17790         
17791         - ActiveControl setter has more conditions on when to return:
17792                 - if we're reselecting the active control, but it actually
17793                 didn't have focus (window hidden or some such), it runs
17794                 - if the active control being selected doesn't actually 
17795                 exist in the container, it returns
17796         
17797         * Form.cs
17798         
17799         - The ShowDialog now gets the current form as the owner when
17800         invoking without parameters, and correctly activates the owner 
17801         when returning
17802         
17803         * MessageBox.cs
17804         
17805         - MessageBox now catches the Escape key to exit
17806
17807 2006-10-20  Chris Toshok  <toshok@ximian.com>
17808
17809         * PropertyGridView.cs: fix a number of issues (bug #78565, and
17810         most of bug #79676):
17811
17812         - you can navigate around the property grid with the arrow keys.
17813
17814         - the dropdown is sized properly when the pg has a vertical
17815         scrollbar.
17816
17817         - fix the indentation for subentries, and properly select the
17818         entire label rect.
17819
17820         - fix the gray bar's drawing (only draw it to the last element,
17821         not for the height of the control.  Also make sure we draw that
17822         last horizontal grid line.
17823
17824         - use the same mechanism the datagrid uses wrt the editing textbox
17825         when scrolling/resizing/etc.  Namely, we hide it first, do the
17826         operation, then show it again (if it's still visible).
17827         
17828         - aggressively remove a lot of unnecessary refreshes (and also
17829         calls to Invalidate(). call more limited variants, and only redraw
17830         what we need.)
17831         
17832         * PropertyGrid.cs:
17833
17834         - when we're populating the merged collection, fill in the UI
17835         parent with either the passed in item, or the category item we
17836         create.
17837
17838         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
17839
17840         * GridItem.cs: drop some fully qualified names.
17841         
17842         * GridEntry.cs: add a "UIParent", which is basically the parent
17843         treenode.
17844
17845         * GridItemCollection.cs: add an IndexOf method.
17846
17847 2006-10-20  Mike Kestner  <mkestner@novell.com>
17848
17849         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
17850         a working win32 NC invalidation mechanism, we can't invalidate
17851         menus.  [Fixes #79705]
17852
17853 2006-10-20  Mike Kestner  <mkestner@novell.com>
17854
17855         * ListBox.cs : don't update the VScrollbar if the list is empty,
17856         just hide it.  [Fixes #79692]
17857
17858 2006-10-20  Jackson Harper  <jackson@ximian.com>
17859
17860         * RichTextBox.cs: Handle some special chars better, and don't skip
17861         the entire group when we encounter a special char that we don't
17862         handle correctly.
17863
17864 2006-10-18  Chris Toshok  <toshok@ximian.com>
17865
17866         * PropertyGridView.cs: address a number of issues from bug #79676,
17867         mostly of the cosmetic variety.
17868
17869         - The highlight rectangle for indented items not extends all the
17870         way to the left.
17871
17872         - Indented items aren't indented so much.
17873
17874         - the dropdown is properly sized width-wise if the pg has a
17875         vertical scrollbar.
17876
17877 2006-10-18  Chris Toshok  <toshok@ximian.com>
17878
17879         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
17880         systray stuff is rather convoluted to begin with.
17881
17882         systray icons are a single window for some reason (that I haven't
17883         figured out yet), and for them, client_window == whole_window.
17884         Given the way the tests are structured elsewhere to determine
17885         which paints are pending (client vs. nc), that situation will
17886         always yield PAINT, not NCPAINT.  So, if we have a pending
17887         nc_expose and no pending expose, remove the hwnd from the paint
17888         queue, and also set nc_expose_pending to false, to keep us from
17889         blocking further expose's adding the hwnd to the paint queue.
17890
17891         phew.  like i said, a rather convoluted change.  Fixes the
17892         notifyicon repaint issues in bug #79645.
17893
17894 2006-10-18  Chris Toshok  <toshok@ximian.com>
17895
17896         * Form.cs: when getting the backcolor of the form, don't get
17897         base.BackColor, as this allows parents to influence the background
17898         color.  This breaks mdi forms.  Instead, if the background_color
17899         is empty, return the default.
17900
17901 2006-10-18  Chris Toshok  <toshok@ximian.com>
17902
17903         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
17904         to being private instead of internal static.
17905
17906         * Control.cs: remove all the stupid ParentWaitingOnRecreation
17907         crap, it wasn't working for more deeply nested controls anyway,
17908         and we already have the is_recreating flag - use that instead.
17909         Before calling DestroyHandle in RecreateHandle, recurse through
17910         the control tree setting it to true.  this returns the recreate
17911         code to much of its original simplicity, while now guaranteeing we
17912         actually recreate everything we're supposed to.  This change gets
17913         fyireporting actually showing mdi children.
17914
17915 2006-10-17  Chris Toshok  <toshok@ximian.com>
17916
17917         * Form.cs: remove some debug spew, and collapse some duplicate
17918         code at the end of SetClientSizeCore.
17919
17920         * XplatUIX11.cs: 
17921         - add some more debug spew here too wrt Destroy handling.
17922         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
17923         in Control's handling of WM_DESTROY.
17924         - Remove the handling of zombie window DestroyNotifies from the
17925         event loop - we don't need it.  Now the only DestroyNotifies we
17926         actually handle are ones generated by X.
17927         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
17928         match gtk's (functioning) handling of this. This keep metacity
17929         from leaving droppings in the form of wm borders with no window
17930         contents all over the place.
17931
17932         * Control.cs:
17933         - add a bunch of debug spew wrt control recreation.
17934         - fix a bug where we weren't tracking Visible properly on
17935         recreated hwnds.
17936         - fixed the WM_PAINT double buffer handling to support re-entrant
17937         calls (yes, i know it's gross, but it's happening to us).
17938
17939 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
17940         * ThemeWin32Classic.cs: changed drawing of selected days
17941         to make them look better.
17942
17943 2006-10-16  Chris Toshok  <toshok@ximian.com>
17944
17945         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
17946         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
17947
17948         * XplatUIX11.cs: move away from using hwnd.client_dc and
17949         hwnd.non_client_dc and on to a stack of dc's (and in window's
17950         case, PAINTSTRUCT's), so we can deal with nested Paint calls
17951         without puking or not disposing of Graphics objects.
17952
17953         * XplatUIOSX.cs: same.
17954
17955         * XplatUIWin32.cs: same.
17956
17957 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
17958
17959         * FileDialog.cs: Don't call on_directory_changed inside
17960           OnSelectedIndexChanged (it changes the SelectedIndex too).
17961           Instead move it to OnSelectionChangeCommitted.
17962
17963 2006-10-13  Chris Toshok  <toshok@ximian.com>
17964
17965         * XplatUIX11.cs: more Destroy work.  the current code does the
17966         following things, in order:
17967
17968         1. Enumerates all handles of all controls at or below the one
17969         being destroyed, in pre-order.  As it is doing this, it marks the
17970         handles as zombie and clears all references to them.
17971         
17972         2. calls XDestroyWindow on the window passed in.
17973
17974         3. SendMessage's WM_DESTROY to all he handles in the accumulated
17975         list.
17976
17977 2006-10-13  Chris Toshok  <toshok@ximian.com>
17978
17979         * XplatUIX11.cs: set hwnd.zombie to true before calling
17980         SendMessage (WM_DESTROY).  this keeps us from marking the new
17981         window a zombie, and also keeps us from calling sendmessage at
17982         all.
17983
17984 2006-10-13  Jackson Harper  <jackson@ximian.com>
17985
17986         * TextControl.cs: Do not show the caret and selection at the same
17987         time.  Reduces ugliness by 35%.
17988
17989 2006-10-13  Chris Toshok  <toshok@ximian.com>
17990
17991         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
17992         zombie after we do the recursive call, so we actually do call
17993         SendMessage on the children controls.
17994         (GetMessage): if we find a pending paint event for a zombie hwnd,
17995         remove the hwnd from the paint queue, or else it will always be
17996         there (and we'll effectively loop infinitely)
17997
17998 2006-10-13  Mike Kestner  <mkestner@novell.com>
17999
18000         * MenuItem.cs : add Selected format under keynav too.
18001         Fixes #79528.
18002
18003 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
18004
18005         * PropertyGrid.cs: Fixed some NRE's and small difference between our
18006         implementation and that of MS.
18007
18008 2006-10-13  Chris Toshok  <toshok@ximian.com>
18009
18010         * Control.cs (OnInvalidated) only futz with the invalid_region if
18011         the control is double buffered.  this fixes the apparent hang in
18012         the ListView unit tests.  Someone needs to make the
18013         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
18014
18015 2006-10-13  Chris Toshok  <toshok@ximian.com>
18016
18017         * PropertyGridView.cs:
18018
18019         - do a little refactoring so that only one place calls
18020         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
18021         else call that.  Also make it Refresh, since there are redraw bugs
18022         otherwise (we should take a look at that...)
18023
18024         - do a little more refactoring work to share the body of code
18025         involved with the drop down.  it was duplicated in the code
18026         dealing with the listbox handling and in the code dealing with the
18027         UITypeEditors.
18028
18029         - add a Capture to the dropdown form's control once it's
18030         displayed, and add a MouseDown handler that checks to make sure
18031         the position is inside the control.  If it's not, close the
18032         dropdown.  This fixes #78190.
18033
18034         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
18035         if the value is different than the initial value.
18036         
18037 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
18038
18039         * Control.cs: see #78650
18040         - Fixed GetNextControl for several cases:
18041                 - Changed FindFlatForward to return 
18042                 correct sibling control when more than one
18043                 control has same TabIndex as the currently 
18044                 focused one.
18045                 - Changed FindFlatBackward to loop children
18046                 from last to first and apply same logic as in
18047                 FindFlatForward
18048                 - Changed FindControlForward to search for
18049                 children when control is not a container
18050                 but has children, or search for siblings if
18051                 control is a container...
18052                 - Changed FindControlBackward   to continue
18053                 searching for child controls when hitting 
18054                 Panel-like parents
18055                 
18056         - Fixed Focus method to update ActiveControl
18057         (FocusTest.FocusSetsActive failure)
18058         
18059         * TabControl.cs:
18060         - Focus rectangle now refreshes when gaining
18061         or losing focus
18062         - Removed grab for Tab key on IsInputKey that 
18063         was keeping tab navigation from working (#78650)
18064
18065 2006-10-13  Chris Toshok  <toshok@ximian.com>
18066
18067         * PropertyGridView.cs:
18068         - Rewrite SetPropertyValue to loop over SelectedGridItem's
18069         SelectedObjects.
18070
18071         - Deal with GridItem.Value == null a few places.
18072
18073         * PropertyGrid.cs: 
18074         - replace the PopulateGridItemCollection with a pair of methods
18075         which compute the intersection of all the properties in the
18076         SelectedObjects array.  Fixes #79615.
18077
18078         - Throw ArgumentException from set_SelectedObjects if there's a
18079         null in the array.
18080
18081         - Add GetTarget method which can be used to traverse up the
18082         GridItem.Parent chain.  It depends on the assumption that
18083         selected_objects for different GridEntries are always in the same
18084         order (a safe assumption).  Use this method and loop over all the
18085         selected objects in the entry when calling RemoveValueChanged and
18086         AddValueChanged.
18087         
18088         * GridEntry.cs: Make this handle multiple selected objects.
18089         .Value returns null if not all the selected objects share the same
18090         value.
18091
18092 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
18093         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
18094           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
18095           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
18096           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
18097           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
18098         add additional functionality.
18099
18100 2006-10-12  Mike Kestner  <mkestner@novell.com>
18101
18102         * ErrorProvider.cs : new ToolTipWindow ctor sig.
18103         * HelpProvider.cs : new ToolTipWindow ctor sig.
18104         * ToolTip.cs : remove ToolTip param from Window sig since it is
18105         not used.
18106         * ToolBar.cs : add tooltip support.  Fixes #79565.
18107
18108 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
18109
18110         * ComboBox.cs: move the events in set_SelectedIndex to 
18111         after the call to HighlightIndex in order to avoid 
18112         possible recursion and subsequent problems with the call
18113         to HighlightIndex and include a range check in 
18114         set_HighlightIndex. Fixes #79588
18115         
18116 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
18117
18118         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
18119         to ui thread's settings instead of sunday. 
18120         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
18121
18122 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
18123
18124         * DateTimePicker.cs
18125         * MonthCalendar.cs
18126         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
18127         and implement missing functionality (selecting different parts 
18128         of the date and edit them individually with the keyboard).
18129         
18130 2006-10-11  Chris Toshok  <toshok@ximian.com>
18131
18132         * Control.cs (OnInvalidated): fix NRE relating to last change.
18133
18134 2006-10-11  Chris Toshok  <toshok@ximian.com>
18135
18136         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
18137         atoms in _NET_WM_STATE here if the window is maximized.  We need
18138         to do this because we're *replacing* the existing _NET_WM_STATE
18139         property, so those atoms will be lost otherwise, and any further
18140         call to GetWindowState will return Normal for a window which is
18141         actually maximized.  Fixes #79338.
18142
18143 2006-10-11  Jackson Harper  <jackson@ximian.com>
18144
18145         * TextControl.cs: Special case for setting selection end to
18146         selection start, we basically kill the anchor.
18147         - some todo comments.
18148
18149 2006-10-11  Chris Toshok  <toshok@ximian.com>
18150
18151         * Control.cs: switch to using an "invalid_region" to track which
18152         parts of the image buffer need updating.  This is more code than
18153         the simple fix from r66532.  That version just attempted to always
18154         fill the entire buffer on redraw, which turns out to be
18155         inefficient when invalidating small rectangles.  This version
18156         simply adds the invalid rectangle to the invalid region.  When we
18157         get any WM_PAINT message we see if it can be filled using the
18158         image buffer, and if it can't (if the paint event's clip rectangle
18159         is visible in the invalid region) we first fill the image buffer.
18160         So, the image buffer is still a cache, we just fill it lazily.
18161
18162         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
18163         need it any longer.
18164
18165 2006-10-11  Chris Toshok  <toshok@ximian.com>
18166
18167         * XplatUIX11.cs (SetWindowPos): we need to update both position as
18168         well as size after calling XMoveResizeWindow.  This keeps us from
18169         ignoring future SetWindowPos calls.  Fixes the disappearing
18170         DateTimePicker in the ToolBarDockExample from bug #72499.
18171
18172 2006-10-11  Chris Toshok  <toshok@ximian.com>
18173
18174         * TextBoxBase.cs: reorder things a bit when it comes to
18175         resizing-causing-recalculation.  we were recalculating the
18176         document when our position was changed, which shouldn't happen.
18177         We only care about size changes.  Clear up some more redundant
18178         recalculation calls while I'm at it.  This makes the toolbar dock
18179         example snappy when you're just dragging toolbars around (since it
18180         causes a relayout whenever you move one.)
18181
18182 2006-10-11  Chris Toshok  <toshok@ximian.com>
18183
18184         * ToolBarButton.cs (get_Rectangle): this only returns
18185         Rectangle.Empty if Visible == false, or Parent == null.
18186         Parent.Visible doesn't matter.
18187
18188 2006-10-10  Chris Toshok  <toshok@ximian.com>
18189
18190         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
18191         by .net 1.1, so switch to an internal method instead.
18192
18193 2006-10-10  Chris Toshok  <toshok@ximian.com>
18194
18195         * Control.cs (WM_PAINT): when a control is double buffered we draw
18196         initially to the ImageBuffer and then copy from there.  But when a
18197         parent control which has child controls is double buffered, the
18198         initial drawing doesn't encompass the entire ClientRectangle of
18199         the parent control, so we end up with uninitialized bits (this is
18200         easily seen by dragging the top toolbar in
18201         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
18202         manually set the ClipRectangle of the paint_event (only the one we
18203         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
18204         of the nastiness in bug #72499.
18205
18206         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
18207         which we use in Control.cs's WM_PAINT handling.
18208
18209 2006-10-10  Jackson Harper  <jackson@ximian.com>
18210
18211         * TextBoxBase.cs: Finish off the autoscrolling stuff.
18212
18213 2006-10-10  Chris Toshok  <toshok@ximian.com>
18214
18215         * Cursor.cs: Apply a slightly different patch to the one suggested
18216         in #79609.
18217
18218 2006-10-10  Jackson Harper  <jackson@ximian.com>
18219
18220         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
18221         not the parent form.
18222         * TextControl.cs: use difference in old line count vs new count to
18223         calculate how many lines were added, this takes into account soft
18224         line breaks properly.
18225
18226 2006-10-10  Chris Toshok  <toshok@ximian.com>
18227
18228         * LinkLabel.cs: don't call MeasureCharacterRanges against a
18229         rectangle located at 0,0 and the size of the text.  Use
18230         ClientRectangle instead.  This fixes rendering of non-left aligned
18231         link labels.
18232
18233 2006-10-10  Jackson Harper  <jackson@ximian.com>
18234
18235         * TextBoxBase.cs: When we set the selection start position the
18236         caret.
18237         * TextControl.cs: Need to update the caret when we decrement it to
18238         zero.
18239         - Make sure that the selection_visible flag gets reset to false if
18240         the selection isn't visible.  Before this you could get it set to
18241         visible by changing the selection start, then changing the end to
18242         equal the start.
18243
18244 2006-10-09  Jackson Harper  <jackson@ximian.com>
18245
18246         * TreeView.cs: Don't update scrollbars when we aren't visible.
18247         * TreeNodeCollection.cs: Only need to update scrollbars if being
18248         added to an expanded visible node or the root node.
18249
18250 2006-10-09  Chris Toshok  <toshok@ximian.com>
18251
18252         * XplatUIX11.cs (SendMessage): fix NRE.
18253
18254 2006-10-09  Jackson Harper  <jackson@ximian.com>
18255
18256         * TextBoxBase.cs: Implement horizontal autoscrolling.
18257         * TextControl.cs: Add a movement types that allows moving forward
18258         and backwards without wrapping.
18259
18260 2006-10-09  Mike Kestner  <mkestner@novell.com>
18261
18262         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
18263         with focus "expansion" of labels.  Fixes #79532 and then some.
18264         * ThemeWin32Classic.cs : add LineLimit to ListView label format
18265         when wrapping.
18266
18267 2006-10-09  Jackson Harper  <jackson@ximian.com>
18268
18269         * TextBoxBase.cs: Set the default max values to MaxValue since
18270         we use the scrollbar for autoscrolling and the default value is
18271         100.  If we don't do this the caret won't keep up with typing
18272         after about 18 characters.
18273         * TextControl.cs: Make sure the selection is offset by the
18274         viewport x.  This fixes selection when using auto scrolling.
18275
18276 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
18277         
18278         * Form.cs: The active control should be selected after the 
18279         OnLoad so that any child control initialization that affects
18280         the selection is done. Fixes #79406
18281
18282 2006-10-06  Chris Toshok  <toshok@ximian.com>
18283
18284         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
18285         to have no evil effects.
18286
18287         - Stop selecting StructureNotifyMask on non-toplevel windows.
18288
18289           The only way children should be resized is by using the SWF api,
18290           and we already send WM_WINDOWPOSCHANGED messages in those cases.
18291           Toplevel windows can be interacted with via the window manager,
18292           and so we keep the input mask there.
18293
18294           The other event StructureNotifyMask gives us (that we care
18295           about) is DestroyNotify.  The code is already structured such
18296           that it assumes we won't be getting a DestroyNotify event for
18297           the window we pass to XDestroyWindow (which is what
18298           StructureNotifyMask is supposed to guarantee.)  So, that code
18299           shouldn't be affected by this either.
18300
18301         - Stop selecting VisibilityChangeMask altogether.
18302
18303           We weren't doing anything with the resulting events anyway.
18304         
18305         This vastly reduces the number of X requests and events we see
18306         when resizing/laying out a large ui.
18307
18308 2006-10-06  Chris Toshok  <toshok@ximian.com>
18309
18310         * ScrollableControl.cs (DisplayRectangle): we need to take into
18311         account the DockPadding regardless of whether or not auto_scroll
18312         == true.  rework this slightly to this effect, and fix bug #79606,
18313         and part of #72499 (you can now see the drag handles and drag
18314         toolbars around).
18315
18316 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
18317
18318         * ListViewItem.cs: Collections of selected and checked items are now
18319         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
18320         we mark the collection "dirty".
18321         * ListView.cs: Marked collections readonly. Modified UpdateSelection
18322         to only clear SelectedItems when a new item is selected and MultiSelect
18323         is enabled. CheckedItems and SelectedItems now subscribe to Changed
18324         event of ListViewItemCollection, and mark its list dirty whenever
18325         that event is fire. This allows us to return selected/checked items 
18326         in the same order as they are in the Items collection. This matches
18327         the MS behavior.
18328
18329 2006-10-06  Chris Toshok  <toshok@ximian.com>
18330
18331         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
18332         right mouse clicks.  Fixes bug #79593.
18333
18334 2006-10-06  Chris Toshok  <toshok@ximian.com>
18335
18336         * Splitter.cs: doh, fix splitters that don't want to cancel the
18337         movement when you drag them.  Also, impose the limits on the
18338         values we send to the SplitterMovingEvent.  Fixes #79598.
18339
18340 2006-10-06  Jackson Harper  <jackson@ximian.com>
18341
18342         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
18343         since we use this for auto scrolling also.
18344
18345 2006-10-05  Chris Toshok  <toshok@ximian.com>
18346
18347         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
18348         beginning to think that most datagrid column types don't need this
18349         method.  Fixes bug #79392.
18350
18351 2006-10-05  Chris Toshok  <toshok@ximian.com>
18352
18353         * DataGrid.cs: move back to a more lazy scheme for creating the
18354         CurrencyManager, so we aren't updating it every time you set
18355         either DataSource or DataMember.  Also, don't call
18356         RecreateDataGridRows if the currency manager hasn't changed.
18357
18358 2006-10-05  Chris Toshok  <toshok@ximian.com>
18359
18360         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
18361         emitted, SelectedIndex should already be updated.  Fixes bug
18362         #78929.
18363
18364 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
18365
18366         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
18367           ToolStripTextBox.cs: Initial commit.
18368         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
18369
18370 2006-10-05  Jackson Harper  <jackson@ximian.com>
18371
18372         * TabControl.cs: We need to invalidate the tab control area when
18373         new ones are added (duh).
18374
18375 2006-10-03  Chris Toshok  <toshok@ximian.com>
18376
18377         * Form.cs (ProcessDialogKey): if the focused control is in this
18378         form and is a button, call its PerformClick method here.  Fixes
18379         #79534.
18380
18381 2006-10-04  Jackson Harper  <jackson@ximian.com>
18382
18383         * TabPage.cs: Ignore setting of Visible, and add an internal
18384         method for setting the controls visibility.  TabPage's Visible
18385         property is a little strange on MS, this seems to make us
18386         compatible, and fixes cases where people set all the tab pages to
18387         visible.
18388         * TabControl.cs: Use the new internal setting on tab pages
18389         visibility.
18390
18391 2006-10-03  Mike Kestner  <mkestner@novell.com>
18392
18393         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
18394
18395 2006-10-03  Mike Kestner  <mkestner@novell.com>
18396
18397         * ListView.cs : use is_visible instead of Visible to check if 
18398         scrollbars should be placed/sized.  Also some max_wrap_width
18399         love for LargeIcon view.  [Fixes #79533]
18400
18401 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
18402
18403         * TextControl.cs :
18404           Make set_TextAlign() do actually update the align. Fixed #78403.
18405
18406 2006-10-03  Chris Toshok  <toshok@ximian.com>
18407
18408         * DataGrid.cs: fix a crash when switching datasources if the
18409         vertical scrollbar is at someplace other than Value = 0.  Also,
18410         reduce the number of recalculation passes we do in SetDataSource
18411         from 2 to 1.
18412
18413 2006-10-03  Jackson Harper  <jackson@ximian.com>
18414
18415         * TextBoxBase.cs: Move the if value the same bail check up, we
18416         don't want to empty the document if it is already empty, this
18417         seems to severly mess up the caret.  TODO: I should probably fix
18418         the empty statement to update teh caret somehow.
18419
18420 2006-10-03  Chris Toshok  <toshok@ximian.com>
18421
18422         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
18423         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
18424         reflection, an internal row type, properties on said type, etc.)
18425         will work with our datagrid.  Fixes #79531.
18426
18427 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
18428
18429         * FileDialog.cs: Don't crash if a path is not accessible
18430           (System.UnauthorizedAccessException). Fixes #79569.
18431         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
18432           a ':' too. Return unknown icon for those paths/files.
18433
18434 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
18435
18436         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
18437         GetContainerControl returns null.
18438
18439 2006-10-02  Chris Toshok  <toshok@ximian.com>
18440
18441         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
18442         call to XGetWindowAttributes instead of "handle".  fixes an X
18443         error using notifyicon after the NotifyIconWindow to Form base
18444         class switch.
18445
18446 2006-10-02  Chris Toshok  <toshok@ximian.com>
18447
18448         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
18449         server grab and looping we need to do to get down to the most
18450         deeply nested child window.
18451         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
18452         QueryPointer again after the WarpPointer so we can generate a
18453         proper (fake) MotionNotify event to be enqueued in the destination
18454         window's queue.
18455         (GetCursorPos): call QueryPointer.
18456
18457         Fixes #79556.
18458
18459 2006-10-02  Jackson Harper  <jackson@ximian.com>
18460
18461         * NotifyIcon.cs: Derive the notify icon from a form, so things
18462         like FindForm work on it.
18463         - Swallow the WM_CONTEXTMENU message, since that is generated on
18464         mouse down, and context menu is a mouse up kinda guy.  I believe
18465         the correct fix here is probably to make the notify icon entirely
18466         NC area, but this seems to work fine for anyone not manipulating
18467         WndProc.
18468
18469 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
18470
18471         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
18472           ToolStripItemCollection.cs, ToolStripLabel.cs,
18473           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
18474           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
18475           Initial implementation.
18476         * TextRenderer.cs: Provide padding to MeasureText.
18477
18478 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
18479
18480         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
18481         of ButtonBaseAccessibleObject. Fix bug #79552.
18482
18483 2006-10-02  Jackson Harper  <jackson@ximian.com>
18484
18485         * MdiWindowManager.cs: When maximizing use the containers client
18486         rect, not it's bounds, so nc area is accounted correctly.
18487         - Use the parent form's size for the menu position, since the
18488         client isn't always the full form size.
18489
18490 2006-10-01  Chris Toshok  <toshok@ximian.com>
18491
18492         * ScrollableControl.cs: make sure neither right_edge or
18493         bottom_edge are < 0, since they're used as LargeChange for the
18494         horiz/vert scrollbars respectively.  Fixes #79539.
18495
18496 2006-10-01  Chris Toshok  <toshok@ximian.com>
18497
18498         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
18499         the xplatuix11 code can cause us to destroy/recreate our handle.
18500
18501         * XplatUIX11.cs
18502         (SystrayAdd):
18503         - this code can be invoked many times for the same Hwnd.  Make
18504           sure we only destroy the client window once (the first time this
18505           method is called).  This fixes bug #79544.
18506         - Remove the call to the improperly bound XSync.  why we had two
18507           bindings to this, I will never know, but this call resulted in
18508           events being discarded from the queue(!).
18509         - correct a misunderstanding of _XEMBED_INFO - the second atom is
18510           not our current state but the state we wish to be in.  So, 0 if
18511           we don't want to be mapped.  Change it to 1.
18512         (SystrayRemove): The XEMBED spec makes mention of the fact that
18513         gtk doesn't support the reparent of client windows away from the
18514         embedder.  Looking at gtksocket-x11.c seems to agree with this.
18515         The only avenue we have for removing systray icons is to destroy
18516         them.  We don't want the handle to go away for good, though, so
18517         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
18518         #79545.
18519         
18520 2006-10-01  Chris Toshok  <toshok@ximian.com>
18521
18522         * Form.cs (WndProc): inline the native_enabled variable usage into
18523         the cases in which it's used.  Fixes #79536.
18524
18525 2006-09-29  Mike Kestner  <mkestner@novell.com>
18526
18527         * ListView.cs : toggle the selection state for ctrl clicks in 
18528         multiselect mode. [Fixes #79417]
18529
18530 2006-09-29  Mike Kestner  <mkestner@novell.com>
18531
18532         * ListView.cs : kill CanMultiSelect and refactor the selection
18533         code to support multiselection in the absence of mod keys. Steal
18534         arrow/home/end keys by overriding InternalPreProcessMessage to
18535         restore regressed keynav behavior.
18536         [Fixes #79416]
18537
18538 2006-09-29  Jackson Harper  <jackson@ximian.com>
18539
18540         * MdiClient.cs: Repaint the titlebars when the active window is
18541         changed.
18542
18543 2006-09-29  Chris Toshok  <toshok@ximian.com>
18544
18545         * Application.cs: when entering a runloop with a modal, make sure
18546         the hwnd is enabled.  Fixes #79480.
18547
18548 2006-09-29  Chris Toshok  <toshok@ximian.com>
18549
18550         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
18551         when ListManager.CanAddRows == false, bump us back one.
18552
18553         * DataGridColumnStyle.cs (ParentReadOnly): remove the
18554         listmanager.CanAddRows check.  This makes ArrayLists uneditable
18555         using a datagrid, which is not right.
18556         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
18557         is an IEditable, but call property_descriptor.SetValue regardless.
18558         fixes #79435.
18559
18560 2006-09-29  Chris Toshok  <toshok@ximian.com>
18561
18562         * DataGridBoolColumn.cs: we need to test equality in the face of
18563         possible null values (as is the case with the default NullValue).
18564         This patch keeps us from crashing in that case.
18565
18566 2006-09-29  Jackson Harper  <jackson@ximian.com>
18567
18568         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
18569         here, since it will get called for every node collection in the
18570         tree. This is now done in the treeview once the sorting is
18571         finished.
18572         * TreeView.cs: Recalculate the visible order, and update the
18573         scrollbars after sorting, set the top nope to the root so that the
18574         recalc actually works.
18575
18576 2006-09-29  Chris Toshok  <toshok@ximian.com>
18577
18578         * LinkLabel.cs: more handling of the default link collection in
18579         the face of LinkArea manipulation.  The default link collection
18580         contains 1 element (start=0,length=-1).  If the user sets LinkArea
18581         to anything and the links collection is the default, clear it.
18582         Then only add the link if its nonempty.  Fixes #79518.
18583
18584 2006-09-29  Chris Toshok  <toshok@ximian.com>
18585
18586         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
18587         piece correctly when we hit a '\n'.  Fixes #79517.
18588
18589 2006-09-29  Chris Toshok  <toshok@ximian.com>
18590
18591         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
18592         change the binding of gdk_init_check to take two IntPtr's, and
18593         pass IntPtr.Zero for both of them.  Fixes #79520.
18594
18595 2006-09-29  Mike Kestner  <mkestner@novell.com>
18596
18597         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
18598         [Fixes #78779]
18599
18600 2006-09-28  Jackson Harper  <jackson@ximian.com>
18601
18602         * XplatUIX11.cs: When translating NC messages make sure we go from
18603         whole window to screen, not client window to screen.
18604         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
18605         method doesn't exist
18606         - Skip over controls that aren't forms when arranging.
18607
18608 2006-09-28  Jackson Harper  <jackson@ximian.com>
18609
18610         * XplatUIWin32.cs: Clip the rect to the parent window.
18611         * XplatUIStructs.cs: Add clipping modes struct.
18612         * InternalWindowManager.cs: New private method that factors title
18613         bar heights in when calculating the pos of an NC mouse message.
18614         - Use SendMessage to force a paint when the form's size is changed
18615         instead of painting the decorations immediately.
18616         - Don't let the NC button click messages get to DefWndProc,
18617         because they will attempt to handle windowing themself, and this
18618         messes up z-order (it will put them in front of the scrollbars).
18619         * XplatUIX11.cs: Make sure that we don't reset window managers if
18620         we already have one (ie the window is an MDI window).
18621
18622 2006-09-28  Chris Toshok  <toshok@ximian.com>
18623
18624         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
18625         menu code really needs going over.
18626
18627 2006-09-27  Chris Toshok  <toshok@ximian.com>
18628
18629         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
18630         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
18631         window is maximizable.  So, we need to make sure that even if we
18632         clear the border/wm frame of those functions, they're still
18633         available (basically, we remove the decoration without removing
18634         the function).  Half the fix for #79338.
18635
18636 2006-09-27  Chris Toshok  <toshok@ximian.com>
18637
18638         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
18639         Fixes bug #79515.
18640
18641 2006-09-27  Chris Toshok  <toshok@ximian.com>
18642
18643         * Splitter.cs: reorder things a bit so that we don't actually
18644         draw/move the splitter until after calling OnSplitterMoving.  This
18645         lets users cancel/disallow the movement by explicitly setting
18646         event.SplitX/SplitY.  Fixes #79372.
18647
18648 2006-09-27  Jackson Harper  <jackson@ximian.com>
18649
18650         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
18651         because it is most likely on a window being destroyed, and that
18652         will give us an X11 error.
18653
18654 2006-09-27  Chris Toshok  <toshok@ximian.com>
18655
18656         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
18657         the dropdown button now toggles between showing and hiding the
18658         dropdown.  Also, get rid of dropdown_form_showing and just use
18659         dropdown_form.Visible.  We still don't do a grab, but I'll leave
18660         that part to someone who has handled Capture-fu before.
18661
18662 2006-09-27  Chris Toshok  <toshok@ximian.com>
18663
18664         * DataGrid.cs: return false if alt isn't pressed when '0' is
18665         pressed.  this keeps the '0' key from being swallowed, and fixes
18666         bug #79350.
18667
18668 2006-09-27  Chris Toshok  <toshok@ximian.com>
18669
18670         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
18671         Calling Refresh (in response to a scrollbar event) screws up the
18672         scrollbar painting.  Fixes bug #78923.
18673
18674 2006-09-27  Chris Toshok  <toshok@ximian.com>
18675
18676         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
18677         then insert into hashtable" blocks threadsafe.
18678
18679 2006-09-27  Chris Toshok  <toshok@ximian.com>
18680
18681         * MessageBox.cs (CreateParams): the styles should be |'ed with our
18682         baseclass's, since otherwise the
18683         ControlBox/MinimizeBox/MaximizeBox assignments above have no
18684         effect.  This gets the close button back in messageboxes.
18685
18686 2006-09-27  Chris Toshok  <toshok@ximian.com>
18687
18688         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
18689         flag, not just != 0.  this makes flags that are actually multiple
18690         bits (like WS_CAPTION) work.  fixes bug #79508.
18691
18692 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
18693
18694         * PageSetupDialog.cs: add support for getting and settings the 
18695         paper size, source and orientation.
18696
18697 2006-09-26  Chris Toshok  <toshok@ximian.com>
18698
18699         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
18700         and caption == "", we need to remove the resize handles as well as
18701         the title bar.
18702
18703         * Control.cs (set_Text): turns out that setting Text on a form
18704         should change the WM styles on the window, since if ControlBox ==
18705         false, the only way to get a window border is to have a non-""
18706         Text property.  check winforms/forms/text.cs for an example.  so,
18707         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
18708         update both window styles and title.  This fixes a lot of dialogs
18709         (including the preferences dialog in MonoCalendar.)
18710
18711 2006-09-26  Chris Toshok  <toshok@ximian.com>
18712
18713         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
18714         control isn't a Form), call Win32ShowWindow to hide the window,
18715         but don't update the control Visible property.  When we reparent
18716         back to a parent control, call SetVisible in order for the
18717         window's visibility to be reinstated.
18718
18719         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
18720         the FosterParent.
18721
18722         * Control.cs (ControlCollection.Remove): remove that value.Hide()
18723         call for good, since it breaks MonoCalendar (and other things I'm
18724         sure.) Also, set all_controls to null *after* the owner calls,
18725         which end up regenerating it.
18726         (ChangeParent): allow new_parent to be == null, passing
18727         IntPtr.Zero down to XplatUI.
18728
18729         this fixes #79294 the right way.
18730
18731 2006-09-26  Mike Kestner  <mkestner@novell.com>
18732
18733         * GridEntry.cs : internal SetParent method.
18734         * PropertyGrid.cs : attach to property changed on the proper
18735         target if we have a hierarchical grid with subobjects. Setup
18736         GridItem.Parent for hierarchical items.
18737         * PropertyGridView.cs : Set value on the correct target for
18738         hierarchical grids. [Fixes #78903]
18739
18740 2006-09-26  Chris Toshok  <toshok@ximian.com>
18741
18742         * Control.cs (ChildNeedsRecreating): this should return true if
18743         either we're being recreated and the child is in our list, or our
18744         parent is waiting for our recreation.
18745
18746 2006-09-26  Chris Toshok  <toshok@ximian.com>
18747
18748         * Control.cs (ControlCollection.Remove): reinstate the
18749         value.Hide() call as suggested in bug #79294.
18750
18751 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
18752
18753         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
18754         coordinates (versus a relative move).
18755
18756 2006-09-26  Chris Toshok  <toshok@ximian.com>
18757
18758         * Control.cs: rework child recreation a little bit.  It turns out
18759         that we race between the DestroyNotify the WM_DESTROY message.  If
18760         the parent gets its DestroyNotify before the child gets the
18761         WM_DESTROY message, the child ends up not recreating (since the
18762         parent finishes its recreation on DestroyNotify, and the child
18763         checks ParentIsRecreating.)
18764
18765         So, instead we store off a list of all the child controls which
18766         need to be recreated when the parent control starts to recreate
18767         itself.  Then, when child controls get their WM_DESTROY message we
18768         check to see if they're in the parent's pending recreation list,
18769         and if so, we recreate.  This removes all dependency on ordering
18770         from the code and fixes the initial MonoCalendar upgrade dialog.
18771         
18772 2006-09-26  Jackson Harper  <jackson@ximian.com>
18773
18774         * TextControl.cs: Use the Line to get the length of the line,
18775         since soft line breaks can change the end line.
18776
18777 2006-09-26  Chris Toshok  <toshok@ximian.com>
18778
18779         * Control.cs (ControlCollection.AddImplicit): don't add the
18780         control again if it's already in one of our lists.  This keeps us
18781         from adding controls over and over again for comboboxes when their
18782         handle gets recreated (as the combobox adds implicit controls in
18783         OnHandleCreated).  Fixes the X11 errors in bug #79480.
18784
18785 2006-09-26  Jackson Harper  <jackson@ximian.com>
18786
18787         * TextControl.cs: When deleting characters make sure that any
18788         orphaned zero lengthed tags get deleted.
18789         - Fix ToString for zero lengthed tags.
18790
18791 2006-09-25  Jackson Harper  <jackson@ximian.com>
18792
18793         * TextControl.cs: When getting a tag at the location there can be
18794         multiple tags at the same spot, these are 0-lengthed tags that
18795         appear when extra formatting has been stuck in a location.  We
18796         need to pull out the last of these 0 lengthed tags.
18797
18798 2006-09-25  Jackson Harper  <jackson@ximian.com>
18799
18800         * TextControl.cs: Fix print out in debug method.
18801         * TextBoxBase.cs: When text is set bail if we are setting to the
18802         previous value.
18803         
18804 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
18805
18806         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
18807           It is now possible to change the selected index in a FontXXXListBox
18808           with the up and down arrow keys from the FontXXXTextBoxes.
18809           Also, send the FontXXXTextBox mouse wheel event to the corresponding
18810           FontXXXListBoxes to match ms.
18811
18812 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
18813
18814         * SystemInformation.cs: Return a clone of the theme's MenuFont because
18815         anyone can dispose it, anytime. All other properties returns enums, 
18816         structs or basic types so they don't need such tricks.
18817
18818 2006-09-22  Jackson Harper  <jackson@ximian.com>
18819
18820         * XplatUI.cs:
18821         * XplatUIWin32.cs:
18822         * Clipboard.cs:
18823         * DataFormats.cs:
18824         * XplatUIOSX.cs:
18825         * XplatUIDriver.cs: Update interface to add a primary selection
18826         flag, so the driver can use the primary selection buffer if
18827         needed.
18828         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
18829
18830         * RichTextBox.cs: We need to supply the data object to paste now
18831         (so we can choose to supply CLIPBOARD or PRIMARY).
18832         * TextBoxBase.cs: Supply data object to paste (see above).
18833         - Middle click uses the primary selection data object.
18834         
18835 2006-09-21  Chris Toshok  <toshok@ximian.com>
18836
18837         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
18838         of SetWMStyles.  It's still a rat's nest and is largely
18839         order-dependent which I dislike immensely.  This also fixes the X
18840         button disappearing from toplevel forms.
18841
18842 2006-09-21  Mike Kestner <mkestner@novell.com>
18843
18844         * ListBox.cs: move Jordi's click/dblclick raising code to the
18845         mouse up handler.
18846
18847 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
18848
18849         * ListBox.cs: Fixes 79450
18850
18851 2006-09-21  Mike Kestner <mkestner@novell.com>
18852
18853         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
18854         to deal with people updating the TreeNodeCollection after the tree
18855         is disposed.  "Fixes" 79330.
18856
18857 2006-09-20  Jackson Harper <jackson@ximian.com>
18858
18859         * TextControl.cs: Push the cursor record onto the undo stack
18860         before the delete action. This fixes 78651.
18861
18862 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
18863
18864         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
18865         CreateParams. Fixes 79329.
18866
18867 2006-09-19  Chris Toshok  <toshok@ximian.com>
18868
18869         * XplatUIX11.cs: a couple of blanket code massage passes to clean
18870         things up a bit.  First, get rid of the NetAtoms array (and the NA
18871         enum), and just embed the atoms as static fields.  Also, add a
18872         couple of functions (StyleSet and ExStyleSet) to clean up all the
18873         bitmask testing of styles.
18874
18875         * X11Structs.cs: remove the NA enum, not needed anymore.
18876         
18877 2006-09-19  Chris Toshok  <toshok@ximian.com>
18878
18879         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
18880         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
18881         added cleanup to get MessageBox titles appearing again, which were
18882         broken by my earlier fix for caption-less/ControlBox-less windows.
18883
18884 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
18885
18886         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
18887           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
18888           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
18889           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
18890           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
18891           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
18892           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
18893           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
18894           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
18895           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
18896           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
18897             Inital import.
18898         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
18899           ToolStripButton.cs: Stubs needed for above.
18900         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
18901
18902 2006-09-15  Chris Toshok  <toshok@ximian.com>
18903
18904         * XplatUIX11.cs:
18905         - make the MessageQueues hashtable Synchronized.
18906         
18907         - SendMessage: if the Hwnd is owned by a different thread, use the
18908         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
18909         thread.  Fixes bug #79201.
18910
18911 2006-09-15  Chris Toshok  <toshok@ximian.com>
18912
18913         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
18914         ControlBox == false, we disallow maximize/minimize/close.  If the
18915         form Caption is "" we also disallow move (and get rid of the Title
18916         decoration).  Unfortunately, regardless of how things are set,
18917         we're stuck with the Title and WM menu.
18918
18919 2006-09-15  Chris Toshok  <toshok@ximian.com>
18920
18921         * Application.cs: add locking around the static message_filters
18922         ArrayList, part of #79196.
18923
18924 2006-09-15  Chris Toshok  <toshok@ximian.com>
18925
18926         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
18927         Form.ControlBox == false, the window has no titlebar nor resize
18928         handles.  fixes bug #79368.
18929
18930 2006-09-15  Chris Toshok  <toshok@ximian.com>
18931
18932         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
18933         >= 0.  Fixes bug #79370.
18934
18935 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
18936         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
18937         * Control.cs:
18938             Add properties: LayoutEngine, Margin, DefaultMargin.
18939             Add method: GetPreferredSize.
18940             Move layout logic from PerformLayout to layout engines. 
18941
18942 2006-09-13  Chris Toshok  <toshok@ximian.com>
18943
18944         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
18945         fix for #79326 broke #78718, so this change addresses that.
18946
18947         - in SendWMDestroyMessages remove the call to
18948         CleanupCachedWindows, since we might be recreating the control and
18949         need to maintain the references to right Hwnd handles.  Also, set
18950         the zombie flag to true for each of the children in the hierarchy
18951         instead of calling hwnd.Dispose.  This will cause GetMessage to
18952         ignore all events for the window except for DestroyNotify.
18953
18954         - In GetMessage, ignore messages except for DestroyNotify for
18955         zombie hwnds.
18956         
18957         * Control.cs: revert the is_recreating fix from the last
18958         ChangeLog.  It's definitely "right", but it breaks switching from
18959         an MDI form to a non-MDI form.  Will need to revisit that.
18960
18961         * Hwnd.cs: add a zombie flag, which means "the
18962         client_window/whole_window handles are invalid, but we're waiting
18963         for the DestroyNotify event to come in for them".  Set the flag to
18964         false explicitly if setting WholeWindow/ClientWindow, and also
18965         when Disposing.
18966         
18967 2006-09-13  Chris Toshok  <toshok@ximian.com>
18968
18969         * XplatUIX11.cs: rework window destruction slightly.
18970
18971         - when destroying the windows associated with a control, we don't
18972         need 2 separate XDestroyWindow calls.  Just the one for the
18973         whole_window (or for client_window if whole_window is somehow
18974         IntPtr.Zero -- can this happen?) is enough.
18975
18976         - reworked SendWMDestroyMessages slightly, so we always dispose
18977         the child control hwnd's after sending the messages.
18978         
18979         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
18980         the two places it was used (one was even using hwnd.Handle and the
18981         other hwnd.client_window.  ugh), adding another call in
18982         SendWMDestroyMessages.  We need this new call because now the
18983         DestroyNotify events in the queue will be ignored for the child
18984         controls (as their hwnd's were disposed, and the window id's
18985         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
18986
18987         - this fixes bug #79326.
18988
18989 2006-09-13  Chris Toshok  <toshok@ximian.com>
18990
18991         * Control.cs: don't always set is_recreating to false at the end
18992         of RecreateHandle, since sometimes we're not done (and won't be
18993         until WndProc handles the WM_DESTROY message).  Also, set
18994         is_recreating to false in the WM_DESTROY handling code.  Part of
18995         the fix for bug #79326.
18996
18997 2006-09-13  Miguel de Icaza  <miguel@novell.com>
18998
18999         * X11DesktopColors.cs: Start the droppage of debugging messages.
19000
19001         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
19002
19003 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
19004
19005         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
19006
19007 2006-09-12  Chris Toshok  <toshok@ximian.com>
19008
19009         * DataGrid.cs (get_ListManager): if the list_manager is null, try
19010         to create it using SetDataSource.  Fixes bug #79151.
19011
19012 2006-09-11  Chris Toshok  <toshok@ximian.com>
19013
19014         * XEventQueue.cs: add a DispatchIdle property.
19015
19016         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
19017         either the queue is null, or the queue has DispatchIdle set to
19018         true.
19019         (DoEvents): set queue.DispatchIdle to false around the
19020         peek/translate/dispatch message loop in this method.  This keeps
19021         Application.Doevents from emitting idle events.  Part of the fix
19022         for #78823.
19023
19024 2006-09-11  Chris Toshok  <toshok@ximian.com>
19025
19026         * DataGrid.cs (set_DataSource): make this work for both the
19027         winforms/datagrid test and ReportBuilder.  It seems as though when
19028         we've created a ListManager (or maybe it's if we have a
19029         BindingContext?), when we set the DataSource it clears the
19030         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
19031         #79333.
19032
19033 2006-09-11  Chris Toshok  <toshok@ximian.com>
19034
19035         * XplatUIX11.cs: deal with queue being null, which happens in all
19036         the Clipboard functions.  Fixes one of the two problems mentioned
19037         in #78612.
19038
19039 2006-09-11  Chris Toshok  <toshok@ximian.com>
19040
19041         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
19042         button on various spots (including outside the menu) works closer
19043         to MS, and doesn't crash.  Fixes #79343.
19044
19045 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
19046
19047         * ListView.cs: Do not initialize item_sorter in init. To match MS,
19048         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
19049         and the internal comparer is set. When a new ListViewItemSorter is set,
19050         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
19051         was specified. No further processing is necessary if SortOrder is set
19052         to it's current value. If Sorting is modified to None, and View is
19053         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
19054         (either custom or our internal ItemComparer) to null, on 1.0 profile
19055         only set item_sorter to null if its our internal IComparer. If Sorting
19056         is modified to Ascending or Descending, then use our internal IComparer
19057         if none is set, and if the current IComparer is our internal one then:
19058         on 2.0 profile always replace it with one for new Sorting, and on 1.0
19059         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
19060         Enum.IsDefined to verify whether a valid View value is specified in
19061         its setter. Automatically sort listview items when listview is
19062         created. In Sort, do nothing if ListView is not yet created, or if
19063         no item_sorter is set (no Sorting was set, Sorting was explicitly set
19064         to None or ListViewItemSorter was set to null). Added Sort overload
19065         taking a bool to indicate whether the ListView should be redrawn when
19066         items are sorted (we use this in ListViewItemCollection to avoid double
19067         redraws). Modified our internal IComparer to take the sort order into
19068         account. In Add and AddRange methods of ListViewItemCollection, also
19069         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
19070         view), but use overload with noredraw option to avoid double redraw.
19071         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
19072         true when View is Tile, and do the same when attempting to set View to
19073         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
19074         for selected/checked indices, as it involves overhead when sorting is
19075         done while these collections are not used all that often. Instead
19076         we'll build the indices on demand. Modified IList implementation of
19077         CheckedIndexCollection to use public methods if object is int.
19078         Modified CheckedListViewItemCollection to hide checked items if
19079         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
19080         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
19081         IList implementation in SelectedIndexCollection to use public methods
19082         if object is int. Modified SelectedListViewItemCollection to hide
19083         selected items if listview is not yet created.
19084         * ListViewItem.cs: CheckedIndices list no longer needs to be
19085         maintained separately (see ListView changes). Also clone font, fixes
19086         test failure.
19087
19088 2006-09-11  Mike Kestner  <mkestner@novell.com>
19089
19090         * ComboBox.cs: if we are updating the contents of the currently
19091         selected index, refresh the control or the textbox selection.
19092         [Fixes #79066]
19093
19094 2006-09-11  Mike Kestner  <mkestner@novell.com>
19095
19096         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
19097         the 'specified' logic has been moved there.  This seems like a bug 
19098         in Control.cs, since our current SetBoundsCore completely ignores 
19099         the specified parameter.  Peter's commit seems to indicate that is 
19100         the way the MS control implementation works.  [Fixes #79325]
19101
19102 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
19103
19104         * XplatUI.cs: Set default_class_name to be composed
19105         of current domain id. This allows MWF to be loaded in multiple
19106         domains on Win32.
19107
19108 2006-09-09  Miguel de Icaza  <miguel@novell.com>
19109
19110         * X11Keyboard.cs: If we are unable to obtain the input method, do
19111         not call CreateXic to create the input context.   Should fix
19112         #78944/79276.
19113
19114 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
19115
19116         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
19117           Simplified gnome support by adding more pinvokes to get the
19118           icon for a file or mime type.
19119
19120 2006-09-08  Jackson Harper  <jackson@ximian.com>
19121
19122         * MenuAPI.cs: Deslect popup context menu items before closing the
19123         window, so that you don't see the previously selected item
19124         selected when you reopen the menu.
19125         * TextControl.cs: Update the cursor position even if we don't have
19126         focus.  This fixes typing in things like the ComboBox.  I'm not
19127         totally sure we should always set the visibility if we don't have
19128         focus, but couldn't find any corner cases where the cursor showed
19129         up when it shouldn't.
19130
19131 2006-09-08  Chris Toshok  <toshok@ximian.com>
19132
19133         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
19134         our arrays are length 256.  & 0xff before indexing.  Fixes the
19135         crash in bug #78077.
19136         
19137 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19138
19139         * ThemeWin32Classic.cs: 
19140         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
19141         is true. Handle that check box too.
19142
19143 2006-09-07  Chris Toshok  <toshok@ximian.com>
19144
19145         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
19146         79244.
19147
19148 2006-09-07  Chris Toshok  <toshok@ximian.com>
19149
19150         * Control.cs: in set_BackColor only do the work if
19151         background_color != value.
19152
19153         * XplatUIX11.cs: move the clearing of invalid areas (both client
19154         and nc) to the same block of code where we set (nc_)expose_pending
19155         to false.  That is, move it from PaintEventEnd to PaintEventStart,
19156         so things that cause invalidates from within OnPaint will trigger
19157         another call to OnPaint.  Fixes bug #79262.
19158
19159 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
19160
19161         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
19162         * FileDialog.cs: Fix typo
19163
19164 2006-09-07  Jackson Harper  <jackson@ximian.com>
19165
19166         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
19167         for tab pages if they have any.
19168
19169 2006-09-06  Mike Kestner  <mkestner@novell.com>
19170
19171         * Splitter.cs: use the "current" rect when finishing drag handle
19172         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
19173
19174 2006-09-06  Mike Kestner  <mkestner@novell.com>
19175
19176         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
19177         support offset splitters. [Fixes #79298]
19178
19179 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
19180
19181         * Mime.cs: Fixed a bug that could override the global mime type
19182           result.
19183
19184 2006-09-05  Jackson Harper  <jackson@ximian.com>
19185
19186         * TabControl.cs: Better calculation method for setting the slider
19187         pos. Prevents crashes on really wide tabs.
19188         - Draw Image on tab pages if an image list is used.
19189
19190 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19191
19192         * MonthCalendar.cs: When Font changes, the Size should be
19193         updated to fit the new font's space requirements.
19194
19195 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
19196
19197         * ListBox.cs: If the items are cleared with Items.Clear set
19198           top_index to 0.
19199
19200 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19201
19202         * MonthCalendar.cs: Handle arrow keys as input keys. Also
19203         fire DateChanged event instead of DateSelected event when
19204         the date was changed by keyboard interaction.
19205
19206 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19207
19208         * DateTimePicker.cs: Handle DateChanged for the associated
19209         month_calendar control, and set month_calendar.Font from 
19210         OnFontChanged method, as well as resize the height of the
19211         control when needed. Make PreferredHeight proportional.
19212
19213 2006-09-01  Chris Toshok  <toshok@ximian.com>
19214
19215         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
19216         properties.
19217
19218         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
19219
19220 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
19221
19222         * FileDialog.cs: Set ClientSize instead of window size, to allow space
19223           for decorations (Fixes #79219)
19224
19225 2006-09-01  Mike Kestner  <mkestner@novell.com>
19226
19227         * ComboBox.cs: first stab at sorting plus some selection handling
19228         fixes to bring us more in line with MS behavior.  Also switches back
19229         to index based selection.  Alternative patches for index-based 
19230         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
19231         and latency@gmx.de on bug 78848.  I assume they were similar to this
19232         code I've had simmering in my tree forever.
19233         [Fixes #78848]
19234
19235 2006-09-01  Chris Toshok  <toshok@ximian.com>
19236
19237         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
19238         when setting list position guard against ending up with a -1 index
19239         (the other part of the fix for #78812).  Should probably make sure
19240         we don't need the analogous fix in the ItemDeleted case.
19241
19242         * DataGrid.cs:
19243         - in SetDataSource, work around the fact that the way
19244         OnBindingContextChanged is invoked will cause us to re-enter this
19245         method.  I'll remove the hack once I investigate
19246         OnBindingContextChanged.
19247
19248         - fix the logic in set_DataSource and set_DataMember (basically
19249         what to do if the other of the two is null.)
19250         
19251         - in OnListManagerItemChanged, we need to take into account the
19252         edit row when deciding whether or not to call RecreateDataGridRows
19253         (part of the fix for #78812).
19254
19255 2006-09-01  Jackson Harper  <jackson@ximian.com>
19256
19257         * Splitter.cs: Don't do anything if there is no control to affect
19258         (prevents us from crashing in weird tet cases).
19259         * TreeView.cs: Bounding box for the mouse movement reverting
19260         focus/selection back to previously selected node.  This matches
19261         MS, and makes the tree a lot more useable.
19262         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
19263         use clipping so they are not drawn.  This fixes when the control
19264         is set to have a transparent background, or if it was over an
19265         image.
19266
19267 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
19268
19269         * MimeIcon.cs: Improved handling for reading default icons when
19270           using gnome (2.16 made it necessary). Check and read svg icons
19271           first, then 48x48 and then 32x32 icons.
19272
19273 2006-08-31  Chris Toshok  <toshok@ximian.com>
19274
19275         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
19276         visible.
19277
19278         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
19279         ProcessKeyPreview.  Fixes part of #77806.
19280
19281         * DataGrid.cs: big patch.
19282
19283         - revert the queueing up of DataSource/DataMember if inside
19284         BeginInit/EndInit calls.  That's not the way the datagrid achieves
19285         its delayed databinding.  Instead, call SetDataSource in
19286         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
19287         #78811.
19288
19289         - Also, it wasn't mentioned in #78811, but the test case exhibits
19290         behavior that was lacking in our datagrid implementation - Columns
19291         that have mapping names that don't exist in the datasource's
19292         properties aren't shown.  Yuck.  To fix this I added the bound
19293         field to the column style, and basically any calculation to figure
19294         out anything about columns uses a loop to find the bound columns.
19295         still need to investigate if I can cache an array of the bound
19296         columns or if the indices must be the same.
19297
19298         - When setting CurrentCell, we no longer abort if the cell being
19299         edited was in the add row.  This fixes the other part of #77806.
19300
19301         - The new code also fixes #78807.
19302         
19303         * ThemeWin32Classic.cs: perpetrate the same disgusting
19304         column.bound field hack, and only render bound fields.
19305
19306 2006-08-31  Chris Toshok  <toshok@ximian.com>
19307
19308         * DataGridColumnStyle.cs: add bound field.  this field is true if
19309         the datasource has a property corresponding to the mapping name.
19310
19311         * DataGridTableStyle.cs: set the bound field on the column styles
19312         depending on whether or not we have a column for that property.
19313
19314 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
19315
19316         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
19317           splitter control (fixes #79228)
19318
19319 2006-08-31  Chris Toshok  <toshok@ximian.com>
19320
19321         * DataGridColumnStyle.cs: we need to delay the assignment of
19322         property descriptor until the last possible moment due to the lazy
19323         databinding stuff in the datagrid.  Also, fix the exceptions
19324         thrown by CheckValidDataSource to match MS.
19325
19326 2006-08-31  Jackson Harper  <jackson@ximian.com>
19327
19328         * Form.cs: When activated select the active control, if there is
19329         no active control, we select the first control.
19330         * XplatUIX11.cs: If there is no focus control when we get a
19331         FocusIn event, find the toplevel form and activate it.  This
19332         occurs when you popup a window, it becomes the focus window, then
19333         you close that window, giving focus back to the main window.
19334
19335 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19336
19337         * MonthCalendar.cs: 
19338         * ThemeWin32Classic.cs: Cache Font in bold style, as well
19339         as StringFormat with Center alignments in MonthCalendar,
19340         instead of creating new ones when drawing the control. 
19341         Also, draw the month name in bold style.
19342
19343 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
19344
19345         * Control.cs:
19346           - PerformLayout(): It would seem MS performs the fill even if the 
19347             control is not visible (part of #79218 fix)
19348           - ResetBackColor(): Use the setter to reset the color, to allow
19349             overriders to catch the change.
19350         * Form.cs:
19351           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
19352           - CreateHandle(): dito (part of $79218 fix)
19353           - Don't set an icon if we have a dialog
19354         * ScrollableControl.cs:
19355           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
19356           - ScrollIntoView(): No need to scroll if control is already visible
19357             (resolves fixme and fixes #79218)
19358
19359 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19360
19361         * MonthCalendar.cs: Change proportions in SingleMonthSize
19362         to match the aspect of the original control.
19363
19364 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
19365
19366         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
19367           get updated when they get maximized.
19368
19369 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
19370
19371         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
19372
19373 2006-08-29  Chris Toshok  <toshok@ximian.com>
19374
19375         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
19376
19377 2006-08-29  Jackson Harper  <jackson@ximian.com>
19378
19379         * TreeView.cs: Need to track selected node and highlighted node,
19380         they aren't always the same thing, when the mouse is down on a
19381         node it is hilighted, but not selected yet.
19382         - Do the HideSelection stuff right
19383         - Need to focus on rbutton mouse down. And redraw selection when
19384         right click is mouse upped.
19385
19386 2006-08-29  Mike Kestner  <mkestner@novell.com>
19387
19388         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
19389         when SubItems.Count < Columns.Count.  [Fixes #79167]
19390
19391 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
19392
19393         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
19394
19395 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
19396
19397         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
19398           from X. Only send based on ConfigureNotify if we don't have the
19399           correct location in hwnd (if the window manager moved us)
19400
19401 2006-08-28  Mike Kestner  <mkestner@novell.com>
19402
19403         * ListView.cs: remove a TODO. 
19404         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
19405         [Fixes ListView part of #79166]
19406
19407 2006-08-28  Mike Kestner  <mkestner@novell.com>
19408
19409         * ListView.cs: move wheel handler to parent since it is focused
19410         instead of the item_control now.  [Fixes #79177]
19411
19412 2006-08-28  Mike Kestner  <mkestner@novell.com>
19413
19414         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
19415         when the control is focused. [Fixes #79171]
19416
19417 2006-08-28  Mike Kestner  <mkestner@novell.com>
19418
19419         * ListView.cs: size the item and header controls for empty and
19420         unscrollable views.
19421         * ThemeWin32Classic.cs: draw disabled backgrounds.
19422         [Fixes #79187]
19423
19424 2006-08-28  Chris Toshok  <toshok@ximian.com>
19425
19426         * Form.cs: remove unused "active_form" static field.
19427
19428         * Hwnd.cs: lock around accesses to static windows collection.
19429
19430         * Application.cs: lock threads in Exit ().
19431
19432 2006-08-28  Chris Toshok  <toshok@ximian.com>
19433
19434         * NativeWindow.cs: lock around accesses to window_collection.
19435         
19436 2006-08-28  Chris Toshok  <toshok@ximian.com>
19437
19438         * Control.cs: err, fix this the right way, by locking on controls
19439         when using it.  not by making it synchronized.
19440
19441 2006-08-28  Chris Toshok  <toshok@ximian.com>
19442
19443         * Control.cs: make the static "controls" field synchronized, as it
19444         gets updated from multiple threads.
19445
19446 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
19447
19448         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
19449           Prevent other threads from exiting when calling thread sets quit state.
19450         * XEventQueue.cs: Added PostQuitState property
19451
19452 2006-08-27  Chris Toshok  <toshok@ximian.com>
19453
19454         * AsyncMethodData.cs: add a slot for the window handle.
19455
19456         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
19457         window (the destination control's window, not the foster window).
19458
19459         * Control.cs (BeginInvokeInternal): store the window's handle in
19460         the AsyncMethodData.
19461         
19462
19463 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
19464
19465         * XplatUIX11.cs:
19466           - PostQuitMessage: Removed resetting S.D display handle, we might have
19467             another loop started after calling PostQuitMessage (Fixes #79119)
19468           - Created destructor to reset S.D handle
19469
19470 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
19471
19472         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
19473
19474 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
19475
19476         * TextControl.cs (Insert): Update the caret position even if we don't
19477           have a handle yet, just don't call the driver in that case.
19478         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
19479           to the end of the new selection text (Fixes #79184)
19480
19481 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
19482
19483         * Form.cs (Activate): Only activate if the handle is created)
19484         * Control.c:
19485           - Mark window as invisible when it's disposed
19486           - Check if window handle is created when setting window visible, 
19487             instead of relying just on the is_created variable
19488           - Check if object is disposed when creating the control (Fixes #79155)
19489
19490 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
19491
19492         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
19493           when allowing layout again. Otherwise we re-generate the anchoring 
19494           distance to the border again and actually alter what the user wanted
19495           This is ugly, it'd be better if we used DisplayRectangle instead of
19496           ClientRectangle for Control.UpdateDistances, but that causes us to
19497           have other problems (initial anchoring positons would be wrong)
19498           (Fixes #78835)
19499
19500 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
19501
19502         * Control.cs:
19503           - The size and location setters shouldn't go directly to 
19504             SetBoundsCore, but to SetBounds, which triggers layout on the
19505             parent, then calls SetBoundsCore. (Related to fix for #78835)
19506           - SetBounds: Moved actual location update code into this function
19507             from SetBoundsCore, to match MS. Added call to PerformLayout if
19508             we have a parent (to trigger resizing of anchored parents if the 
19509             child size has changed (see testcase for #78835) 
19510         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
19511           new control code
19512         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
19513
19514 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
19515
19516         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
19517           System.Drawing when a toplevel window gets closed; there might
19518           be other toplevel windows belonging to the same app (Fixes #78052)
19519
19520 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
19521
19522         * FileDialog.cs: After reading FileDialog settings from mwf_config
19523           use Desktop prefix only if a real folder doesn't exist anymore.
19524         * FontDialog.cs: Added char sets.
19525           It is now possible to select the font, size or style with the
19526           textboxes.
19527
19528 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
19529
19530         * PrintPreviewDialog.cs: Use assembly name constants.
19531
19532 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
19533
19534         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
19535           scrollbar from whacking it's buttons)
19536
19537 2006-08-24  Chris Toshok  <toshok@ximian.com>
19538
19539         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
19540         in this patch (aggregating setting Left/Top/Width/Height to
19541         setting Bounds on the scrollbars), but the crux of the fix is in
19542         Recalculate, where we scroll by the remaining scroll_position if
19543         we're hiding a scrollbar.  The 2*$5 reward in the comment is
19544         serious.
19545
19546 2006-08-24  Jackson Harper  <jackson@ximian.com>
19547
19548         * MdiClient.cs:
19549         * MdiWindowManager.cs: If the form is made a non-mdi window we
19550         need to remove the form closed event so that closing forms works
19551         correctly.
19552
19553 2006-08-24  Jackson Harper  <jackson@ximian.com>
19554
19555         * Control.cs: Make IsRecreating internal so that the driver can
19556         check it
19557         - Temporarily remove the Hide when controls are removed, its
19558         making a whole bunch of things not work because visibility isn't
19559         getting reset elsewhere correctly
19560         * Form.cs: Need to do a full handle recreation when the mdi parent
19561         is set.
19562         * XplatUIX11.cs: If we are recreating handles don't dispose the
19563         HWNDs.  What was happening is the handles were being recreated in
19564         SendWMDestroyMessages, but then flow continued on in that method
19565         and destroyed the new handles.
19566
19567 2006-08-23  Jackson Harper  <jackson@ximian.com>
19568
19569         * Form.cs: MdiClient is always at the back of the bus
19570         * Control.cs: When the order of items in the collection is changed
19571         we need to reset the all_controls array
19572         - do the same sorta setup thats done when adding a control when a
19573         control is set on the collection.
19574
19575 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
19576
19577         * TextBoxBase.cs (get_Text): Return an empty array if our document
19578           is empty (fixes #79052)
19579
19580 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
19581
19582         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
19583           on WM_SYSCHAR messages (fixes #79053)
19584
19585 2006-08-23  Chris Toshok  <toshok@ximian.com>
19586
19587         * DataGrid.cs: fix flickering when scrolling vertically.
19588
19589 2006-08-23  Chris Toshok  <toshok@ximian.com>
19590
19591         * DataGrid.cs (EndEdit): only invalidate the row header when we
19592         need to.
19593
19594 2006-08-23  Chris Toshok  <toshok@ximian.com>
19595
19596         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
19597         methods.  fixes the flicker when scrolling around.
19598
19599 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
19600
19601         * FileDialog.cs: Making sure the control is created before we get a 
19602           chance to use it with BeginInvoke (Fixes #79096)
19603
19604 2006-08-23  Chris Toshok  <toshok@ximian.com>
19605
19606         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
19607         width to use when painting the rows.
19608
19609 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
19610
19611         * TextBoxBase.cs:
19612           - Throw ArgumentException if a negative value is passed to SelectionLength
19613           - Update the selection end if start is moved. end needs to be always
19614             after start. (Fixes #79095)
19615           - Track selection length; MS keeps the selection length even if start
19616             is changed; reset on all other operations affection selection
19617
19618 2006-08-22  Jackson Harper  <jackson@ximian.com>
19619
19620         * TreeView.cs: Make sure both scrollbars get displayed and sized
19621         correctly when the other bar is visible.
19622         - Use the original clip rectangle for checking if the area between
19623         the two scrollbars is visible, not the viewport adjusted clipping
19624         rectangle.
19625
19626 2006-08-22  Jackson Harper  <jackson@ximian.com>
19627
19628         * Binding.cs: We don't use IsBinding because it requires the
19629         control to be created, which really shouldn't be necessary just to
19630         set a property on the control.
19631
19632 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19633
19634         * ComboBox.cs: Some CB.ObjectCollection methods must throw
19635         ArgumentNullReferenceException when the argument is null.
19636
19637 2006-08-21  Jackson Harper  <jackson@ximian.com>
19638
19639         * Timer.cs: Track the thread that the timer is started in (NOT
19640         CREATED), this way messages for it will only be triggered on its
19641         queue.
19642         * XEventQueue.cs: Track the timers here, this makes timers per
19643         thread, like MS.
19644         * XplatUIX11.cs: The timers are moved to the XEventQueue.
19645
19646 2006-08-19  Chris Toshok  <toshok@ximian.com>
19647
19648         * XplatUIX11.cs: after further communication with pdb, we get the
19649         best of both worlds.  SetZOrder working for un-Mapped windows, and
19650         no X errors for un-mapped windows.
19651
19652 2006-08-19  Chris Toshok  <toshok@ximian.com>
19653
19654         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
19655         as it was causing pdn toolbars to not have the correct stacking.
19656
19657 2006-08-18  Mike Kestner  <mkestner@novell.com> 
19658
19659         * ListView.cs : guard against negative ClientArea.Width in scrollbar
19660         calculation.  Not sure why control should ever be setting a negative
19661         width though.  Fixes #78931.
19662
19663 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19664
19665         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
19666         null items in ObjectCollection class.
19667         * ListBox.cs.: Likewise.
19668
19669 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
19670
19671         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
19672           as the base method in ThemeWin32Classic should work fine.
19673           Fixed bug #78607.
19674
19675 2006-08-18  Jackson Harper  <jackson@ximian.com>
19676
19677         * Binding.cs: When validating if the value entered doesn't convert
19678         properly reset to the old value.
19679         * RadioButton.cs: Don't fire click when we get focus.
19680
19681 2006-08-18  Jackson Harper  <jackson@ximian.com>
19682
19683         * FileDialog.cs: Paint the selection on the directory combobox the
19684         same way as on MS. 
19685
19686 2006-08-17  Jackson Harper  <jackson@ximian.com>
19687
19688         * ErrorProvider.cs: Don't allow the error control to be selected.
19689         * Control.cs: Don't send the SetFocus messages, the control
19690         activation will do this, and if we do it blindly here validation
19691         does not work.
19692
19693 2006-08-17  Jackson Harper  <jackson@ximian.com>
19694
19695         * Control.cs:
19696         * ContainerControl.cs: Make validation events fire in the correct
19697         order.  TODO: For some reason the first validation event is not
19698         getting fired.
19699
19700 2006-08-17  Mike Kestner  <mkestner@novell.com> 
19701
19702         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
19703
19704 2006-08-17  Mike Kestner  <mkestner@novell.com> 
19705
19706         * ComboBox.cs : implement scroll wheel support for popped-down
19707         state. Fixes #78945. 
19708
19709 2006-08-17  Jackson Harper  <jackson@ximian.com>
19710
19711         * TreeView.cs: Specify treeview actions (old patch that didn't get
19712         committed for some reason).
19713         - Don't let the mouse wheel scroll us too far.  Just want to make
19714         the bottom node visible, not scroll it all the ways to the top.
19715
19716 2006-08-17  Jackson Harper  <jackson@ximian.com>
19717
19718         * XplatUIX11.cs: Mouse wheel events go to the focused window.
19719
19720 2006-08-17  Mike Kestner  <mkestner@novell.com> 
19721
19722         * ComboBox.cs : don't do mouseover selection in simple mode.
19723
19724 2006-08-16  Jackson Harper  <jackson@ximian.com>
19725
19726         * Form.cs: Fire the closing events for all the mdi child windows
19727         when a window is closed.  If the cancel args are set to true, the
19728         main window still gets the event fired, but it doesn't not close.
19729         * MdiWindowManager.cs: Do this closing cleanup in a Closed
19730         handler, instead of when the button is clicked, so cancelling the
19731         close works correctly.
19732         * ComboBox.cs: Send the mouse down to the scrollbar.
19733
19734 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19735
19736         * ListBox.cs: When passing 'null' to SelectedItem,
19737         set SelectedIndex to -1, to unselect items. This is the
19738         observed behaviour in .Net.
19739
19740 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
19741
19742         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
19743           MS flags saying there won't be any. (fixes #78800)
19744         * Control.cs (HandleClick): Made virtual
19745
19746 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
19747
19748         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
19749           cultures. Fixed bug #78399.
19750
19751 2006-08-16  Jackson Harper  <jackson@ximian.com>
19752
19753         * Form.cs: Use the MdiClients MdiChildren property to access
19754         MdiChildren instead of creating the array from the child controls.
19755         * MdiClient.cs: Maintain a separate array of the mdi children, so
19756         that insertion order is maintained when the Z-order is changed.
19757
19758 2006-08-16  Mike Kestner  <mkestner@novell.com> 
19759
19760         * ListView.cs : add an ItemComparer and default to it for sorting.
19761         Fixes #79076, but sorting needs a complete overhaul to be compat with
19762         MS.
19763
19764 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
19765
19766         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
19767
19768 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
19769
19770         * Hwnd.cs (Mapped): Properly traverse the tree
19771
19772 2006-08-15  Chris Toshok  <toshok@ximian.com>
19773
19774         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
19775         pass manager.Current.GetType() to ParseData.  It has to be the
19776         property type.  So, hold off doing the ParseData until we're in
19777         SetPropertyValue where we know the type.  This fixes the crash in
19778         #78821 but the textbox is still empty.
19779
19780 2006-08-15  Chris Toshok  <toshok@ximian.com>
19781
19782         * DataGrid.cs:
19783         - when we're scrolling, only call Edit() again if the
19784         current cell is still unobscured. Fixes bug #78927.
19785         - when handling mousedown on a cell, ensure the cell is visible
19786         before calling Edit.
19787         - remove the properties from DataGridRow, and remove the
19788         DataGridParentRow class altogether.
19789         
19790
19791 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
19792
19793         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
19794           fire OnTextChanged by ourselves. There's no point calling base,
19795           we don't set the base value anywhere else. Fixes #78773.
19796
19797 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19798
19799         * ListBox.cs: Call CollectionChanged when modifying
19800         an item from Items indexer, to update the actual items
19801         in the list box.
19802
19803 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19804
19805         * PrintDialog.cs: Small fixes for focus and a pair of checks,
19806         to match .Net behaviour.
19807
19808 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
19809
19810         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
19811
19812 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
19813
19814         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
19815
19816 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
19817
19818         * MessageBox.cs: Prevent potential NRE exception.
19819         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
19820
19821 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
19822
19823         * MessageBox.cs: Calculate the owner of a messagebox, also make
19824           it topmost. Fixes #78753
19825
19826 2006-08-14  Chris Toshok  <toshok@ximian.com>
19827
19828         * XplatUIX11.cs: A couple of fixes so that metacity will let us
19829         programmatically move windows.  first, set the PPosition hint as
19830         well as the USPosition hint.  Second include some code from pdb
19831         that sets the window type to NORMAL when we set the transient for
19832         hint.  This is because, in the absence of a window type, metacity
19833         thinks any window with TransientFor set is a dialog, and refuses
19834         to let us move it programmatically.  fascists.
19835
19836 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
19837
19838         * XplatUIX11.cs: When setting normal hints, take into consideration
19839           an different hints previously set so we don't delete them (fixes #78866)
19840
19841 2006-08-12  Chris Toshok  <toshok@ximian.com>
19842
19843         * ToolBarButton.cs: make Layout return a boolean, if something to
19844         do with the button's layout changed.
19845
19846         * ToolBar.cs:
19847         - add another parameter to Redraw, @force, which all existing
19848           calls set to true.
19849         - make the Layout function return a boolean which is true if the
19850           layout has actually changed.  Redraw now uses this (and @force)
19851           to determine when to invalidate.  At present the only place
19852           where @force can be false is the call from OnResize, when
19853           background_image == null.  So, resizing a toolbar when the
19854           layout doesn't change results in no drawing.
19855
19856 2006-08-12  Chris Toshok  <toshok@ximian.com>
19857
19858         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
19859         the VScrollBar and HScrollbar reversed.  oops.
19860
19861         * DataGrid.cs: fix the logic that assigns sizes to the implicit
19862         scrollbars.  we were assigning them twice (once in
19863         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
19864         therefore causing two scrollbar resizes (and redraws?) to happen
19865         per grid resize.
19866
19867 2006-08-12  Chris Toshok  <toshok@ximian.com>
19868
19869         * ToolBarButton.cs: redraw the entire button if the theme tells us
19870         to.
19871
19872         * Theme.cs: add ToolBarInvalidateEntireButton.
19873
19874         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
19875         buttons, just the border.
19876
19877         * ThemeNice.cs: redraw the entire toolbar button since we need to
19878         draw the highlight image.
19879
19880         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
19881         we need to redraw the entire button (not just the border).
19882
19883 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
19884
19885         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
19886           for vertical bars. Fixes the mismatches shown by #78513
19887
19888 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
19889
19890         * FileDialog.cs: If a saved/remembered path doesn't exist
19891           anymore, fall back to "Desktop".
19892
19893 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
19894
19895         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
19896           parent. It's apparently legal to not have one
19897         * XplatUIX11.cs:
19898           - SetZOrder: Don't try to set Z-Order on an unmapped window
19899           - CreateWindow: 0,0 are legal coordinates for a window. don't move
19900             it unless the coordinates are negative
19901
19902 2006-08-10  Mike Kestner  <mkestner@novell.com>
19903
19904         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
19905         when setting to null per msdn docs.  Fixes #78854.
19906
19907 2006-08-10  Chris Toshok  <toshok@ximian.com>
19908
19909         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
19910         flickering by setting a clip rectangle on the Graphics when we
19911         need to redraw just a particular menuitem.  Also, rename "OnClick"
19912         to "OnMouseDown" to reflect what it actually is.
19913         
19914         * Form.cs: track the OnMouseDown change.
19915
19916 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
19917
19918         * CommonDialog.cs: Properly inherit the CreateParams from the form
19919           and only change what we need. Fixes #78865
19920
19921 2006-08-10  Chris Toshok  <toshok@ximian.com>
19922
19923         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
19924         flickering in flat mode (and most of the flickering in general) by
19925         only invalidating the button border (and not the entire rectangle)
19926         when the state changes.  A couple of cases still flicker:
19927         ToggleButtons, and the dropdown arrow case when the user mouse
19928         ups.
19929
19930 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
19931
19932         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
19933           for german keyboards. Numlock state shouldn't affect the behaviour
19934           of the Del key. Fixes bug #78291.
19935
19936 2006-08-10  Chris Toshok  <toshok@ximian.com>
19937
19938         * ListControl.cs: remove the items.Clear line from BindDataItems,
19939         as this is the first thing done by both subclasses in their
19940         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
19941         passed -1, refresh the list.  This gets databinding working when
19942         the datasource is set on the list before the datasource is
19943         populated (as in wf-apps/ReportBuilder.)
19944
19945         * ComboBox.cs: remove the argument to BindDataItems.  This call
19946         should really go away, and be initiated by the ListControl code.
19947
19948         * ListBox.cs: same.
19949
19950 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
19951
19952         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
19953           if no data is in the document when the control is displayed
19954
19955 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
19956
19957         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
19958           yes (fixes #78806)
19959         * TextControl.cs: 
19960           - PositionCaret: Allow positioning of caret but don't call methods 
19961             requiring a handle if the window isn't created yet
19962           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
19963           - owner_HandleCreated: Don't position the caret, just update it's 
19964             location. User might have already set a different position
19965
19966 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
19967
19968         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
19969           windows. Screws up the returned coordinates for child windows. 
19970           Fixes #78825. I'm hoping this doesn't break something, since the
19971           code was explicitly put in 8 months ago, but no bug was attached.
19972           Menus still seem to work properly.
19973
19974 2006-08-08  Chris Toshok  <toshok@ximian.com>
19975
19976         * DataGrid.cs: make BeginInit/EndInit actually do what they're
19977         supposed to do - delay data binding until the EndInit call.  Also,
19978         make the table style collection's CollectionChangeAction.Refresh
19979         work properly.
19980
19981         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
19982         (with action = Refresh) when a consituent table's MappingName is
19983         changed.
19984
19985 2006-08-08  Chris Toshok  <toshok@ximian.com>
19986
19987         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
19988         Invalidate, since changing the text can change the size of the all
19989         toolbar buttons.
19990
19991 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
19992
19993         * Form.cs (AddOwnedForm): Still need to add the form to our listif
19994           we don't have it yet
19995
19996 2006-08-08  Chris Toshok  <toshok@ximian.com>
19997
19998         * PrintControllerWithStatusDialog.cs: don't .Close() the status
19999         dialog, as this causes X errors later on, since we actually
20000         destroy the window.  Instead, .Hide() it.
20001
20002 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
20003
20004         * ComboBox.cs: Added focus reflection for popup window
20005         * XplatUIX11.cs: 
20006           - Removed transient setting for non-app windows for now, not sure it
20007             was needed
20008           - Fixed logic checking if we have captions when deciding 
20009             override_redirect, WS_CAPTION is two bits and a 0 check was not
20010             sufficient
20011           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
20012             complicated
20013         * Form.cs: 
20014           - AddOwnedForm: Don't just add the form to the list, call the property
20015             to ensure the driver is informed about the ownership as well
20016           - CreateHandle: Set the TopMost status in the driver if we have an owner
20017         * XplatUI.cs: Fixed debug statement
20018
20019 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
20020         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
20021           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
20022           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
20023           TrackBarRenderer.cs: Make constructor private.
20024         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
20025         * ProfessionalColorTable.cs: Make properties virtual.
20026
20027 2006-08-06  Duncan Mak  <duncan@novell.com>
20028
20029         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
20030         is not changing.
20031
20032 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
20033         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
20034           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
20035           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
20036           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
20037           Initial import of new 2.0 classes.
20038
20039 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
20040         * Application.cs: Add 2.0 VisualStyles properties.
20041
20042 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
20043         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
20044           XplatUIX11.cs: Create property to allow access to existing private
20045           variable "themes_enabled"
20046
20047 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20048
20049         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
20050         file size, as otherwise our class libraries fail using windows. Fixes
20051         bug #78759.
20052
20053 2006-08-04  Jackson Harper  <jackson@ximian.com>
20054
20055         * Form.cs:
20056         * XplatUIX11.cs: Move the toolwindow window manager creation into
20057         the X11 driver, this way on win32 we can let windows create/handle
20058         the toolwindows.
20059
20060 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20061
20062         * PrintDialog.cs: Remove some redundant checks, add some others,
20063         clean some code, and move the focus to the text boxes when the
20064         values are incorrect.
20065
20066 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
20067
20068         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
20069
20070 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
20071
20072         * NumericUpDown.cs: Setting the Minimum and Maximum is now
20073           handled correctly. Fixes bug #79001.
20074
20075 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20076
20077         * PrintDialog.cs: The "Copies" numeric up down must have
20078         set the Minimum property to 1; only if the value is bigger
20079         than 1, activate "Collate" check box. This is the behaviour of .Net.
20080         Also modify the Document elements only if it is not null.
20081
20082 2006-08-03  Jackson Harper  <jackson@ximian.com>
20083
20084         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
20085         length. (We have a larger array then actual node count).
20086                 
20087 2006-08-03  Jackson Harper  <jackson@ximian.com>
20088
20089         * ComboBox.cs: Don't show selection by default.
20090         - The SelectAll isn't needed here, since the focus code should do
20091         that
20092         - DDL style lists to manual selection drawing, so when they
20093         get/lose focus they have to invalidate.
20094
20095 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
20096
20097         * TextBoxBase.cs: Don't always show all selections by default.
20098
20099 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
20100         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
20101           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
20102           Fixed various typos.
20103
20104 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
20105
20106         * Control.cs: Removing the controls in a ControlCollection with
20107           Clear now hides the controls as expected. Fixes bug #78804. 
20108
20109 2006-08-03  Jackson Harper  <jackson@ximian.com>
20110
20111         * Control.cs: Revert previous focus patch, it breaks reflector.
20112
20113 2006-08-03  Jackson Harper  <jackson@ximian.com>
20114
20115         * ComboBox.cs: Cleanup selection and focus with the combobox.
20116         This also eliminates some duplicated keyboard code, since now
20117         everything is handled by the main class.
20118         - Make list selection work on mouse up instead of down, to match
20119         MS.
20120
20121 2006-08-02  Jackson Harper  <jackson@ximian.com>
20122
20123         * Control.cs: Setting focus needs to go through the whole
20124         selection mechanism.
20125
20126 2006-08-02  Chris Toshok  <toshok@ximian.com>
20127
20128         * PrintPreviewDialog.cs: change MinimumSize to use
20129         base.MinimumSize so it works.
20130
20131 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
20132
20133         * TextControl.cs:
20134           - UpdateCaret: Added sanity check in case caret isn't defined yet
20135           - Line.Delete: Now updating selection and caret markers if we're
20136             transfering a node (Properly fixes #78323)
20137           - SetSelectionEnd: Added sanity check
20138         * TextBoxBase.cs: Removed broken attempt to fix #78323
20139
20140 2006-08-01  Chris Toshok  <toshok@ximian.com>
20141
20142         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
20143         Close() call is handled in Form, not here.
20144
20145 2006-08-01  Chris Toshok  <toshok@ximian.com>
20146
20147         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
20148         layout/rendering.
20149
20150         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
20151         for sizes < 100% zoom.  The code now aggressively attempts to keep
20152         from calling document.Print (), and tries not to use the scaling
20153         g.DrawImage whenever possible (it still does if you scale to >
20154         100%, since usually that involves huge images).
20155
20156         * PrintPreviewControl.cs: hook up the close button.
20157
20158 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
20159         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
20160           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
20161           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
20162           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
20163           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
20164           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
20165           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
20166           Removed [Serializable] for 2.0 Event Handlers.
20167
20168 2006-07-31  Jackson Harper  <jackson@ximian.com>
20169
20170         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
20171         * TextControl.cs: Uncomment out the body of this method.
20172
20173 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
20174
20175         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
20176           standard cursors.
20177
20178 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
20179
20180         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
20181           that embed TextBox and need selections visible even if textbox is not
20182           focused to enforce that behaviour.
20183         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
20184           selection drawing
20185
20186 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
20187
20188         * TextControl.cs:
20189           - Added new SetSelectionStart/SetSelectionEnd overloads
20190           - Fixed viewport width assignment to be accurate
20191           - Adjusted alignment line shift calculations to allow cursor on right
20192             aligned lines to be always visible at the right border (like MS)
20193         * TextBoxBase.cs:
20194           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
20195           - TextBoxBase_SizeChanged: recalculating canvas on size changes
20196           - CalculateScrollBars: Use ViewPort size instead of window size, to
20197             properly consider space occupied by the border and scrollbars 
20198             (Fixes #78661)
20199           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
20200             calculations; no longer leaves artifacts
20201           - CaretMoved: Adjusted window scrolling to match MS and fixed several
20202             calculation bugs (Still missing right/center align calculations)
20203
20204 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
20205
20206         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
20207           use of both scroll rect and clip rect, as they do the same.
20208
20209 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
20210
20211         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
20212           in the event handler (fixes #78912)
20213
20214 2006-07-31  Chris Toshok  <toshok@ximian.com>
20215
20216         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
20217         grid.ListManager.Count, since grid.ListManager might be null.
20218         This of course begs the question "why are we drawing rows for a
20219         grid with no list manager (and therefor no rows)?"  Fixes the
20220         crash in bug #78929.
20221
20222 2006-07-31  Chris Toshok  <toshok@ximian.com>
20223
20224         * RelatedPropertyManager.cs: Don't always chain up to the parent
20225         ctor.  instead, call SetDataSource if the parent's position is !=
20226         -1.  Fixes the crash in #78822.
20227
20228 2006-07-31  Chris Toshok  <toshok@ximian.com>
20229
20230         * DataGrid.cs (get_ListManager): use field instead of property
20231         accessors for datasource and datamember.
20232         (RowsCount): make internal again.
20233         (OnMouseDown): end edits before resizing columns/rows.
20234         (OnMouseUp): restart edits after resizing columns/rows.
20235
20236 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
20237
20238         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
20239           This fixes the situation where the last set cursor is displayed
20240           whenever the mouse is over scrollbars.
20241
20242 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20243
20244         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
20245         Document properties, as well as initial values.
20246
20247 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
20248
20249         * XplatUIWin32.cs (SetBorderStyle): Setting both border
20250           and ClientEdge results in a 3-pixel border, which is
20251           wrong.
20252
20253 2006-07-28  Jackson Harper  <jackson@ximian.com>
20254
20255         * TreeNodeCollection.cs: Fix the clear method.
20256         - Fix the Shrink also
20257
20258 2006-07-27  Jackson Harper  <jackson@ximian.com>
20259
20260         * TreeView.cs: Make sure the visible order is computed when we
20261         attempt to size the scrollbars (for trees that mess with the
20262         scrolling when they shouldn't.
20263         - Make sure to give the scrollbars valid values.
20264
20265 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
20266
20267         * XplatUIX11.cs: Move motion compression code to where it
20268           has less performance impact
20269
20270 2006-07-26  Jackson Harper  <jackson@ximian.com>
20271
20272         * UpDownBase.cs: When the control is selected make the child
20273         controls non selectable, so that a click on them won't do a
20274         focus/unfocus cycle.
20275         - Don't give focus to the text box when the spinner is selected.
20276         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
20277
20278 2006-07-26  Chris Toshok  <toshok@ximian.com>
20279
20280         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
20281         satisfied with this solution.  If the bitmaps are small, we should
20282         just cache them in the PrintPreviewDialog and draw them here.
20283         Also, the layout is broken for the 2-up and 3-up cases.
20284
20285         * Theme.cs: add PrintPReviewControlPaint.
20286
20287         * PrintPreviewDialog.cs: first pass implementation.
20288
20289         * PrintPreviewControl.cs: first pass implementation.  No
20290         scrollbars yet.
20291
20292         * PrintDialog.cs: only validate fields if that particular portion
20293         of the UI is enabled.  Also, set the document's controller to a
20294         PrintControllerWithStatusDialog wrapping the document's print
20295         controller.
20296
20297         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
20298         bring up a SaveFileDialog (i hope we don't want to match the
20299         behavior of the crappy windows file entry) and set the
20300         PrinterSettings.PrintFileName accordingly.
20301
20302 2006-07-26  Jackson Harper  <jackson@ximian.com>
20303
20304         * ContainerControl.cs: Add a field that disables auto selecting
20305         the next control in a container when the container is activated.
20306         * UpDownBase.cs: Don't select the text box when the up down is
20307         selected.
20308
20309 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
20310
20311         * XEventQueue.cs: Added methods for peeking (used for compression
20312           of successive events)
20313         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
20314           mouse move events (fixes #78732)
20315
20316 2006-07-25  Jackson Harper  <jackson@ximian.com>
20317
20318         * UpDownBase.cs: Use an internal class for the textbox so that we
20319         can control focus.  the updown control should always have focus,
20320         if either the text area or the buttons are clicked.
20321         - Send the key messages to the textbox, since it never actually
20322         has focus
20323         - Activate and decativate the textbox caret.
20324
20325 2006-07-24  Jackson Harper  <jackson@ximian.com>
20326
20327         * Control.cs: Use the directed select when selecting a control,
20328         this way the container controls override will get called and the
20329         whole ActiveControl chain will get triggered.  TODO: probably need
20330         to make sure this gets done everywhere instead of the old
20331         Select(Control).
20332         * ContainerControl.cs: Implement the directed Select method to
20333         find and activate the correct child control.    
20334         
20335 2006-07-22  Mike Kestner  <mkestner@novell.com>
20336
20337         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
20338         menu handling code so that clicks without a grab work too.
20339         [Fixes #78914]
20340
20341 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
20342
20343         * FileDialog.cs: Enable the BackButton when dirstack has one element.
20344           Added some small optimizations.
20345
20346 2006-07-21  Matt Hargett  <matt@use.net>
20347
20348         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
20349
20350 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
20351
20352         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
20353           tests pass and match MS in some strange border cases.
20354
20355 2006-07-21  Chris Toshok  <toshok@ximian.com>
20356
20357         * ThemeWin32Classic.cs: handle drawing of the relation links and
20358         parent row buttons.
20359
20360         * Theme.cs: change args to DataGridPaintParentRow.
20361
20362         * DataGrid.cs: Don't use controls for the relation links and
20363         parent buttons, so we have to handle all their interactions in
20364         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
20365         when we're navigating through child tables, so we can reinstate
20366         selection, expanded state, current cell, etc.
20367
20368 2006-07-20  Chris Toshok  <toshok@ximian.com>
20369
20370         * ToolBar.cs: When we redraw a button, for whatever reason,
20371         there's no reason to redraw the entire toolbar.  Also, don't call
20372         Control.Refresh from within Redraw, as it's much heavier than
20373         Invalidate (which is really what we want).
20374
20375 2006-07-20  Chris Toshok  <toshok@ximian.com>
20376
20377         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
20378         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
20379         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
20380         traces from within a debug IBindingList datasource
20381         (in mono/winforms/datagrid) for *days*, I've finally gotten things
20382         to work in a similar fashion.
20383
20384 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20385
20386         * ListBox.cs: Don't call Sort () when setting 
20387         the Sorted property to false (avoid an unnecessary sort).
20388
20389 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20390
20391         * ListControl.cs: DataSource should throw an ArgumentException
20392         instead of a normal exception when the argument is not of the 
20393         correct type.
20394
20395 2006-07-20  Mike Kestner  <mkestner@novell.com>
20396
20397         * Control.cs: add InternalPreProcessMessage to allow us to steal
20398         key events before MWF gets its paws on them.  Adapted from a
20399         suggestion by eno.
20400         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
20401         up/down/left/right navigation. Override the new internal control
20402         method to steal the events since they never make it to WndProc.
20403         * ToolBarButton.cs: don't worry about pushed when setting hilight
20404         since the drawing code prefers pushed to hilight. Invalidate on 
20405         Hilight changes. Fixes #78547 and #78525.
20406
20407 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
20408
20409         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
20410           the canvas size. Fixes #78868
20411
20412 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
20413
20414         * Splitter.cs: Track requested split position until first layout
20415           is performed. Fixes #78871
20416
20417 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
20418
20419         * Application.cs: Removed code that forces 1.x for the version
20420           number if the version started with 0. Not sure why that code was
20421           there and I couldn't find any bugs that indicated we needed it.
20422           Fixes #78869
20423
20424 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
20425
20426         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
20427           ResetDefaults(), just write some output to the console until it's
20428           implemented. Fixes bug #78907 for now. Eliminated two warnings.
20429
20430 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
20431
20432         * PropertyGridView.cs: set StartPosition of drop down forms
20433         so they appear in correct initial spot.  Fixes #78190.
20434
20435 2006-07-19  Mike Kestner  <mkestner@novell.com>
20436
20437         * ThemeWin32Classic.cs: use parent background color when drawing
20438         flat toolbars.  Restructure the conditionals to make sure non-flat
20439         non-Divider toolbars are filled too.  Fixes #78837.
20440
20441 2006-07-19  Mike Kestner  <mkestner@novell.com>
20442
20443         * ListBox.cs: Sort on collection changes even if the handle
20444         isn't created yet.  Fixes #78813.
20445
20446 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20447
20448         * ListControl.cs: DisplayMember should never be null,
20449         and now we assign String.Empty when null is passed to it (this
20450         is the .Net way).
20451
20452 2006-07-17  Mike Kestner  <mkestner@novell.com>
20453
20454         * ListViewItem.cs: restructure Font and subitem Font handling 
20455         to hold a specific font and refer back to owner on null.
20456         Fixes #78761.
20457
20458 2006-07-17  Mike Kestner  <mkestner@novell.com>
20459
20460         * ToolBar.cs: bandaid for side-effect of previous patch which was
20461         discarding explicit heights for non-AutoSize toolbars.  Need to
20462         extend my format tester to deal with AutoSize=false. Fixes #78864.
20463
20464 2006-07-15  Jackson Harper  <jackson@ximian.com>
20465
20466         * LabelEditTextBox.cs:
20467         * TreeView.cs: Use a new LabelEdit class for node editing, this
20468         class automatically 'closes' itself when it gets the enter key or
20469         loses focus.
20470         - Use the client rectangle when setting the trees scrollbars, so
20471         border style is taken into account.
20472         
20473 2006-07-14  Jackson Harper  <jackson@ximian.com>
20474
20475         * TreeNode.cs:
20476         * TreeView.cs: Make the editing work similar to MSs, firing the
20477         events correctly and ending edits correctly.
20478
20479 2006-07-14  Mike Kestner  <mkestner@novell.com>
20480
20481         * ToolBarButton.cs:
20482         * ToolBar.cs: layout restructuring and redraw enhancements to support
20483         formatting changes gracefully, like setting TextAlign, ImageList, 
20484         ButtonSize, and Appearance.  Handles explicit button sizing quirks
20485         of the MS controls.  Things like flat toolbars ignoring button size
20486         but becoming constant sized at the largest button's size.  Normal
20487         toolbars with an image set cannot be shrunk smaller than the image,
20488         but text can be clipped/ignored.
20489         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
20490         is zero.  Seems like DrawString should be smart enough to not put
20491         anything on screen though. Also trim labels and ellipsize at the char
20492         boundary, not word.
20493         Fixes #78711 and #78483.
20494
20495 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
20496
20497         * FolderBrowserDialog.cs: Disable "New Folder" button and
20498           "New Folder" contextmenu menuitem if a folder like "My Computer"
20499           is selected.
20500
20501 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
20502
20503         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
20504         * FolderBrowserDialog.cs:
20505           - Use MWFConfig to store and read size and position settings
20506           - Added code to create a new folder (button or context menu).
20507             Use TreeView labeledit to change the name of the new folder.
20508
20509 2006-07-14  Jackson Harper  <jackson@ximian.com>
20510
20511         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
20512         when the tree is scrolled we end editing.
20513
20514 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
20515
20516         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
20517           Down arrows
20518
20519 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
20520
20521         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
20522         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
20523         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
20524         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
20525         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
20526         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
20527         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
20528         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
20529         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
20530         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
20531         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
20532         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
20533         ListViewItemSelectionChangedEventHandler.cs,
20534         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
20535         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
20536         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
20537         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
20538         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
20539         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
20540         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
20541         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
20542         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
20543         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
20544         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
20545         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
20546         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
20547         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
20548         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
20549         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
20550         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
20551         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
20552         WebBrowserNavigatingEventHandler.cs, 
20553         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
20554
20555 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
20556
20557         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
20558         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
20559         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
20560         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
20561         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
20562         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
20563         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
20564         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
20565         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
20566         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
20567         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
20568         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
20569         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
20570         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
20571         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
20572         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
20573         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
20574         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
20575         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
20576         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
20577         ListViewItemStates.cs, MaskFormat.cs: Added
20578
20579 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
20580
20581         * PropertyGridView.cs: Fix keyboard navigation of drop down.
20582         Patch from eno for bug 78558.
20583         
20584 2006-07-13  Jackson Harper  <jackson@ximian.com>
20585
20586         * TreeView.cs: When an edit is finished make sure that the
20587         selected node is visible.
20588         - When setting the top/bottom use the scrollbars is_visible, so
20589         everything will be set correctly even if the tree isn't visible
20590         yet.
20591
20592 2006-07-13  Jackson Harper  <jackson@ximian.com>
20593
20594         * ComboBox.cs: Revert the item->index part of my previous patch.
20595         * TreeView.cs: Use LostFocus instead of Leave for detecting when
20596         the edit box has lost focus (duh).
20597         - Just make the edit box not visible when we get return, that will
20598         take the focus, which will call EndEdit
20599         * TreeNode.cs When we start editing, notify the treeview.
20600
20601 2006-07-12  Jackson Harper  <jackson@ximian.com>
20602
20603         * ComboBox.cs: Clear out old items before setting the item list.
20604         This prevents databound controls from having their items added
20605         twice.
20606         - Switch the combobox to use indices whereever possible instead of
20607         using Item's.  This allows usto navigate through lists that have
20608         more then one item with the same string value (ie a, b, b, a).
20609         - Scroll the listboxes scrollbar when a non visible item is
20610         highlighted
20611         - Allow keypress to cycle through all the possible values. For
20612         example if you have b1, b2, b3 and hold down the B key all the
20613         values will be cycled through.
20614         
20615 2006-07-12  Jackson Harper  <jackson@ximian.com>
20616
20617         * TextBoxBase.cs:
20618         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
20619         this using the internal methods.
20620         * Control.cs: Add OnGotFocusInternal.  A new method that allows
20621         controls to "override" OnGotFocus and change focus behavior if
20622         needed.
20623         - Same thing for LostFocus
20624         * ComboBox.cs: Pass off focus to the text control properly.
20625
20626 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
20627
20628         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
20629         * FolderBrowserDialog.cs: Almost a complete rewrite.
20630           - Better support for Environment.Specialfolders
20631           - Added support for MWFVFS
20632           - Made setting SelectedPath work
20633
20634 2006-07-12  Jackson Harper  <jackson@ximian.com>
20635
20636         * Control.cs: Optimze getting all the controls.
20637
20638 2006-07-11  Jackson Harper  <jackson@ximian.com>
20639
20640         * ContainerControl.cs: Override SETFOCUS in the container control,
20641         so that it is not selected on mouse click.
20642
20643 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
20644
20645         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
20646           Hopefully we will have a better way once all of focus is complete.
20647
20648 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
20649
20650         * ThemeWin32Classic.cs: Commented out some debug code and fixed
20651           a compile error with csc.
20652
20653 2006-07-11  Jackson Harper  <jackson@ximian.com>
20654
20655         * Control.cs: When hiding a control only select the next control
20656         if the current control was focused.
20657         - Don't handle enter/leave when setting/killing focus, this is
20658         done by the container control.
20659         - Remove is_selected, it's not needed anymore.
20660         - Add utility methods for selecting a child control, and for
20661         firing the Enter/Leave events.
20662         * ContainerControl.cs: When a control is activated fire the
20663         enter/leave events.
20664         - Don't wrap when processing the tab key, so that focus can be
20665         moved outside of the container.
20666         - Use the correct active control
20667
20668 2006-07-11  Jackson Harper  <jackson@ximian.com>
20669
20670         * ComboBox.cs: Remove some debug code that was blinding me.
20671         * UpDownBase.cs: These controls actually aren't implicit, they are
20672         visible to the user.
20673
20674 2006-07-10  Chris Toshok  <toshok@ximian.com>
20675
20676         * DataGrid.cs: move back to the is_adding boolean field.  god i
20677         hate this is_editing/is_adding/is_changing stuff.
20678
20679 2006-07-10  Chris Toshok  <toshok@ximian.com>
20680
20681         * DataGridTableStyle.cs: just check if the property type is bool.
20682         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
20683         Don't use CanRenderType.
20684
20685         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
20686         if our text == NullText.  Remove CanRenderType.
20687
20688         * DataGridBoolColumn.cs: nuke CanRenderType.
20689
20690         * DataGrid.cs: reenable some code to end the current edit inside
20691         of set_CurrentCell.  This fixes the other 1.1.16 regression.
20692         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
20693         Also, remove the visible_row_count arg from CalcRowHeaders, since
20694         we don't need to worry about the actual height of the area.
20695
20696 2006-07-10  Chris Toshok  <toshok@ximian.com>
20697
20698         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
20699         mode, just return.
20700
20701         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
20702         the real sense of the IsInEditOrNavigateMode property (true =
20703         navigate, false = edit).  Also, update OnKeyPress to reflect this.
20704
20705         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
20706         column style exists, we still need to set its property descriptor
20707         to match up with our list manager.
20708
20709 2006-07-10  Chris Toshok  <toshok@ximian.com>
20710
20711         * ThemeWin32Classic.cs: implement the new row/header painting
20712         approach.  The parent row painting will likely go away and
20713         replaced with label controls, but the rest seems to work ok (and
20714         efficiently).
20715
20716         * Theme.cs: change the way we draw datagrid rows.  we don't draw
20717         the row headers as a block now.  Instead we draw them in the
20718         normal draw-row loop.  Add some calls for drawing parent rows and
20719         relation rows.
20720
20721         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
20722         a default table style.  Set the defaults from ThemeEngine.Current,
20723         not SystemColors.  Fix lots of misc issues with property setters.
20724
20725         * DataGrid.cs: move loads of style information out of this class
20726         as it's being duplicated with DataGridTableStyle.  keep track of a
20727         special DataGridTableStyle for the properties we used to mirror
20728         here.  Switch all the style properties to access this table style
20729         instead of instance fields of this class.  Also add a internal
20730         class to represent parent rows (more needs to be stored here, like
20731         the selection state from the parent table, as well as the
20732         expansion state.)  Also, for datasources with relations, do the
20733         right thing for collapse/expand, and add support for the
20734         navigation/parent row buttons.
20735
20736         Lastly, fix the crash in the 1.1.16 build.
20737
20738         * GridTableStylesCollection.cs: make the explicit interface
20739         implementations call the class's methods as opposed to duplicating
20740         them.
20741
20742         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
20743         0 so the text doesn't jump around when we move the cursor.
20744
20745 2006-07-10  Jackson Harper  <jackson@ximian.com>
20746
20747         * TextBoxBase.cs:
20748         * ListBox.cs: Match MS's ToString (this makes debugging focus
20749         stuff infinitely easier).
20750
20751 2006-07-10  Jackson Harper  <jackson@ximian.com>
20752
20753         * Control.cs (SelectNextControl): When checking the control's
20754         parent use this instead of ctrl.parent so that null can be passed
20755         to SelectNextControl. (I have unit tests for this).
20756         - Remove unused var.
20757
20758 2006-07-10  Chris Toshok  <toshok@ximian.com>
20759
20760         * CurrencyManager.cs: correct one regression, the removal of the
20761         finalType field.  Also, add a MonoTODO on CanAddRows, implement
20762         Refresh() correctly, and fix some event emission in
20763         ListChangedHandler.
20764
20765 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
20766
20767         * FileDialog.cs: Don't use brackets for new folders if they exist
20768           under *nix. Instead use -(number of existing folders +1).
20769
20770 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
20771
20772         * FileDialog.cs:
20773           - Fixed really nasty bug #78771
20774           - Don't block the whole GUI when reading directories with a lot of
20775             entries. Use an other thread instead and call BeginInvoke to
20776             update the ListView in MWFFileView
20777
20778 2006-07-07  Chris Toshok  <toshok@ximian.com>
20779
20780         * Control.cs (Dispose): release any Capture when disposing.
20781
20782 2006-07-07  Chris Toshok  <toshok@ximian.com>
20783
20784         * LinkLabel.cs (Select): if we chain up to the parent, set
20785         focused_index to -1 so we'll search for the first available link
20786         the next time the user tabs into us.  Also, if the direction is
20787         backward and focused_index == -1, start the search from the last
20788         element.
20789
20790 2006-07-07  Chris Toshok  <toshok@ximian.com>
20791
20792         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
20793         is beyond the end of the text, don't do anything.
20794         (CreateLinkPieces): set our ControlStyles.Selectable based on
20795         whether or not we have any links.
20796         (Link.Invalidate): use a loop instead of foreach.
20797         (Link.set_Start): null out owner.sorted_links so it'll be
20798         recreated by CreateLinkPieces.
20799
20800 2006-07-06  Chris Toshok  <toshok@ximian.com>
20801
20802         * LinkLabel.cs: revert the SetStyle change.
20803
20804 2006-07-06  Chris Toshok  <toshok@ximian.com>
20805
20806         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
20807         (OnEnableChanged): s/Refresh/Invalidate
20808         (OnGotFocus): if we have a focused index already, refocus it (so
20809         if we mouse out/in to the window it'll focus the right link).
20810         (OnKeyDown): move the tab handling out of here.
20811         (OnLostFocus): don't set focused_index to -1, so we can refocus it
20812         when we lose focus.
20813         (OnMouseDown): don't Capture here - Control handles it.  Also,
20814         focus the active link.
20815         (OnMouseUp): don't deal with Capture.
20816         (OnPaintBackgroundInternal): remove.
20817         (OnTextAlignChanged): CreateLinkPieces before calling the
20818         superclass's method.
20819         (OnTextChanged): call CreateLinkPieces before calling superclass's
20820         method.
20821         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
20822         move around.
20823         (Select): implement this, moving the selection between different
20824         links, and call parent.SelectNextControl if we don't have another
20825         link to focus in the given direction.
20826         (CreateLinkPieces): call Invalidate instead of Refresh.
20827         
20828 2006-07-06  Chris Toshok  <toshok@ximian.com>
20829
20830         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
20831         new LinkLabel internals.
20832
20833         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
20834         over pieces looking for active/focused/etc links.  also, deal with
20835         runs of text (and links) with embedded \n's in them, and use
20836         MeasureCharacterRanges instead of MeasureString to figure out the
20837         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
20838         two-step.
20839
20840 2006-07-04  Jackson Harper  <jackson@ximian.com>
20841
20842         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
20843         XKB or key auto repeat, do it manually.  Without key auto repeat,
20844         when a key is held down we get key press, key release, key press,
20845         key release, ... with auto repeat we get key press, key press, key
20846         press ..., and then a release when the key is actually released.
20847
20848 2006-07-03  Jackson Harper  <jackson@ximian.com>
20849
20850         * TabControl.cs:
20851         * ThemeWin32Classic.cs: Tabs do not obey normal background color
20852         rules, they are always control color regardless of the background
20853         color.
20854
20855 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
20856
20857         * FileDialog.cs: Added internal class MWFConfig.
20858           Removed Registry support and replaced it with support for the new
20859           MWFConfig class. See MWFConfig comments for more information.
20860
20861 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
20862
20863         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
20864           rectangle. Added some patches from eno from bug #78490 and fixed
20865           the arrow position for small up and down CPDrawScrollButtons.
20866
20867 2006-06-30  Jackson Harper  <jackson@ximian.com>
20868
20869         * InternalWindowManager.cs: Remove some debug code.
20870         * Form.cs: When an MdiParent is set to null, the window is
20871         "detatched" and becomes a normal window.
20872         * MdiClient.cs: Don't bring the new child form to the front until
20873         it is activated (setting it as active does this), this makes the
20874         previously active forms titlebar get redrawn as inactive.
20875
20876 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
20877
20878         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
20879           with later controls
20880
20881 2006-06-29  Mike Kestner  <mkestner@novell.com>
20882
20883         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
20884         arrow in keynav state.  Fixes #78682.
20885
20886 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
20887
20888         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
20889           order (fixes #78393)
20890
20891 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
20892
20893         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
20894           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
20895           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
20896           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
20897           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
20898           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
20899           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
20900           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
20901           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
20902           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
20903           enumerations (FlagsAttribute, SerializableAttribute, added/removed
20904           values)
20905
20906 2006-06-28  Mike Kestner  <mkestner@novell.com>
20907
20908         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
20909
20910 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
20911
20912         * PropertyGrid.cs,
20913           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
20914           item lines from other area (It also makes BackColor consistent and
20915           compatible with .NET). Fixed bug #78564.
20916
20917 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
20918
20919         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
20920         Patch from Eno for #78555.
20921
20922 2006-06-27  Chris Toshok  <toshok@ximian.com>
20923
20924         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
20925
20926         * DataGridColumnStyle.cs: same.
20927
20928         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
20929         
20930         * DataGridDrawingLogic.cs: nuke.
20931
20932 2006-06-27  Chris Toshok  <toshok@ximian.com>
20933
20934         * DataGridTableStyle.cs: clean up the constructors, and build the
20935         list of child relations for this table.  I have no idea if this is
20936         where we should be doing it (it probably isn't), but since we're
20937         already iterating over the properties..
20938
20939         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
20940         struct and array for keeping track of row information, similar to
20941         what's shown in a hack on
20942         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
20943
20944         * Theme.cs: be consistent about the naming of DataGrid methods,
20945         prefering ColumnWidths and RowHeights over columnsWidths and
20946         RowsHeights.
20947
20948         * ThemeWin32Classic.cs: same, and also add support for variable
20949         sized rows (and the +/- expansion icons for related rows).
20950
20951 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
20952
20953         * TextBoxBase.cs: Applied Eno's patch from #78660
20954
20955 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
20956
20957         * Form.cs (ScaleCore): We don't want to scale our form if it's
20958           state is minimized or maximized, but we still need to scale our
20959           child windows. Also, added try/finally block to ensure layout
20960           gets reset (Fixes #78697)
20961
20962 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
20963
20964         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
20965
20966 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
20967
20968         * Form.cs: Fixed c+p error and added check to resize form if minimum
20969           size is bigger than current size (Fixes #78709)
20970
20971 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
20972
20973         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
20974
20975 2006-06-26  Mike Kestner  <mkestner@novell.com>
20976
20977         * ComboBox.cs: only do Keypress handling in the combo when there  
20978         are items in the collection. Fixes #78710.
20979
20980 2006-06-26  Chris Toshok  <toshok@ximian.com>
20981
20982         * Binding.cs: make this work bi-directionally.  also, clear up
20983         other mixups between Push/Pull Data (e.g. we're supposed to pull
20984         data when validating).
20985
20986         * BindingManagerBase.cs: trim some fully qualified collection
20987         types.
20988
20989         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
20990
20991 2006-06-23  Chris Toshok  <toshok@ximian.com>
20992
20993         * PropertyManager.cs: It appears (according to the unit tests)
20994         that PropertyManager doesn't use
20995         PropertyDescriptor.AddValueChanged to track propery value changes
20996         in its datasource, but uses the same scheme as Binding, where it
20997         looks for a <Property>Changed event and binds to it.
20998
20999         Also, according to the docs, IsSuspended always returns false for
21000         a property manager with a non-null datasource.
21001
21002 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
21003
21004         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
21005           need to update the actual DialogResult. (Fixes #78613)
21006
21007 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
21008
21009         * Form.cs (ShowDialog): Release any captures before running the
21010           new message pump (fixes #78680)
21011
21012 2006-06-22  Mike Kestner  <mkestner@novell.com>
21013
21014         * ListView.cs: Layout column widths properly in details mode even 
21015         if HeaderStyle.None is set.  Fixes #78691.
21016
21017 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
21018
21019         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
21020
21021 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
21022
21023         * Control.cs (ContainsFocus): Using new driver method to get focused
21024           window, instead of trying to use internal tracking var, which can
21025           recursion issues (Fixes #78685)
21026         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
21027           XplatUIWin32.cs: Added GetFocus method to return focused window
21028
21029 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21030
21031         * ColorDialog.cs: when the mouse button is pressed inside the color
21032         matrix, don't let the cursor move out of it until the button is
21033         released, which is the behavior on windows. Changed 'colours' by
21034         'colors' to use the same word consistently.
21035
21036 2006-06-21  Chris Toshok  <toshok@ximian.com>
21037
21038         * DataGrid.cs: add in some basic navigation stuff (navigating to a
21039         child relation and back, using a stack).  Also, remove
21040         GetDataSource and the code that calls it - it's not needed.  Also,
21041         track CurrencyManager.ListName's removal.
21042
21043 2006-06-21  Chris Toshok  <toshok@ximian.com>
21044
21045         * CurrencyManager.cs: push some of the original type checking from
21046         BindingContext.CreateBindingManager to here, and remove some of
21047         the finalType stuff.  Need more tests to make sure I've got the
21048         ListName part right, and we might need more in SetDataSource.
21049
21050         * PropertyManager.cs: add a ctor that takes just the datasource,
21051         and no property name.  Make SetDataSource work with a null
21052         property_name, and make Current return the data_source if the
21053         property descriptor is null.  this makes 'string foo = "hi";
21054         BindingContext[foo].Current' return "hi" as it should.
21055
21056         * RelatedCurrencyManager.cs: make this code more generic - there's
21057         no reason the parent manager has to be CurrencyManager, and
21058         there's no reason to pass the DataRelation.  It suffices to use a
21059         BindingManagerBase and PropetyDescriptor.
21060
21061         * RelatedPropertyManager.cs: make a similar change here.
21062         
21063         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
21064         flower I knew it could be.
21065
21066 2006-06-20  Chris Toshok  <toshok@ximian.com>
21067
21068         * PropertyManager.cs: the PropertyChangedHandler is invoked when
21069         data in the source has changed and we need to update the control,
21070         so s/PullData/PushData.
21071
21072         * CurrencyManager.cs: Refresh is meant to update the control from
21073         data in the datasource.  So, s/PullData/PushData.
21074
21075         * BindingContext.cs: add more ugliness (we weren't handling the
21076         case where data_source = DataTable and data_member = column_name).
21077
21078         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
21079         from the perspective of the datasource.  PullData pulls from the
21080         control, PushData pushes to the control.
21081
21082 2006-06-20  Chris Toshok  <toshok@ximian.com>
21083
21084         * BindingContext.cs: rewrite the CreateBindingManager code to
21085         handle navigation paths more or less properly.  This could
21086         definitely stand some more work, in particular to push the
21087         recursion up to the toplevel.  But that relies on fixes in other
21088         places (System.Data comes to mind).
21089
21090         Also, move to a flat hashtable (and encode the twolevel nature of
21091         the dictionary into the hash key).  This lets us implement the
21092         IEnumerable.GetEnumerator method.
21093
21094         * RelatedCurrencyManager.cs: new class.  Update our view based on
21095         our relation and our parent CurrencyManager's position.
21096
21097         * CurrencyManager.cs: split out some logic from the ctor into
21098         SetView, so it can be called from the new RelatedCurrencyManager
21099         subclass.
21100
21101         * RelatedPropertyManager.cs: new class.  Update our datasource
21102         based on the position of our parent CurrencyManager.
21103
21104         * PropertyManager.cs: split out some logic from the ctor into
21105         SetDataSource, so it can be called from the new RelatedDataSource
21106         subclass.  Also, make the Current getter return the value
21107         of the PropertyDescriptor, not the data_source.
21108
21109         * Binding.cs: no need to duplicate the string splitting code here.
21110
21111 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
21112
21113         * Control.cs:
21114           - set_Enabled: OnEnabledChanged is not called if the inherited state 
21115             of the control is not altered, even though  we might be changing the
21116             internal state of the control (#78458)
21117           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
21118             OnEnabledChanged, to allow easy altering of any child window state
21119           - OnEnabledChanged: Added code to enable/disable driver window state
21120           - OnParentEnabledChanged: Instead of firing the event, call 
21121             OnEnabledChanged, which will fire the event and also a) set driver
21122             window state and pass the enabled state to any grandchildren (#78458)
21123
21124 2006-06-19  Jackson Harper  <jackson@ximian.com>
21125
21126         * InternalWindowManager.cs: We don't set the cursor explicitly
21127         thats done via the response to NCHITTESTs.
21128         - Don't need to adjust for titlebar heights anymore, the
21129         coordinates are coming in the correct coordinates now (see peters
21130         last patch).
21131
21132
21133 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
21134
21135         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
21136           being translated relative to whole window, instead of client window.
21137           That caused broken offsets on mouseclick (and caused gas for our
21138           InternalWindowManager)
21139
21140 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
21141
21142         * TextControl.cs:
21143           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
21144           - Undo(): Added replay of cursor move on DeleteChars action; added
21145             calling Undo() again if a recorded cursor move is invalid (to
21146             ensure that some action is performed on Undo)
21147         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
21148
21149 2006-06-16  Jackson Harper  <jackson@ximian.com>
21150
21151         * MdiClient.cs: Instead of just sizing maximized windows when
21152         there is a resize we also have to adjust the Y of minimized
21153         windows, so they stay pinned to the bottom of the mdi container.
21154         - Eliminate separate tracking of the active control, we can just
21155         get this from the controls collection.
21156         - Paint the decorations for the newly activated titlebar so we get
21157         a pretty blue bar.
21158         * InternalWindowManager.cs:
21159         * ThemeWin32Classic.cs: Minimized windows get all three buttons
21160         even if they are a tool window.
21161         
21162 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
21163
21164         * TextControl.cs (Undo): Handle non-existent cursor locations in the
21165           undo buffer, these can happen when text was deleted and the cursor
21166           was recorded first. Since we will also have a recorded cursor
21167           after the delete this is not an issue. (Fixes #78651)
21168
21169 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
21170
21171         * AccessibleObject.cs: Remove dependence on Control.is_selected;
21172           instead properly track control states internally (allows us to
21173           remove is_selected from Control)
21174
21175 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21176
21177         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
21178         whose width is not a multiple of 8.
21179
21180 2006-06-13  Jackson Harper  <jackson@ximian.com>
21181
21182         * MdiClient.cs:  Only maximize the next child if the current one
21183         is maximized.
21184
21185 2006-06-13  Chris Toshok  <toshok@ximian.com>
21186
21187         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
21188         modified.  Also, guard against grid or grid_drawing being null in
21189         Invalidate.
21190
21191         * DataGrid.cs: Reformat tons of getters/setters.  In the
21192         DataMember setter, just call SetNewDataSource instead of
21193         duplicating some of its functionality.  In SetNewDataSource, don't
21194         check ListManager for null, since the property getter creates the
21195         object if needed.
21196
21197         * DataGridTableStyle.cs: don't set TableStyle or call
21198         SetDataGridInternal on the column here, it's done in
21199         GridColumnStylesCollection.Add.
21200
21201         * GridColumnStylesCollection.cs: fix all the explicit interface
21202         implementations to just call our methods.  Nuke AddInternal() and
21203         move the body of it to Add().  Also, add a call to
21204         column.SetDataGridInternal to Add().
21205
21206         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
21207         base()+duplicate code.  Also, use the Format property instead of
21208         format to generate an Invalidate ala MS.  Lastly, create the
21209         textbox here, unconditionally.
21210         (set_Format): call Invalidate.
21211         (get_TextBox): no need to call EnsureTextBox.
21212         (Commit): remove the message box.
21213         (Edit) remove the call to EnsureTextBox.
21214         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
21215         (EnterNullValue): no need to check textbox for null.
21216         (HideEditBox): no need to check textbox for null.
21217         (SetDataGridInColumn): add the textbox to the grid's controls.
21218         (EnsureTextBox): nuke.
21219         
21220 2006-06-13  Jackson Harper  <jackson@ximian.com>
21221
21222         * MdiWindowManager.cs: Hook up to the maximized menus paint event
21223         and redraw the buttons when needed. Unhook when the window is
21224         unmaximized.
21225         * MainMenu.cs: Add an internal Paint event, the mdi window manager
21226         needs this so that it can redraw its buttons when the menu is
21227         repainted.
21228         * InternalWindowManager.cs:
21229         * Form.cs: The method order has changed for DrawMaximizedButtons,
21230         so that it can be a PaintEventHandler.
21231         
21232 2006-06-13  Jackson Harper  <jackson@ximian.com>
21233
21234         * MdiClient.cs: When we close a maximized mdi window, the next mdi
21235         window is activated and maximized, even if it wasn't before.
21236         - When  a new window is activated repaint the decorations of the
21237         old one, so that it no longer has the Active "look" (the blue
21238         titlebar).
21239         * InternalWindowManager.cs: Open up CreateButtons to base classes
21240         so they can recreate the buttons on state changes.
21241         - If a window is maximized give it all three buttons
21242         * MdiWindowManager.cs: Create the titlebar buttons when the state
21243         is changed, this is needed because a toolwindow will not have all
21244         three buttons until it is maximized.
21245
21246 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
21247
21248         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
21249           Fixed bug #78609.
21250
21251 2006-06-12  Jackson Harper  <jackson@ximian.com>
21252
21253         * KeysConverter.cs: Make sure we handle the Ctrl special case
21254         if its the only key.
21255         
21256 2006-06-12  Jackson Harper  <jackson@ximian.com>
21257
21258         * Theme.cs: Add a method to get the size of a managed window
21259         toolbar button.
21260         * InternalWindowManager.cs: Remove the ButtonSize property, this
21261         should be retrieved from the theme.
21262         * MdiWindowManager.cs: Get the button size from the theme
21263         * ThemeWin32Classic.cs: Make the method to get the managed window
21264         titlebar button size public.
21265         - Handle the different button sizes of maximized toolwindows
21266         (should match any maximized window).
21267         - Get the titlebar height from the theme, not the WM (which gets
21268         it from the theme).
21269
21270 2006-06-12  Jackson Harper  <jackson@ximian.com>
21271
21272         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
21273         event down to the mdi window manager.
21274         - Expose some extra stuff to base classes
21275         - Make sure to end the Capture on an NC Mouse up, so that we can
21276         get double clicks properly, and the sizing doens't stick.
21277         - When doing PointToClient contain it in the workable desktop
21278         area, this prevents windows from changing size when the cursor is
21279         pulled outside of the working area while sizing.
21280         * MdiWindowManager.cs: When we get a double click maximize the
21281         window.
21282         - Reset the cursor after handling mode changes.
21283
21284 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
21285
21286         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
21287           current desktop, instead of just assuming a 0, 0 origin. This
21288           is needed for our internal window manager, to know the top
21289           margin of the desktop
21290
21291 2006-06-12  Chris Toshok  <toshok@ximian.com>
21292
21293         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
21294         we need this to get rid of the selected background in the bool
21295         column.
21296         (CancelEditing): move the ConcedeFocus call to above the Abort
21297         call.  Also, set is_changing to false and invalidate the row
21298         header if we were changing before.
21299         (ProcessKeyPreviewInternal): remove, since noone outside this
21300         class calls it anymore.  Roll the code into ProcessKeyPreview.
21301         (EndEdit): remove the internal version.
21302         (InvalidateCurrentRowHeader): make private.
21303
21304         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
21305         Keys.Escape handling (and with it the last call to
21306         DataGrid.EndEdit from outside the class.)
21307
21308
21309 2006-06-12  Chris Toshok  <toshok@ximian.com>
21310
21311         * DataGridTextBox.cs (.ctor): isedit defaults to false.
21312         (OnKeyPress): set isedit to true.
21313         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
21314         already handled by the grid.
21315
21316         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
21317         right.  ugh.
21318         (set_DataSource): SetDataSource always returns true, so stop
21319         putting it in an if statement.
21320         (EndEdit): get rid of some {}'s
21321         (ProcessGridKey): return true in case Keys.Escape.
21322         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
21323         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
21324         PositionChanged, stopped connecting to CurrentChanged.
21325         (GetDataSource): simplify this a bunch.
21326         (SetDataSource): change return type from bool to void.
21327         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
21328         to this, and make sure we don't set ListManager.Position inside
21329         set_CurrentCell.
21330         (OnListManagerItemChanged): if we're passed an actual index,
21331         redraw that row.
21332
21333         * CurrencyManager.cs (set_Position): don't call PullData here.
21334
21335 2006-06-09  Jackson Harper  <jackson@ximian.com>
21336
21337         * TreeNode.cs:  Recalculate the visible order before doing the
21338         Expand/Collapse Below calls, because those calls generate an
21339         expose.
21340         - Reduce calls to the TreeView property, which is mildly expensive
21341         by using a local var.
21342         * Form.cs: Layout the MDI child windows when creating the parent
21343         form.
21344         - Don't use the internal constructor anymore
21345         * MdiClient.cs: use the parent form width/height (if available)
21346         when laying out the child windows, we do this because the
21347         mdiclient isn't docked yet when the initial layout is done.
21348         - Don't need an internal constructor anymore.
21349
21350 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21351
21352         * FileDialog.cs: handle access errors when trying to create a folder
21353         or changing to a directory. No need to initialize out parameters.
21354
21355 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
21356
21357         * FileDialog.cs: Append a number when creating a new folder if the
21358           folder already exists (use parenthesis instead of square brackets)
21359
21360 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
21361
21362         * FileDialog.cs:
21363           - Disabled registry support for windows and added better registry
21364             error checking for other systems (need to investigate why it
21365             works perfectly on my system)
21366           - If a folder already exist show an error MessageBox instead of
21367             trying to create an indexed name.
21368           - Fixed a non intentional typo.
21369
21370 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21371
21372         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
21373
21374 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
21375
21376         * FileDialog.cs: When creating a new folder don't crash if the
21377           folder already exists.
21378
21379 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
21380
21381         * FileDialog.cs: Allmost a complete rewrite.
21382           - added a "virtual" file system that handles the differences
21383             between unix and windows file systems (especially the directory
21384             structure). Moved most of the directory and file handling code
21385             into the vfs.
21386             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
21387             UnixFileSystem and FSEntry.
21388           - Recently used folder/directory, size, location and used file names
21389             (file name ComboBox) are now stored in the registry and get read
21390             before the dialog shows up (fixes part 6 of bug #78446).
21391           - Creation of new folders/directories is now possible (context menu
21392             or ToolBar). Added TextEntryDialog for this that fills in the gap
21393             until ListView.LabelEdit works.
21394           - Fixed cursor handling (bug #78527) and focus handling for
21395             PopupButtonPanel
21396           - Various "Search in" ComboBox enhancements. The content of the
21397             dropdown listbox now almost matches ms.
21398           - Changed the behaviour when the user switches to SpecialFolder
21399             Recent to show the ListView in View.Details.
21400           - Beside using the ToolBar to change the View property of the
21401             file ListView it is now possible to use the context menu too.
21402
21403 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
21404
21405         * ComboBox.cs: Don't create a new ObjectCollection when an item
21406           gets inserted. Just insert the item in the existing object_items
21407           ArrayList.
21408
21409 2006-06-08  Jackson Harper  <jackson@ximian.com>
21410
21411         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
21412         that the treeview and root node checks are done also, this fixes a
21413         regression i caused in the unit tests.
21414
21415 2006-06-07  Wade Berrier <wberrier@novell.com> 
21416
21417         * RichTextBox.cs: More ISO8859-1 -> unicode
21418
21419 2006-06-07  Mike Kestner  <mkestner@novell.com>
21420
21421         * ComboBox.cs : use items to hold highlight/selection so that
21422         collection insertions don't require synchronization.
21423
21424 2006-06-07  Jackson Harper  <jackson@ximian.com>
21425
21426         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
21427         routine.  We now always keep the sized edge at the cursor instead
21428         of computing movement and adjusting rects.  There is one buglet
21429         with this method though when the cursor is moved over area that
21430         the window can not expand too (such as the toolbars on the desktop).
21431
21432 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21433
21434         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
21435         here. Fixes crash on startup in AlbumSurfer.
21436
21437 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
21438
21439         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
21440           values
21441
21442 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21443
21444         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
21445         statement to avoid calling XNextEvent which will block if another thread
21446         took the event that we were expecting. Fixes bug #78605.
21447
21448 2006-06-07  Mike Kestner  <mkestner@novell.com>
21449
21450         * ListView.cs : isolated checkbox clicking from the selection logic.
21451         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
21452
21453 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21454
21455         * Form.cs: Check that the value passed to Form.DialogResult
21456         is a valid enum value.
21457
21458 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21459
21460         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
21461         Computer'. Clicking it in the network view goes to 'My Computer'.
21462         Added CIFS filesystem type. Display the mount point of filesystems.
21463         Avoid duplicate mount points (happens for me with CIFS);
21464
21465 2006-06-06  Jackson Harper  <jackson@ximian.com>
21466
21467         * InternalWindowManager.cs: Draw the maximized windows buttons
21468         when resizing.
21469
21470 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21471
21472         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
21473         all other dialogs. Fixes bug #78585.
21474
21475 2006-06-06  Mike Kestner  <mkestner@novell.com>
21476
21477         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
21478         Only invalidate checkbox on checkstate changes to avoid flicker.
21479         * ListBox.cs : avoid unselect/select when clicking selected item.
21480         avoid reselection flicker for already multiselected items.
21481         Fixes #78382.
21482
21483 2006-06-06  Jackson Harper  <jackson@ximian.com>
21484
21485         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
21486         the parent form so that the menu is removed if needed.
21487
21488 2006-06-06  Mike Kestner  <mkestner@novell.com>
21489
21490         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
21491         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
21492
21493 2006-06-06  Mike Kestner  <mkestner@novell.com>
21494
21495         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
21496
21497
21498 2006-06-06  Jackson Harper  <jackson@ximian.com>
21499
21500         * Control.cs: Use the property (instead of the field) to get the
21501         default cursor so it is instantiated correctly.
21502         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
21503         resizes so we need to manually repaint the window decorations here.
21504         - Set the titlebar button locations as soon as they are created,
21505         otherwise they are not set correctly on win32.
21506         
21507 2006-06-06  Chris Toshok  <toshok@ximian.com>
21508
21509         * CurrencyManager.cs (set_Position): call PullData before
21510         OnCurrentChanged.
21511         (AddNew): after calling IBindingList.AddNew, update our
21512         listposition, and call OnCurrentChanged/OnPositionChanged (without
21513         calling PullData).
21514         (OnCurrentChanged): remove the call to PullData from here.
21515         (OnItemChanged): remove the call to PushData from here.
21516         (OnPositionChanged): change the test from == null to != null to
21517         match the other methods.
21518         (ListChangedHandler): the grossest part of the patch.  Implement
21519         this such that it passes the unit tests in CurrencyManagerTest and
21520         the output more or less matches that of MS's implementation.
21521  
21522 2006-06-06  Mike Kestner  <mkestner@novell.com>
21523
21524         * ListView.cs : only update check state on single click.
21525         * ThemeWin32Classic.cs : fix focus drawing for details view without
21526         fullrowselect.  Fixes #78454.
21527         * XplatUIX11.cs : fix for double click emission.
21528
21529 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
21530
21531         * PropertyGridView.cs : Applied Atsushi's patch to fix
21532         font dialog bug  (#78197).
21533
21534 2006-06-05  Jackson Harper  <jackson@ximian.com>
21535
21536         * TreeNode.cs: Compute the next node for expanding/collapsing
21537         correctly. We now factor in nodes without a NextNode
21538         correctly. (Fixes somes cases in nunit-gui).
21539         * InternalWindowManager.cs: Set the bounds when updating the
21540         virtual position of a tool window.
21541         
21542 2006-06-05  Chris Toshok  <toshok@ximian.com>
21543
21544         * DataGrid.cs: rename cached_currencymgr to list_manager.
21545         (set_CurrentCell): move SetCurrentCell code here, and clean it up
21546         some.
21547         (CurrentRow, CurrentColumn): single accessors so we can make the
21548         cursor movement code a lot easier to understand.
21549         (CurrentRowIndex): implement this in terms of CurrentRow.
21550         (BeginEdit): clean this up a bit.
21551         (CancelEditing): sort out the is_editing/is_changing/is_adding
21552         stuff a little.
21553         (EndEdit): minor changes.
21554         (OnKeyDown): add a comment about a (most likely) unnecessary
21555         check.
21556         (OnMouseDown): cancel editing when we click on a row header.  And
21557         use the CurrentRow setter, not CurrentCell.
21558         (ProcessDialogKey): directly call ProcessGridKey.
21559         (UpdateSelectionAfterCursorMove): factor out this common block of
21560         code (it's used everywhere that we move the cursor by updating row
21561         or column).
21562         (ProcessGridKey): pretty substantial overhaul.  Use the
21563         CurrentRow/CurrentColumn properties to make the code a lot more
21564         readable.  Only use the CurrentCell property when we have to
21565         modify both row and column at once.  Tab behavior is still broken,
21566         and Delete is untested.
21567         (Select): if we have no selected rows, set selection_start to
21568         @row.
21569         (EditCurrentCell): rename EditCell this.  It was only ever invoked
21570         with CurrentCell as the arg, so drop the arg and rename it.
21571
21572         * DataGridColumnStyle.cs: clean up the constructors a little, and
21573         drop CommonConstructor().
21574
21575         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
21576         actually get notified when the user hits it.
21577         (ProcessKeyMessage): *substantially* simplify this method.
21578         There's no reason (that I can see) for the textbox to be making
21579         calls into the datagrid at all.  Remove all of them but the ones
21580         for Enter handling.  those will take some more work.
21581
21582         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
21583         calling HideEditBox.
21584         (HideEditBox): if we have an active textbox, render it invisible
21585         without causing a re-layout of the datagrid.
21586
21587 2006-06-05  Mike Kestner  <mkestner@novell.com>
21588
21589         * ListView.cs : fix NRE crasher when focuseditem is cleared by
21590         collection changes by resetting it to Items[0].  Fixes #78587.
21591
21592 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21593
21594         * MessageBox.cs: if the height of the text is larger than the icon_size,
21595         use that. Fixes bug #78575.
21596
21597 2006-06-05  Jackson Harper  <jackson@ximian.com>
21598
21599         * TreeView.cs: Fix line drawing when scrolling.  To do this each
21600         node is basically responsible for drawing its entire horizontal
21601         area.  When drawing a node it draws its parent node lines if
21602         needed.
21603         - Adjust the clip area to the viewport rectangle
21604         - Fix Left/Right key handling to match MS. (It expand/collapses
21605         and moves to parents/first child but does not move selection to
21606         sibling nodes).
21607         - Fix SetTop to work with new bound calculation code
21608         - When scrollbars are no longer needed we need to reset scrolling
21609         vars and recalculate the visible order so the redraw is correct
21610         * TreeNode.cs: We can't expand/collapse nodes with no children.
21611
21612 2006-06-03  John Luke  <john.luke@gmail.com> 
21613
21614         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
21615         so the colors work without dev packages
21616         
21617 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
21618
21619         * Control.cs 
21620           - Select: Implemented to just use activate. Seems to match MS 
21621             behaviour closest. Documented to only do actual control walking 
21622             based on it's parameters if in a container control so I moved 
21623             the code there.
21624           - Removed selection check logic from our internal Select() method
21625         * ContainerControl.cs:
21626           - Select: Moved selection logic from Control here, since MS documents
21627             that containers obey the bool arguments. No longer calling base
21628
21629 2006-06-02  Jackson Harper  <jackson@ximian.com>
21630
21631         * TreeView.cs: If the selected node isn't changed when we get
21632         focus update the previously selected node so that we see the
21633         selection box.
21634
21635 2006-06-02  Mike Kestner  <mkestner@novell.com>
21636
21637         * ComboBox.cs: restructure grab and general mouse event handling.
21638         Make the composite control raise mouse events like it was a single
21639         control for leaves/enters/motion/up/down events.  fix dropdown list
21640         coordinate mangling and refactor it into the scrollbar subclass to
21641         reduce code duplication.  Fixes #78282 #78361 and #78457.
21642
21643 2006-06-02  Mike Kestner  <mkestner@novell.com>
21644
21645         * ScrollBar.cs: remove Capture setting/clearing, as it happens
21646         automatically in the Control.WndProc.
21647
21648 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21649
21650         * FileDialog.cs: fix crash when running SharpChess, which sets the
21651         FilterIndex to 2 with only one Filter.
21652
21653 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21654
21655         * ToolBar.cs: add SizeSpecified property.
21656         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
21657         try to figure out our real size, otherwise fallback to what the
21658         container says.
21659
21660 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
21661
21662         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
21663         * Control.cs (WndProc): MS always calls the DefWndProc to pass
21664           up the event
21665
21666 2006-06-01  Mike Kestner  <mkestner@novell.com>
21667
21668         * ListView.cs: revamp the focus management in ListView.  It still
21669         causes churn of LostFocus/GotFocus emissions on clicks, but it's
21670         better than not handling focus at all.  Will revisit when pdb feels
21671         the general focus handling is solid.  Fixes #78526.
21672
21673 2006-06-01  Jackson Harper  <jackson@ximian.com>
21674
21675         * TreeView.cs: Set the default border style in the constructor.
21676         - Move painting to use OnPaintInternal instead of capturing
21677         WM_PAINT, this is the correct way of doing things
21678         - UpdateBelow shouldn't invalidate the scrollbar area
21679         - Cap the top on update below in case the node was above the top
21680         of the viewport rectangle.
21681         - ExpandBelow and Collapse below need to obey Begin/End Update.
21682         * TreeNode.cs: Make is_expanded internal so the treenode
21683         collection can change it without firing the whole event chain.
21684         * TreeNodeCollection.cs: When clearing all the child nodes make
21685         sure to recalc the visible order.
21686         - Improve algo for remove the top node
21687
21688 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
21689
21690         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
21691           SendMessage directly calling window procedures, which in turn might
21692           call SetFocus()
21693
21694 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
21695
21696         * Control.cs: Don't handle WM_SETFOCUS if the same window already
21697           has focus (works around X11 sending a FocusIn after our SetFocus)
21698         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
21699
21700 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
21701
21702         * Mime.cs: Fix for the NET_2_0 build.
21703           NameValueCollection needs StringComparer now.
21704
21705 2006-05-31  Chris Toshok  <toshok@ximian.com>
21706
21707         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
21708         return (via an out parameter) the starting X of the column.
21709         (UpdateVisibleColumn): track change to FromPixelToColumn.
21710         (HitTest): add a ColumnResize case here.
21711         (DrawResizeLine): new function, probably poorly named.
21712
21713         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
21714         only need to keep one reference.
21715         (set_ListManager): same.
21716         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
21717         Also, add support for HitTestType.ColumnResize.
21718         (OnMouseMove): add column resize behavior here, and change the
21719         cursor to the correct one as we move around the datagrid.
21720         (OnMouseUp): terminate the column resize if we're resizing.
21721         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
21722         for the current cell.
21723         (ConnectListManagerEvents): use cached_currencymgr.
21724         (DisconnectListManagerEvents): fill this in, using
21725         cached_currencymgr.
21726         (SetCurrentCell): remove cached_currencymgr_events handling.
21727         (SetDataMember): only call DisconnectListManagerEvents if
21728         cached_currencymgr is != null.
21729         (SetDataSource): same.
21730         (OnListManagerCurrentChanged): cached_currencymgr_events ->
21731         cached_currencymgr.
21732
21733 2006-05-31  Jackson Harper  <jackson@ximian.com>
21734
21735         * BindingManagerBase.cs: Remove somedebug code that creeped into
21736         SVN.
21737         * TreeNode.cs: We get the indent level dynamically right now, so
21738         don't track it as a member.
21739         * TreeNodeCollection.cs: Make sure all nodes added to the list
21740         have parents, treeviews/topnodes setup properly.
21741         - Don't attempt to track indent level.
21742
21743 2006-05-30  Jackson Harper  <jackson@ximian.com>
21744
21745         * BindingContext.cs: Create the currency manager tables here.
21746         This allows us to more easily create null tables (when bad data
21747         members are used), and more easily create related currency
21748         managers.
21749         * CurrencyManager.cs: All the table creation stuff is done by the
21750         binding context now.
21751         - Current should throw an exception if listposition is -1.
21752         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
21753         been bound yet.
21754
21755 2006-05-30  Mike Kestner  <mkestner@novell.com>
21756
21757         * ListView.cs: allow reexpansion of zero-width column headers.
21758         Fixes #78528.
21759
21760 2006-05-28  Chris Toshok  <toshok@ximian.com>
21761
21762         * CurrencyManager.cs (get_Current): after the late binding
21763         listposition = -1 fix, we need to guard against it here and return
21764         null, otherwise we raise an exception (which is swallowed
21765         elsewhere, and breaks datagrid databinding.)
21766
21767 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
21768
21769         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
21770           than WM_SYSKEY, don't throw if get something unexpected (#78507)
21771
21772 2006-05-26  Jackson Harper  <jackson@ximian.com>
21773
21774         * ControlPaint.cs:
21775         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
21776         values, it's faster and it's all we care about (we don't care if
21777         the names aren't equal).
21778         * KeyboardLayouts.cs: Eliminate some dead code.
21779         - Lazy init things
21780         * X11Keyboard.cs: Lazy init keyboard detection.
21781         - Cleanup access modifiers a little.
21782
21783 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
21784
21785         * XplatUIX11.cs: Once again, attempting to get layout just right.
21786
21787 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
21788
21789         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
21790           the sizes of each link section, that will result in sizes that
21791           match DrawString's layout (Fixes #78391)
21792
21793 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
21794
21795         * FileDialog.cs: If AddExtension property is true autocomplete the
21796           extensions in SaveFileDialog correctly. Fixes bug #78453.
21797           Set MyNetwork and MyComputer to "C:\" for windows. This should
21798           fix part 8 of bug #78446 for now.
21799
21800 2006-05-26  Chris Toshok  <toshok@ximian.com>
21801
21802         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
21803         invalidate the current row header if we need to, but presumably
21804         we'll invalidate the row corrsponding to the bounds or
21805         editingControl.
21806         (GridHScrolled): switch back to this method, as it's part of the
21807         public api.  *sigh*.
21808         (GridVScrolled): same.
21809         (OnMouseWheel): hack up something that more or less works.  Call
21810         GridHScrolled/GridVScrolled directly, instead of duplicating much
21811         of their code here.
21812         (EnsureCellVisibility): reinstate a bunch of this code, since we
21813         can't just set the scrollbar Value and expect to do all the work
21814         in the ValueChanged handler.  Also, Call Update() after scrolling
21815         in one direction so the other XplatX11.ScrollWindow call has the
21816         proper stuff in the proper places.
21817         (EditCell): set is_editing to true before calling .Edit.
21818
21819         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
21820         don't bother comparing first.
21821         (OnKeyPress): call grid.ColumnStartedEditing before calling
21822         base.OnKeyPress.  this will set is_changing and invalidate the row
21823         header if necessary.
21824         (ProcessKeyMessage): for WM_CHAR messages, call
21825         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
21826         and WM_KEYDOWN.
21827         
21828         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
21829         it's done in the DataGrid.
21830         (NextState): call grid.ColumnStartedEditing, which takes care of
21831         invalidating the row header (and setting is_changing).
21832
21833         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
21834         here.  it's done in the DataGrid.
21835
21836 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21837
21838         * Control.cs: allow changing the cursor when the mouse position is
21839         out of bounds but Capture is set.
21840         * LinkLabel.cs: handle the case when the mouse button is pressed on the
21841         linklabel but released somewhere else.
21842
21843 2006-05-25  Jackson Harper  <jackson@ximian.com>
21844
21845         * TreeView.cs: When we get focus if there is no selected node make
21846         it the top node
21847         - Remove some uneeded setup code from Draw.
21848         * TreeNodeCollection.cs: If the tree doesn't have a top node when
21849         a new node is inserted make the new node the top.
21850         * XplatUIX11.cs:
21851         * Timer.cs: Use Utc time so that no local time zone stuff needs to
21852         be used (should be faster).
21853         
21854 2006-05-25  Chris Toshok  <toshok@ximian.com>
21855
21856         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
21857         problem with the last commit.
21858
21859 2006-05-25  Chris Toshok  <toshok@ximian.com>
21860
21861         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
21862         need the invalidate call here, while scrolling right-to-left via
21863         the left arrow key (i.e. moving the editing cell while scrolling).
21864
21865         * DataGrid.cs (.ctor): remove the initialization of
21866         ctrl_pressed/shift_pressed.  We no longer track them using key
21867         up/down handlers, but by using Control.ModifierKeys.  Also, switch
21868         to using ValueChanged handlers on the scrollbars instead of
21869         Scrolled event handlers.  This simplifies a bunch of the scrolling
21870         code.
21871         (GridHValueChanged): rename from GridHScrolled, and change it to
21872         work with the new event args.
21873         (GridVValueChanged): same.
21874         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
21875         (OnMouseWheel): actually scroll the datagrid.  Don't change the
21876         selected cell.
21877         (ProcessGridKey): correct all the keyboard navigation stuff I
21878         could find.  Ctrl up/down/left/right/home/end work now.
21879         (EnsureCellVisibility): correct method name spelling.  Also,
21880         simplify this a touch by not explicitly calling the
21881         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
21882         scrollbar value.
21883         (OnKeyUpDG): no need for this method now.
21884         
21885 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21886
21887         * LinkLabel.cs: display the OverrideCursor when hovering the label.
21888         Fixes bug #78392.
21889
21890 2006-05-25  Chris Toshok  <toshok@ximian.com>
21891
21892         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
21893         r61019.
21894
21895 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
21896
21897         * Application.cs: Moved setting of is_modal and closing to before
21898           we create the control, to allow the event handlers called as a
21899           result of creation affect closing. Also removed Gonzalo's previous
21900           change to setting DialogResult, the behaviour has been moved to 
21901           Form.ShowDialog()
21902         * Form.cs: 
21903           - ShowDialog(): Removed explicit creation of the form, let RunLoop
21904             handle it instead
21905           - ShowDialog(): If no dialog result is set, we need to return Cancel
21906           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
21907             the close is cancelled
21908
21909 2006-05-25  Jackson Harper  <jackson@ximian.com>
21910
21911         * StatusBar.cs: We only need to update the sizes of the other
21912         panels when we have auto size contents.  Also we are only updating
21913         the contents of the panel, not the borders, so compensate for the
21914         border width (TODO: get this width from the theme somehow).
21915         * TreeView.cs: Scrollable is true by default
21916         - Use invalidate instead of refresh where needed
21917         - Factor the scrollable value into scrollbar updating
21918         - Update the scrollbars if the Scrollable property is altered
21919         - Update the selected node if its ImageIndex is changed
21920         - Handle null nodes in UpdateNode (mainly so we don't have to
21921         check if selected is null when updating it
21922         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
21923         are factored into the visible count
21924         - Use VisibleCount for clarity in the code
21925         - When the font is changed we need to recurse through all the
21926         nodes and invalidate their sizes
21927         
21928 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21929
21930         * Application.cs: set the DialogResult to fixed when the main form is
21931         hidden or destroyed while being modal.
21932
21933 2006-05-25  Miguel de Icaza  <miguel@novell.com>
21934
21935         * Theme.cs: Use Tangoified messagebox icons. 
21936
21937         (GetSizedResourceImage): Also cope with width = 0 and do not
21938         trigger a warning in that case (0 means "give me your icon from
21939         the resouce, no special size needed).
21940
21941 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
21942
21943         * Application.cs: Leave runloop if the the main modal form is 
21944           hidden (fixes #78484)
21945
21946 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
21947
21948         * BindingContext.cs : reject null datasource in Contains() and
21949           Item[].
21950         * CurrencyManager.cs : check data_member validity when data_source
21951           is dataset. When it is late binding, the initial position is -1.
21952
21953 2006-05-24  Jackson Harper  <jackson@ximian.com>
21954
21955         * TreeNodeCollection.cs: Dont't recalculate the visible order on
21956         inserted nodes that aren't visible.  This changes the
21957         max_visible_order which confuses scrollbar settings.
21958         - Use the enumerator to get the prev node instead of duplicating
21959         code.
21960         * TreeView.cs: Use new method for setting scrollbar values
21961         - Don't set the bounds every time the scrollbar is updated
21962         - When updating below the root node use an invalidate instead of a
21963         refresh to prevent the child controls (scrollbars) from being
21964         refreshed. (UpdateBelow still needs to be reworked anyways).
21965         - Reenable SetBottom now that visible orders are set correctly,
21966         added some debug code incase we ever get bad values there again.
21967         - Set the scrollbar max to 2 less then the max value, this
21968         compensates for the max value being one above the node count, and
21969         for scrollbars adding one extra "notch".
21970         - When drawing image nodes if there is an imagelist we draw the
21971         first image in the list if the supplied image index is out of the
21972         image list's bounds.
21973         
21974 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
21975
21976         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
21977           we receive a size change from the WM (Fixes #78503)
21978
21979 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
21980
21981         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
21982           rectangle (Fixes #78501)
21983
21984 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
21985
21986         * ButtonBase.cs: 
21987           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
21988             as a bitfield.
21989           - Fixed MouseMove to no longer switch pressed state unless the left
21990             mouse button is pressed. Atsushi provided the original patch (#78485)
21991           
21992 2006-05-24  Jackson Harper  <jackson@ximian.com>
21993
21994         * ScrollBar.cs: New internal methods that allow us to change a
21995         couple values on the scrollbar (the most common case is maximum
21996         and large change) without getting multiple invalidates.
21997
21998 2006-05-24  Chris Toshok  <toshok@ximian.com>
21999
22000         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
22001         (Edit): save off the original state in oldState, and set
22002         grid.is_editing to true.
22003         (OnKeyDown): abort editing if escape is pressed.  also, call
22004         NextState if space is pressed.
22005         (OnMouseDown): call NextState.
22006         (NextState): factor out shared code from OnKeyDown and OnMouseDown
22007         here.  Also, only invalidate the row header once (on the initial
22008         is_changing switch) to save on redraws.
22009
22010 2006-05-24  Chris Toshok  <toshok@ximian.com>
22011
22012         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
22013         if the value in the cell is different than it was before.  This
22014         keeps us from triggering a layout when we move around a datarid
22015         with a highlighted cell.
22016         (Edit): suspend layout when creating/positining the text box, and
22017         resume passing false so we don't ever actually re-layout.
22018         (ReleaseHostedControl): same.
22019         (EnsureTextBox): reformat slightly, and set WordWrap to false.
22020
22021         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
22022         control-key sequences should go to the datagrid - remove that
22023         lock.  Also, modify the conditions under which we move between
22024         cells when moving the cursor within a cell, and remove the "this"
22025         and "base" from field accesses.  We weren't even consistent, given
22026         they all were in the base class.
22027
22028 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
22029
22030         * Binding.cs : (.ctor)
22031           An obvious NRE fix for BindingTest.CtorNullTest().
22032
22033 2006-05-23  Chris Toshok  <toshok@ximian.com>
22034
22035         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
22036         them between lines.  This fixes some quirks editing cells in the
22037         datagrid.
22038
22039 2006-05-23  Jackson Harper  <jackson@ximian.com>
22040
22041         * TreeView.cs: Use begin/end update when doing expand/collapse all
22042         so that we don't get flicker on the scrollbar.
22043
22044 2006-05-23  Jackson Harper  <jackson@ximian.com>
22045
22046         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
22047         treenode calculations to be independant of the painting code. To
22048         do this nodes track a visible order which is calculated by the
22049         treeview.
22050         - Call new methods for expanding/collapsing nodes.  These methods
22051         use scrollwindow so we don't have to update everything below the
22052         node.
22053         * TreeView.cs: Refactored drawing and scrolling code.  We don't
22054         need to update nodes when drawing anymore or calculate scrollbar
22055         stuff.
22056         - Added new methods for expanding/collapsing nodes. These methods
22057         use ScrollWindow so as to not have to redraw all the nodes below.
22058         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
22059         we add/remove nodes or sort.
22060         - Handle removing the selected and the top node properly.
22061
22062 2006-05-23  Chris Toshok  <toshok@ximian.com>
22063
22064         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
22065         maybe this should actually happen in the datagrid code?
22066         (EndEdit): no need to invalidate anything, given that
22067         ReleaseHostedControl causes the datagrid to relayout, which
22068         invalidates everything anyway.
22069
22070         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
22071         in SetCurrentCell).
22072         (set_SelectionBackColor): call InvalidateSelection instead of
22073         Refresh.
22074         (set_SelectionForeColor): same.
22075         (BeginEdit): Flesh this out a bit.
22076         (CancelEditing): only do any of this if we're editing/adding.
22077         (EndEdit): same.
22078         (OnMouseDown): there's no need to cancel editing here, it's done
22079         in SetCurrentCell.
22080         (SetCurrentCell): only invalidate the current row header if it's a
22081         different row than the new one.
22082         (ShiftSelection): fix this to work like MS does.
22083         (ResetSelection): factor out the invalidation of selected_rows to
22084         InvalidateSelection.
22085         (SetDataSource): cancel any editing that's going on.
22086
22087         * DataGridColumnStyle.cs
22088         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
22089         call the non-interface version.
22090
22091         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
22092         header rectangle with the clip rectangle so we don't redraw the
22093         entire header for just a small area.  Gets rid of the last flicker
22094         when horizontally scrolling.
22095         (DataGridPaintRow): same.
22096
22097 2006-05-23  Mike Kestner  <mkestner@novell.com>
22098
22099         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
22100         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
22101         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
22102         Critical bug report.
22103
22104 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
22105
22106         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
22107           and this fixes #78493
22108
22109 2006-05-23  Miguel de Icaza  <miguel@novell.com>
22110
22111         * Theme.cs (GetSizedResourceImage): Scale images if the proper
22112         size is not found.  
22113         
22114         * FileDialog.cs: Do not change the background for the side bar as
22115         it wont work nicely with the theme, and also reduces the artifacts
22116         in rendering the icons (which I want to fix too).
22117
22118         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
22119         resources, not resgen resources. 
22120
22121         (PlatformDefaultHandler): Pull images using the new API.
22122
22123 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
22124
22125         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
22126           a reference to the hwnd and will not remove it unless there are
22127           no pending exposures (fixes #78341)
22128         * XplatUI.cs: Improved debug
22129
22130 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
22131
22132         * MenuAPI.cs : don't handle OnClick event when it was not the left
22133           button. Fixed bug #78487.
22134
22135 2006-05-23  Mike Kestner  <mkestner@novell.com>
22136
22137         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
22138         prefer submenus to the top menu for item lookup, to avoid popping down
22139         top-row items.
22140
22141 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
22142
22143         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
22144           Graphics.FillRectangle as the visual results are really bad (even
22145           on win). We now draw perfect arrows (and perfect shadows when the
22146           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
22147           Pen.DashPattern to draw the dots of each line.
22148
22149 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
22150
22151         * FileDialog.cs: Update the filename combobox when navigating through
22152           the ListView with the cursor keys. Fixes part 7 of bug #78446.
22153
22154 2006-05-22  Mike Kestner  <mkestner@novell.com>
22155
22156         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
22157         Fixes #78463.
22158
22159 2006-05-22  Mike Kestner  <mkestner@novell.com>
22160
22161         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
22162         requests. Fix a misspelled parameter and a copy paste exception error
22163         in Select.
22164
22165 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
22166
22167         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
22168           to get the same width/height (5/13) on X11 as the default font has on
22169           win32. This means that our DefaultFont emSize is smaller than the 
22170           the MS SWF equivalent (even thought the width/height stays the same)
22171
22172 2006-05-20  Jackson Harper  <jackson@ximian.com>
22173
22174         * MdiClient.cs:
22175         * MdiWindowManager.cs:
22176         * InternalWindowManager.cs: Make sure to use the border width from
22177         the theme.
22178
22179 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
22180
22181         * PrintDialog.cs: Implements printer details
22182
22183 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
22184
22185         * FileDialog.cs: Added focus handling for PopupButtonPanel.
22186           Fixes part 1 and 2 of bug #78446
22187
22188 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
22189
22190         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
22191           instead of sticking to the first ever calculated value
22192
22193 2006-05-19  Mike Kestner  <mkestner@novell.com>
22194
22195         * ComboBox.cs: fix mouse motion selection to use MousePosition and
22196         PointToClient, since Capture is set. Fixes #78344.
22197
22198 2006-05-19  Mike Kestner  <mkestner@novell.com>
22199
22200         * ListView.cs: match MS behavior in Details view where items are not
22201         drawn if Columns.Count == 0. 
22202         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
22203         Use a separate pen to draw the check, since changing the width affects
22204         the box as well.  Fixes #78454.
22205
22206 2006-05-18  Miguel de Icaza  <miguel@novell.com>
22207
22208         * ListView.cs: ArgumentOutOfRangeException, single versions of the
22209         exception should throw the name of the invalid argument.
22210
22211         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
22212         there are no files listed. 
22213
22214 2006-05-18  Jackson Harper  <jackson@ximian.com>
22215
22216         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
22217         up.
22218
22219 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
22220
22221         * Control.cs: Brought back our old UpdateZOrder method as a private
22222           function and switched our calls from UpdateZOrder to the new one.
22223           This fixes the Paint.Net canvas disappearing bug.
22224
22225 2006-05-18  Jackson Harper  <jackson@ximian.com>
22226
22227         * Theme.cs:
22228         * ThemeWin32Classic.cs:
22229         * InternalWindowManager.cs: Move the drawing into the theme,
22230         expose everything the theme should need from the window manager.
22231
22232 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
22233
22234         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
22235           from the call to NativeWindow to avoid walking up the parent chain
22236           further than needed (speeds up setting cursors and avoids setting
22237           the wrong cursor if a parent has another cursor defined)
22238         * Cursor.cs: When loading an icon as cursor, MS uses the center of
22239           the icon as hotspot, not what's contained as hotspot in the icon
22240           file. This fixes the perceived drawing offset seen with Paint.Net
22241         
22242 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
22243
22244         * XplatUIX11.cs: 
22245           - Store the calculated rectangle in Hwnd object and use it when 
22246             setting the client size
22247           - Force Toolwindows to always be type Dock, to ensure they're on top
22248
22249 2006-05-18  Mike Kestner  <mkestner@novell.com>
22250
22251         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
22252         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
22253         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
22254         Substantial refactoring to remove confusing nested classes. Coding
22255         standard and Get+Set->property refactorings.  Shift to index based
22256         highlighting in ComboListBox instead of constantly using IndexOf and
22257         Items[]. Add invalidations on resize for DropDownList to fix ugliness
22258         in FileDialog growth.  Draw borders manually since Simple mode needs
22259         to look like two independent controls.  Make listbox border
22260         conditional to DropDownStyle.  Improved OwnerDraw support.
22261
22262 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
22263
22264         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
22265         Don't set the disposed graphics to null, so we can throw the "right"
22266         exception if the graphics is reused later (added a flag to avoid 
22267         double disposing). Some behaviours are different under 2.0 and are
22268         filled under bug #78448.
22269
22270 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
22271
22272         * Control.cs: When double-buffering is enabled, we need to reset
22273           our graphics context between paint calls. Otherwise, any 
22274           transformations and other alterations on the context will 
22275           become cumulative (#77734)
22276
22277 2006-05-18  Mike Kestner  <mkestner@novell.com>
22278
22279         * ListView.cs: do focused item selection like MS on clicks. 
22280         Rework focus handling for ItemControl so LostFocus invalidates as
22281         well.
22282         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
22283         the ListView ItemControl has focus.
22284
22285 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
22286
22287         * XplatUIX11.cs: If client_window ends up being width or height zero
22288           due to border settings, move it off window inside whole_window (#78433)
22289
22290 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
22291
22292         * Mime.cs: Shrink the mime file cache correctly.
22293
22294 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
22295
22296         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
22297
22298 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
22299
22300         * XplatUIX11.cs (AddExpose): More sanity checks
22301
22302 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
22303
22304         * XplatUIX11.cs:
22305           - AddExpose: Don't add expose ranges outside the size of our
22306             window
22307           - Cast opacity values to Int32 to avoid crashes with certain
22308             values
22309           - Added disabled code paths that protect against illegal cross-
22310             thread painting (Developers.exe)
22311
22312 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
22313
22314         * ProgressBar.cs: Invalidate the control when it's resized
22315           since block size is based on control size. (#78388)
22316
22317 2006-05-16  Miguel de Icaza  <miguel@novell.com>
22318
22319         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
22320         of setting the incoming argument to the "reset" value, we set the
22321         this.datamember to string.empty (before we were invalidating the
22322         incoming data).   
22323
22324         Fixes 78420
22325
22326 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
22327
22328         * Form.cs: Only apply transparency settings after the form
22329           is created. (Fixes #77800)
22330
22331 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
22332
22333         * ApplicationContext.cs: Grab the HandleDestroyed event so
22334           we know when to fire OnMainFormClosed 
22335
22336 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
22337
22338         * Application.cs: Introduced sub-class to allow tracking of
22339           threads and centralized triggering of the event mess for
22340           ThreadExit, AppExit, etc..  (#76156)
22341
22342 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
22343
22344         * MimeIcon.cs:
22345           - Do not return a null icon index value for a mime subclass.
22346             Instead try the main mime type class too.
22347           - Seems that some newer distributions don't have a link to some
22348             gnome default icons anymore. So check the default gnome dir too.
22349           
22350
22351 2006-05-16  Jackson Harper  <jackson@ximian.com>
22352
22353         * MdiClient.cs: Don't paint the parent background image if we have
22354         our own background image.
22355
22356 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
22357
22358         * Control.cs:
22359           - PerformLayout: Do not shrink space filled by DockStyle.Fill
22360             controls, all filled controls are supposed to overlap (#78080)
22361           - UpdateZOrder is supposed to update the control's z-order in the
22362             parent's z-order chain. Fixed to behave like that
22363           - BringToFront: Removed obsolete code
22364           - SendToBack: Simplyfied
22365           - SetChildIndex: Trigger layout calculations when Z-order changes
22366             since layout is done by z-order
22367
22368 2006-05-16  Chris Toshok  <toshok@ximian.com>
22369
22370         [ fixes bug #78410 ]
22371         * DataGrid.cs (set_AlternatingBackColor): use
22372         grid_drawing.InvalidateCells instead of Refresh().
22373         (set_BackColor): call grid_drawing.InvalidateCells.
22374         (set_BackgroundColor): use Invalidate instead of Refresh.
22375
22376         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
22377         invalidate the cell area.
22378
22379 2006-05-15  Chris Toshok  <toshok@ximian.com>
22380
22381         [ fixes bug #78011 ]
22382         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
22383         on to DataGridPaintRow.
22384         (DataGridPaintRow): take a clip argument, and only draw the cells
22385         which intersect it.  same with the not_usedarea.
22386
22387         * Theme.cs (DataGridPaintRow) add @clip parameter.
22388
22389         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
22390         XplatUI.ScrollWindow.
22391         (ScrollToRow): same.
22392
22393         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
22394         with last column which was causing a gray swath to appear with the
22395         XplatUI.ScrollWindow code.
22396
22397 2006-05-15  Chris Toshok  <toshok@ximian.com>
22398
22399         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
22400         use XplatUI.ScrollWindow.
22401         (VerticalScrollEvent): use XplatUI.ScrollWindow.
22402
22403 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
22404
22405         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
22406
22407 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
22408
22409         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
22410           file since there are no equivalent X11 cursors
22411
22412 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
22413
22414         * MonthCalendar.cs : DateTimePicker should reflect selected date
22415           on mouse*up*, not mouse*down*. Fixed originally reported part of
22416           bug #76474.
22417
22418 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
22419
22420         * TabControl.cs : When argument index is equal or more than tab
22421           count, just ignore. Fixed bug #78395.
22422
22423 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
22424
22425         * Control.cs: Dispose all child controls when control is diposed (#78394)
22426
22427 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
22428
22429         * ColorDialog.cs: Finally it is possible to select the color with
22430           the text boxes
22431
22432 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
22433
22434         * PrintDialog.cs: Fix typo
22435
22436 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
22437
22438         * PrintDialog.cs: PrintDialog is not resizable
22439         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
22440           color. Made some ToolBar drawing methods protected virtual.
22441
22442 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
22443
22444         * PrintDialog.cs: Implementation of the PrintDialog
22445
22446 2006-05-12  Chris Toshok  <toshok@ximian.com>
22447
22448         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
22449         thumb, instead use MoveThumb.  This has the side effect of making
22450         most of the other thumb moving machinery use MoveThumb as well.
22451         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
22452         need to actually invalidate the rectangle where the new thumb will
22453         go.
22454         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
22455         We force an Update() after, so it's not as fast as it could be,
22456         but at least there's zero flicker and no droppings.
22457         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
22458         (UpdateThumbPos): add another argument (dirty), which says whether
22459         or not to calculate/add dirty regions which we later invalidate.
22460         For cases where we know we're going to use MoveThumb, we pass
22461         false for this.  Otherwise, pass true.
22462
22463 2006-05-12  Jackson Harper  <jackson@ximian.com>
22464
22465         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
22466         the status bar.
22467         
22468 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
22469
22470         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
22471           and GetClipRegion methods and UserClipWontExposeParent property.
22472         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
22473           overriding UserClipWontExposeParent property, setting to false, since
22474           Win32 handles the required expose messages to draw our clipped parent
22475           areas internally
22476         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
22477           PaintEventStart to set the user clip region if set.
22478         * Control.cs: 
22479           - Now internally tracking the Region for the control since we need to
22480             store it if the handle is not yet created and only set it when it
22481             becomes created. Before setting the region forced handle creation
22482           - Added code to draw the parents underneath a user-clipped region
22483         * Hwnd.cs: Added UserClip property
22484
22485 2006-05-12  Chris Toshok  <toshok@ximian.com>
22486
22487         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
22488         (set_Maximum): same.
22489         (set_Minimum): same.
22490         (set_SmallChange): same.
22491         (OnMouseUpSB): remove the call to refresh when releasing the
22492         thumb.  We shouldn't need it.
22493         
22494 2006-05-12  Miguel de Icaza  <miguel@novell.com>
22495
22496         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
22497         AutoSize set to None, we do not need to relayout everything, we
22498         just need to invalidate the current region.
22499
22500         (Draw): Do not draw the entire ClientArea, just redraw the
22501         clip area being passed.
22502
22503         * MdiClient.cs: Make MdiClient constructor with the Form argument
22504         internal. 
22505
22506 2006-05-12  Jackson Harper  <jackson@ximian.com>
22507
22508         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
22509         parents background image,  but strangely not their own.
22510         - (DrawStatusBarPanel): Take into account horizontal alignment
22511         when drawing the strings and icons.
22512
22513 2006-05-12  Mike Kestner  <mkestner@novell.com>
22514
22515         * ListBox.cs: avoid invalidations for focus when the collection is
22516         empty. 
22517
22518 2006-05-12  Chris Toshok  <toshok@ximian.com>
22519
22520         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
22521         invalidate the entire thumb area.  Call InvalidateDirty which
22522         limits the redraw to the thumb itself and surrounding pixels.
22523
22524         * XplatUIX11.cs (ScrollWindow): optimize copying.
22525         
22526 2006-05-12  Chris Toshok  <toshok@ximian.com>
22527
22528         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
22529         Figure out the positioning/layout in a single pass instead of
22530         multiple recursive invocations.  Speeds up the initial display of
22531         the data grid.  Also, make many things private that were
22532         originally public but unused outside this class.
22533
22534 2006-05-11  Jackson Harper  <jackson@ximian.com>
22535
22536         * MdiClient.cs: Improved layout code.
22537
22538 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
22539
22540         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
22541           not SelectedObject.
22542
22543 2006-05-11  Chris Toshok  <toshok@ximian.com>
22544
22545         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
22546         union of that will always be {0,0,width,height}.
22547
22548 2006-05-11  Jackson Harper  <jackson@ximian.com>
22549
22550         * Form.cs: Match MS's DefaultSize for forms (they must have
22551         changed the size in sp2).
22552
22553 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
22554
22555         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
22556
22557 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
22558
22559         * TextControl.cs : Fixed bug #78109. This incorrect position
22560           comparison caused crash on automatic line split.
22561         * TextBoxBase.cs : reduce duplicate code.
22562
22563 2006-05-10  Jackson Harper  <jackson@ximian.com>
22564
22565         * MdiClient.cs: Active form is only sent to the back when using
22566         the Next form functionality, when a form is clicked the current
22567         active shouldn't be sent to the back.
22568         - Layout the mdi windows when the container is first made visible.
22569         * Form.cs: Give the MdiClient a ref to the containing form when we
22570         create it.
22571         
22572 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
22573
22574         * LinkLabel.cs : link_font could be uninitialized, so populate one
22575           before actual use. Fixed bug #78340.
22576
22577 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
22578
22579         * XplatUIX11.cs : clipboard format native value is IntPtr.
22580           Fixed bug #78283.
22581
22582 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
22583
22584         * Control.cs: 
22585           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
22586             which is passed up the parent chain by DefWndProc
22587           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
22588             to DefWndProc (#77956)
22589         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
22590
22591 2006-05-10  Jackson Harper  <jackson@ximian.com>
22592
22593         * MdiClient.cs: We need to remove the controls from the mdi
22594         collection, when we close the window.
22595         * MdiWindowManager.cs: Special handling of closing mdi windows.
22596         * InternalWindowManager.cs: Make the close method virtual so the
22597         mdi window manager can handle it specially.
22598
22599 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
22600
22601         * DataGrid.cs:
22602           - Recalculate grid when the data source has changed
22603           - Matches styles provided by user from all data sources types
22604         * DataGridTableStyle.cs: For columns that provided by the user set the
22605         with the preferred value is there was unassigned.
22606         * CurrencyManager.cs: throw OnItemChanged event
22607
22608 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
22609
22610         * PictureBox.cs: Don't animate until handle is created. Start animation
22611           when handle is created.
22612
22613 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
22614
22615         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
22616           current codebase.
22617         * XEventQueue.cs: We don't need to provide the extra info
22618
22619 2006-05-10  Jackson Harper  <jackson@ximian.com>
22620
22621         * MdiClient.cs: If the mdi clients parent form has a background
22622         image set, we draw that background image for the mdi area's
22623         background.
22624
22625 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
22626
22627         * TextBoxBase.cs: Set IBeam cursor (#78347)
22628
22629 2006-05-10  Mike Kestner  <mkestner@novell.com>
22630
22631         * ToolBar.cs: fix some text padding issues with ButtonSize
22632         calculation. Update the default size to match MS documentation.
22633         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
22634         button size. Fixes #78296.
22635
22636 2006-05-10  Mike Kestner  <mkestner@novell.com>
22637
22638         * ListBox.cs: use is_visible for scrollbar positioning in case the
22639         control isn't on screen yet.  Fix off by one with Right vs Width
22640         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
22641         
22642 2006-05-10  Jackson Harper  <jackson@ximian.com>
22643
22644         * X11Dnd.cs: Drop to a control with another control on top of it.
22645         * ToolBar.cs: Work on a copy of the buttons list, so that it can
22646         be modified in click handlers. TODO: Look for similar problems in
22647         other controls.
22648
22649 2006-05-09  Jackson Harper  <jackson@ximian.com>
22650
22651         * Form.cs: Window managers need the old window state when setting
22652         window state now.
22653         * InternalWindowManager.cs: Allow the base mdi window manager to
22654         handle more of the MDI only stuff (like maximize buttons).
22655         * MdiWindowManager.cs: Fix some snafus in changing the window
22656         state.  Add all the menu functionality, for both popup and
22657         maximized menus.
22658         * MdiClient.cs: When a new form is selected the currently
22659         activated form is sent to the back, this matches MS.
22660         - Implement a new method to activate the next mdi child window.
22661
22662 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
22663
22664         * Control.cs: 
22665           - Added new InternalCapture method to allow controls to prevent
22666             the capture behaviour on the click handlers
22667           - Switched to use InternalCapture
22668         * ComboBox.cs:
22669           - Using InternalCapture to prevent mouse captures from being released
22670             on mouse button release (Fixes #78100)
22671         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
22672           returns Form borders if a caption is present. (Fixes #78310)
22673
22674 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
22675
22676         * TreeNode.cs: Changed serialization .ctor to not require every field
22677           to be present. (#78265)
22678         * OwnerDrawPropertyBag.cs: Added serialization .ctor
22679
22680 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
22681
22682         * MimeIcon.cs: for is faster than foreach for strings.
22683
22684 2006-05-05  Mike Kestner  <mkestner@novell.com>
22685
22686         * CheckedListBox.cs: update check handling code to not use selected.
22687         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
22688         behavior for visual feedback, motion response, shift/ctrl handling,
22689         and properly deal with all 4 selection modes. Updates to bounds
22690         handling logic.  Add scroll wheel support. [Fixes #77842]
22691
22692 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
22693
22694         * ListView.cs:
22695           - Moved adding of Implicit controls into .ctor. That way, subsequent
22696             creation of the controls will not cause them to think they are 
22697             toplevel windows (fixes #78200 header problem)
22698           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
22699           - Switched visibility setting of header control to use internal field
22700             to avoid triggering handle creation
22701           - Now checking if handle is created before causing a refresh when items
22702             are added (This makes us now match handle creation time with MS)
22703         * Splitter.cs: Removed loading of private splitter cursor, switched to
22704           Cursors version now that that is loading the right ones
22705         * Cursors.cs: Load proper splitter cursors from resources
22706         * Cursor.cs: Added second method of loading resource cursors for the 
22707           VS.Net users amongst us
22708
22709 2006-05-05  Mike Kestner  <mkestner@novell.com>
22710
22711         * ListView.cs: give header_control a minimum size based on the
22712         ListView size.
22713
22714 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
22715
22716         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
22717           window seems to do that with metacity, so set that type. (#78120)
22718
22719 2006-05-05  Mike Kestner  <mkestner@novell.com>
22720
22721         * ListViewItem.cs: fix Details mode checkbox layout bug.
22722         * ThemeWin32Classic.cs: draw a ListView column header for unused space
22723         at the end of the header, if it exists. [Fixes for #78200]
22724
22725 2006-05-04  Jackson Harper  <jackson@ximian.com>
22726
22727         * MdiClient.cs: Add a helper property to get the container form.
22728         * MdiWindowManager.cs: We have to make sure to use the menu origin
22729         when drawing the icons and buttons, this fixes maximized window
22730         icons/buttons on win32.
22731         * InternalWindowManager.cs: Reset the restore captions when a
22732         window goes from Maximized to Minimized and vice versa. Move the
22733         DrawMaximizedButtons into the MdiWindowManager source, tool
22734         windows can't be maximized. NOTE: This could use a little
22735         refactoring if time ever permits.
22736         
22737 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
22738
22739         * TextBox.cs: Add MWFCategoryAttributes
22740         * TextBoxBase.cs: Add MWFCategoryAttributes
22741         * Form.cs: Add MWFCategoryAttributes
22742
22743 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
22744
22745         * Control.cs: Add MWFCategoryAttributes
22746         * ScrollableControl.cs: Add MWFCategoryAttributes
22747
22748 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
22749
22750         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
22751           Divider is true. Fix a little glitch in PropertyToolBar
22752           drawing code
22753
22754 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
22755
22756         * Control.cs:
22757           - Dispose: Call base.Dispose, this causes the disposed event
22758             to be fired (and probably other, more important stuff)
22759           - SetVisibleCore: Set is_visible to true after creating the
22760             window so that the window still gets created invisible (if
22761             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
22762             to generate a WM_ACTIVE message
22763         * Form.cs: Call Dispose when we want to destroy the window, instead of
22764           just destroying the handle (Dispose will do that for us)
22765         * XplatUIX11.cs:
22766           - RootWindow also needs a queue, so we can properly process the
22767             property change events from RootWindow (like Activate)
22768           - Generatic synthetic WM_ACTIVE message when the active window is
22769             being destroyed
22770
22771 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
22772
22773         * LinkLabel.cs: Trigger a recalc of our label dimensions when
22774           bounds are changed
22775
22776 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
22777
22778         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
22779           for determining width and height (image might not be assigned if
22780           we're drawing an imagelist)
22781
22782 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
22783
22784         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
22785         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
22786           height from system
22787         * Theme.cs: No longer returns hardcoded menu height, instead calls
22788           new driver method
22789         * Form.cs (OnLoad): Scaling happens before triggering Load events 
22790           on MS (# 78257)
22791
22792 2006-05-01  Mike Kestner  <mkestner@novell.com>
22793
22794         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
22795
22796 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
22797
22798         * TextBoxBase.cs: Removed Fixme
22799         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
22800
22801 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
22802
22803         * XplatUIX11.cs:
22804           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
22805             the rectangle relative to the parent, considering borders. We
22806             don't really want that.
22807           - ScrollWindow: Fixed warning to be more understandable
22808         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
22809           scrollbars and scroll only the visible area
22810         * RichTextBox.cs: Removed debug output
22811
22812 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
22813
22814         * NumericUpDown.cs (Text): Just use base
22815         * UpDownBase.cs: Ensure txtView is created before using it
22816
22817 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
22818
22819         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
22820           casting to IntPtr to avoid 64bit overflow errors
22821
22822 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
22823
22824         * Control.cs:
22825           - AllowDrop: Don't force handle creation.
22826           - CreateHandle: Added call to tell driver if we're allowed to drop
22827
22828 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
22829
22830         * FileDialog.cs: Remember the last directory not only for the
22831           current instance but also for new FileDialog instances.
22832
22833 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
22834         
22835         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
22836           broke sending async messages
22837
22838 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
22839
22840         * XplatUIX11.cs:
22841           - ScrollWindow: Fixed method. We finally generate expose events again
22842             for scrolled areas. This was causing 'garbage' when scrolling
22843             textbox and other controls that used ScrollWindow
22844           - Switched from using the regular queue for paint events to the MS 
22845             model of 'generating' paint events when the queue is empty.
22846             We use the new XQueueEvent.Paint subclass to store which windows
22847             need painting.
22848           - AddExpose now takes the x/y/width/height of the exposed area
22849             and inserts the window into the paint queue if not already there
22850           - InvalidateWholeWindow: Switched to use new AddExpose method
22851           - UpdateMessageQueue: Added which queue to monitor for paint events
22852           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
22853             the unlikely case nothing above handles it. We reset the expose
22854             pending states to get them off the queue.
22855           - GetMessage: Now pulls a paint event if no other events are in the
22856             queue
22857           - Invalidate: Switched to new AddExpose method
22858           - PeekMessage: Updated to understand pending paint events
22859           - UpdateWindow: Fixed logic bug. We were only updating if the window
22860             didn't need updating. Also switched to sending WM_PAINT directly,
22861             like MS does.
22862         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
22863           and random access Remove(). The random access is needed to handle
22864           UpdateWindow() where a WM_PAINT is sent directly without accessing
22865           the queue.
22866         * ScrollBar.cs: Added Update() calls to cause immediate updates to
22867           allow for better feedback when scrolling. Scrollbars are small and
22868           the immediate update should make it 'feel' more responsive without
22869           slowing things down. ScrollBar still needs it's invaliate logic
22870           updated to not always invalidate the whole bar on certain changes.
22871
22872 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22873
22874         * Control.cs:
22875         (BackColor): if the control does not support a transparent background,
22876         return the default backcolor when the parent backcolor is transparent.
22877
22878 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
22879
22880         * Application.cs: Updated to new StartLoop/GetMessage API
22881         * RichTextBox.cs: Provide some output on RTF parsing errors
22882         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
22883           new queue_id argument to GetMessage and PeekMessage to allow faster
22884           handling of per-thread queues in drivers.
22885         * Hwnd.cs: Added Queue tracking and property
22886         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
22887         * XEventQueue.cs: Added thread trackingA
22888         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
22889         * XplatUIX11.cs:
22890           - Implemented new per-thread queue
22891           - GetMessage: Fixed return/break behaviour on several cases. We were
22892             returning stale messages in some cases, instead of just processing
22893             the next message
22894
22895 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
22896
22897         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
22898
22899 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
22900
22901         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
22902           fixed off-by-one comparisons between Width/Height and Right/Bottom.
22903
22904 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
22905
22906         * PropertyGridView.cs: Fix drop down width.
22907
22908 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
22909
22910         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
22911           a mess in DrawToolBar, so I removed one of them.
22912
22913 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
22914
22915         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
22916           needed (clip). Otherwise we get artifacts.
22917
22918 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
22919
22920         * FixedSizeTextBox.cs: Added constructor to allow specifying which
22921           dimension is fixed
22922         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
22923           and switched FixedSizeTextBox to only be fixed vertical (#78116)
22924         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
22925           if it matches the scale base font (avoids unneeded scaling)
22926
22927 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
22928
22929         * X11DesktopColors.cs: One gtk_init_check should be enough
22930
22931 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
22932
22933         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
22934           match MS behaviour
22935
22936 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
22937
22938         * TextBoxBase.cs: 
22939           - Generate OnTextChanged for Backspace even if we're only deleting
22940             the current selection
22941           - When setting the Text property, only select all text if the
22942             control does not have focus when it is being set. Otherwise
22943             just place the cursor at the beginning of the control
22944
22945 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
22946
22947         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
22948           Added a little helper to draw PropertyGrid ToolBar with a different
22949           border and a different BackColor.
22950         * PropertyGrid.cs: Some background parts didn't get painted with the
22951           correct background color. Added a class that helps us to draw the
22952           correct border for PropertyGridView and a class that helps us to
22953           draw ToolBars with a different backcolor
22954         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
22955
22956 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
22957
22958         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
22959         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
22960
22961 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
22962
22963         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
22964           into the palette entries. Also, since we're working on a copy
22965           we needed to copy the palette back onto the bitmap.
22966         * Cursor.cs: Same fix as XplatUIWin32.cs.
22967
22968 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
22969
22970         * ImageListStreamer.cs: Need to read the var (or we're off)
22971
22972 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
22973
22974         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
22975           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
22976           TextBoxBase.cs: Unused var fixes
22977         * AxHost.cs: Small 2.0 fix
22978         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
22979           as it seems that is what at least Metacity expects. This will make
22980           icons show up on 64bit platforms. We still have some 64bit size
22981           issues, though, since the startup app window size still won't match.
22982
22983 2006-04-25  Mike Kestner  <mkestner@novell.com>
22984
22985         * *.cs: cleanup newly reported exception var unused warnings.
22986
22987 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
22988
22989         * ThemeWin32Classic.cs: Button image alignment now matches exactly
22990           ms
22991
22992 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
22993
22994         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
22995           image. The image position is always the same, no matter if the
22996           button is pressed or not.
22997
22998 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
22999
23000         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
23001           selection and set the correct filename for SaveFileDialog.
23002           Patch by Emery Conrad.
23003
23004 2006-04-24  Mike Kestner  <mkestner@novell.com>
23005
23006         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
23007         check for item.X outside the ClientRect instead of item.Y. Fixes
23008         #78151.
23009
23010 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23011
23012         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
23013         trust that value blindly and do some sanity check. Fixes bug #77814.
23014
23015 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23016
23017         * ImageListStreamer.cs: save the mask as a 1bpp image.
23018
23019 2006-04-21  Mike Kestner  <mkestner@novell.com>
23020
23021         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
23022         pass Checked and Indeterminate to the Theme Engine. Improve
23023         encapsulation with ListBox.
23024         * ListBox.cs: Keep a StringFormat instead of calculating it every item
23025         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
23026         nested types.  Move all CheckState functionality to CheckedListBox.
23027         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
23028         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
23029         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
23030         single base list. Fix scrollbar sizing and placement to mirror MS.
23031         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
23032         used.
23033         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
23034         for CheckedListBox by using new DrawItemState info.  Center the
23035         checkboxes on the items. Use new StringFormat property.
23036
23037 2006-04-18  Jackson Harper  <jackson@ximian.com>
23038
23039         * Form.cs: MdiChildren don't do default locations the same way as
23040         regular forms.  This prevents a crash when trying to position the
23041         mdi windows.
23042
23043 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
23044
23045         * PropertyGridTextBox.cs: Formatting, copyright
23046         * PropertiesTab.cs: Formatting
23047         * PropertyGrid.cs: Formatting
23048         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
23049           click toggling of values
23050           
23051 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
23052
23053         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
23054         * Control.cs (.ctor): verify_thread_handle is static, don't reset
23055           every time a control is created
23056         * Application.cs: Removed obsolete EnableRTLMirroring method
23057
23058 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
23059
23060         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
23061         SelectedIndex to -1. Fixes bug #78121.
23062
23063 2006-04-17  Jackson Harper  <jackson@ximian.com>
23064
23065         * Binding.cs: Handle null values for Current and BindingContext.
23066         This occurs when binding is a little delayed.
23067         * CurrencyManager.cs: return null for Current when there are no
23068         items in the list.
23069         - Hookup to the listchanged event on the DataView and update
23070         bindings when the list is changed.  This fixes late binding of
23071         controls.
23072
23073 2006-04-17  Jackson Harper  <jackson@ximian.com>
23074
23075         * X11Dnd.cs:
23076         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
23077         Ringenbach.
23078
23079 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
23080
23081         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
23082           place
23083         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
23084           with the correct ButtonState
23085
23086 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
23087
23088         * XplatUIX11.cs: Improved distinguishing between window types to
23089           tell the WM a type closer to what the app wants (Fixes #78107)
23090
23091 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
23092
23093         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
23094           GrabHandle
23095
23096 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
23097
23098         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
23099           drawing code to reflect the size grip changes
23100
23101 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23102
23103         * ImageListStreamer.cs: fix handling of the mask that follows the main
23104         bitmap when deserializing and serialize it properly. The generated mask
23105         should better be a 1bpp image, but I'll do that later.
23106
23107 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
23108
23109         * FileDialog.cs: Show something in the DirComboBox on *nix if the
23110           path doesn't fit into some of our Current.Places
23111
23112 2006-04-13  Jackson Harper  <jackson@ximian.com>
23113
23114         * ComboBox.cs: Use borders instead of drawing our own decorations,
23115         try to obey correct rules for heights.
23116         * Theme.cs:
23117         * ThemeNice.cs:
23118         * ThemeClearLooks.cs:
23119         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
23120         this is now handled by borders.
23121         - Remove unused DrawListBoxDecorationSize method.
23122         
23123 2006-04-13  Mike Kestner  <mkestner@novell.com>
23124
23125         * MenuAPI.cs: null guarding for the disbled click check fixes crash
23126         reported by Alex.
23127
23128 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
23129
23130         * ThemeWin32Classic.cs: 
23131           - Fixed CPDrawStringDisabled
23132           - Corrected drawing of disabled menu items
23133           - Fixed drawing of disabled radio buttons (bug #78095)
23134           - Draw check in a disabled CheckBox with color ControlDark 
23135
23136 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
23137
23138         * Form.cs: Use the provided width when calculating the menu size;
23139           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
23140           and ClientSize.Width won't be updated yet
23141         * Application.cs: Use Visible instead of Show() to make form visible,
23142           this way we create the handle later and menusize is considered
23143
23144 2006-04-12  Mike Kestner  <mkestner@novell.com>
23145
23146         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
23147         reporting.
23148
23149 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
23150
23151         * TextBox.cs: Implemented context menu
23152
23153 2006-04-12  Mike Kestner  <mkestner@novell.com>
23154
23155         * ListView.cs: implement box selection. fixes #77838.
23156         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
23157
23158 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
23159
23160         * XplatUIX11.cs: Added setting of window type when transient window
23161           is created (metacity would move it otherwise)
23162         * X11Structs.cs: Added WINDOW_TYPE atoms
23163         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
23164           background (the control is Opaque but still wants transparent
23165           backgrounds)
23166
23167 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
23168
23169         * Control.cs: Added OnPaintBackgroundInternal to allow controls
23170           that set Opaque but don't mean it (like all ButtonBase-derived
23171           controls) to still draw their background
23172         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
23173           the background
23174
23175 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
23176
23177         * Control.cs (PaintControlBackground): Set the graphics object
23178           on our PaintEvent to null to prevent it from being disposed
23179           when the PaintEvent gets disposed
23180
23181 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
23182
23183         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
23184         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
23185
23186 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
23187
23188         * Control.cs: 
23189           - Added transparency check to BackColor property. Transparent
23190             backgrounds are only allowed if the control styles permit it
23191           - Added recursive painting of parent control background and
23192             foreground if a control with a transparent backcolor is drawn
23193             (Thanks to Tim Ringenback for providing his 'hack' as a base
23194              for this patch) Fixes #77985 and #78026.
23195           - Added Opaque style check before calling OnPaintBackground, no
23196             need to draw the background if the control is opaque
23197           - Removed ControlAccessibleObject owner variable (inherited from
23198             base, no need to define again)
23199           - Added some documentation links explaining the drawing events
23200             and styles
23201
23202 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
23203
23204         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
23205           that the affected control is the located at the left border of our
23206           parent (Fixes #77936)
23207
23208 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
23209
23210         * TextBoxBase.cs: When rendering disabled or readonly controls,
23211           draw the background with 'Control' instead of 'Window' color as
23212           long as the user hasn't specifically set a color
23213
23214 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
23215
23216         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
23217           since that won't be updated if the user types text (only if it's
23218           programatically set)
23219
23220 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
23221
23222         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
23223           layout changes do to app-triggered resizes will have the proper
23224           display rectangle for layout
23225
23226 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
23227
23228         * ThemeWin32Classic.cs:
23229           - Make use of the SystemBrushes and SystemPens wherever possible
23230           - Corrected some highlight colors
23231           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
23232             drawing
23233         * Theme.cs: Added Empty field to CPColor struct
23234
23235 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
23236
23237         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
23238           is displayed when calculating the display rectangle. Thanks to Mike
23239           for teaching me the err of my ways.
23240
23241 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
23242
23243         * ScrollableControl.cs:
23244           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
23245             (instead of 0,0) and we now return the real width/height instead of
23246             just the clientrectangle, adjusted for padding. The rectangle is
23247             now cached and created by the new CalculateDisplayRectangle method.
23248           - Created new CalculateDisplayRectange method, which basically does
23249             what get_DisplayRectangle() did originally, but now using the 
23250             right edge instead of DisplayRectangle to determine the size of
23251             our scrollbars
23252           - get_Canvas(): Fixed it to properly calculate canvas for 
23253             right/bottom controls which seem to be placed to the right/bottom
23254             of any controls that have a fixed location
23255           - Removed TODO that's taken care of
23256           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
23257             and SetDisplayRectLocation according to new MSDN2 docs
23258           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
23259             event when that is called, this is added for compatibility
23260           - ScrollControlIntoView(): Implemented.
23261           - Switched scrollbars to be implicit, they shouldn't be selectable
23262         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
23263           call it when the active control is set/changed
23264         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
23265         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
23266           implicit_control variable (used for native Win32 message generation)
23267         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
23268           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
23269         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
23270         * XplatUIStructs.cs: Added ScrollBarCommands enum
23271
23272 2006-04-10  Jackson Harper  <jackson@ximian.com>
23273
23274         * ButtonBase.cs:
23275         * CheckedListBox.cs:
23276         * ComboBox.cs:
23277         * DataGrid.cs:
23278         * DataGridView.cs:
23279         * Form.cs:
23280         * GroupBox.cs:
23281         * ListBox.cs:
23282         * PrintPreviewControl.cs:
23283         * ProgressBar.cs:
23284         * PropertyGrid.cs:
23285         * Splitter.cs:
23286         * StatusBar.cs:
23287         * TrackBar.cs:
23288         * UpDownBase.cs: Fixup base event overrides.
23289         
23290 2006-04-06  Mike Kestner  <mkestner@novell.com>
23291
23292         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
23293         all user-initiated value changes to min <= value <= max-thumbsz+1.
23294         (set_Value): check for vert/horiz when calculating new thumb position.
23295         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
23296         like MS does.
23297         (OnMouseMoveSB): refactor the thumb dragging code and refine
23298         invalidation logic to reduce flicker.
23299         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
23300         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
23301         (UpdateThumbPosition): small code readability cleanup
23302
23303 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
23304
23305         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
23306           different
23307
23308 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
23309
23310         * ThemeNice.cs: Use a better graphics effect when a button is pressed
23311
23312 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
23313
23314         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
23315         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
23316           This dramatically reduces the number of Pen.Dispose calls. 
23317           Where possible call ResPool methods only once instead of calling it
23318           over and over again (for example for the same color).
23319
23320 2006-04-06  Mike Kestner  <mkestner@novell.com>
23321
23322         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
23323         Also remove an unused private field on the collection. Fixes #77972.
23324
23325 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
23326
23327         * ThemeNice.cs: Added ToolBar drawing code
23328
23329 2006-04-06  Mike Kestner  <mkestner@novell.com>
23330
23331         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
23332         I'm assuming that means we need to look up the toplevel for the
23333         provided control. Fixes the crash trace in #77911 but exposes another
23334         crash in some strange reflection usage in NDocGui.
23335
23336 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
23337
23338         * ThemeNice.cs: Gave it a little silver touch and added Images
23339           method
23340         * FontDialog.cs: FontDialog is not resizable
23341         * FileDialg.cs: Added SizeGripStyle.Show
23342
23343 2006-04-05  Jackson Harper  <jackson@ximian.com>
23344
23345         * KeyboardLayouts.cs: Remove warning.
23346
23347 2006-04-05  Jackson Harper  <jackson@ximian.com>
23348
23349         * Control.cs: Enable OnPaintInternal so we can use it for drawing
23350         all of our controls instead of Paint +=.
23351         * ListBox.cs:
23352         * ListView.cs:
23353         * MenuAPI.cs:
23354         * MessageBox.cs:
23355         * NotifyIcon.cs:
23356         * ProgressBar.cs:
23357         * ScrollBar.cs:
23358         * Splitter.cs:
23359         * StatusBar.cs:
23360         * TabControl.cs:
23361         * TextBoxBase.cs:
23362         * ToolBar.cs:
23363         * TrackBar.cs:
23364         * UpDownBase.cs:
23365         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
23366         use OnPaintInternal. Remove Width/Height and Visible checks in
23367         paint handler, this is done at a higher level now.
23368         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
23369         * PaintEventArgs.cs: Add a handled flag so controls that don't
23370         want anymore painting after OnPaintInternal can make sure OnPaint
23371         isn't called.
23372
23373 2006-04-05  Mike Kestner  <mkestner@novell.com>
23374
23375         * Form.cs: fix the menu WndProc hacks to respect the native enabled
23376         state of the form, so that we don't process events when Modal dialogs
23377         are up. Fixes #77922.
23378
23379 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
23380
23381         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
23382           checking is done.
23383
23384 2006-04-05  Mike Kestner  <mkestner@novell.com>
23385
23386         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
23387
23388 2006-04-05  Mike Kestner  <mkestner@novell.com>
23389
23390         * ListView.cs (HeaderMouseMove): null guarding for the over column
23391         when setting up the drag_to_index.  Fixes #78015.
23392
23393 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
23394
23395         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
23396           in the taskbar. Transient windows seem to accomplish that.
23397
23398 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
23399
23400         * Form.cs:
23401           - Re-enabled CreateParams.X/Y code for FormStartPosition
23402           - Added code for manual placement when creating the Control
23403           - Incomplete patch to treat MDI forms differently when
23404             setting the ClientSizeCore. (Still need to figure out handling
23405             x/y coords there)
23406         * XplatUIX11.cs:
23407           - When we're explicitly setting the X/Y position of a non-Child
23408             window, let the WM know. Metacity really wants this.
23409
23410 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
23411
23412         * ThemeNice.cs: Added CPDrawButton
23413
23414 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
23415
23416         * ThemeNice.cs: Changed the color for focused buttons and activated
23417           the arrows for small scroll buttons.
23418
23419 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
23420
23421         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
23422           anymore. Changed some method modifiers to protected (virtual)
23423         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
23424           changes
23425         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
23426           Updated drawing of menus, buttons and progressbars; added
23427           CPDrawBorder3D 
23428
23429 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23430
23431         * ImageListStreamer.cs: implemented serialization/deserialization
23432         of the images.
23433
23434 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
23435
23436         * ThemeWin32Classic.cs:
23437           - Removed all the DrawFrameControl stuff; CPDrawButton,
23438             CPDrawCheckBox and CPDrawRadioButton are now handled directly
23439             inside the methods
23440           - Updated and corrected the drawing code of CPDrawButton,
23441             CPDrawCheckBox and CPDrawRadioButton to better match ms
23442           - Updated theme checkbox and radiobutton code to use the CP*
23443             methods
23444
23445 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
23446
23447         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
23448           bug is fixed
23449
23450 2006-03-31  Jackson Harper  <jackson@ximian.com>
23451
23452         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
23453         sometimes.
23454         * UpDownBase.cs: Don't CreateGraphics manually, use a
23455         Refresh. Ideally we would invalidate the correct areas here.
23456
23457 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
23458
23459         * XplatUIX11.cs: 
23460           - We now track the mapping state of windows. If a window (or 
23461             one of it's parents) is not mapped we no longer permit
23462             WM_PAINT messages to be generated since we'd otherwise get 
23463             lots of BadMatch X errors. Jackson did all the work figuring
23464             out the problem.
23465           - Destroying the caret if the window it's contained in is 
23466             destroyed. Can't use regular DestroyCaret method since it
23467             might fall into a drawing function (trying to remove the
23468             caret) and with that generate new BadMatch errors. Again,
23469             Jackson tracked this down.
23470           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
23471             make sure we send the messages to all windows. (The old code
23472             would send the WM_DESTROY to the window, and then all child
23473             windows would be 'gone' because the WM_DESTROY handle lookup
23474             would no longer find the destroyed window)
23475         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
23476         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
23477
23478 2006-03-31  Jackson Harper  <jackson@ximian.com>
23479
23480         * ScrollableControl.cs: Dont recalc if we are not visible.
23481
23482 2006-03-31  Mike Kestner  <mkestner@novell.com>
23483
23484         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
23485         the visibility branch.
23486
23487 2006-03-31  Jackson Harper  <jackson@ximian.com>
23488
23489         * ScrollBar.cs: Cap values when incrementing/decrementing.
23490
23491 2006-03-31  Mike Kestner  <mkestner@novell.com>
23492
23493         * MenuAPI.cs: setup menu.tracker for popup/context menus.
23494         * ToolTip.cs: guard against timer expirations with no active control.
23495         Not sure why it happened.
23496
23497 2006-03-31  Mike Kestner  <mkestner@novell.com>
23498
23499         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
23500         text.
23501         * ToolTip.cs: Position the tooltip based on where the cursor is at
23502         popup time, not at MouseEnter time.  Add a Down state so that we don't
23503         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
23504         positioning offset. Lookup DisplaySize at positioning time, since it
23505         can theoretically change during invocation.
23506         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
23507         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
23508
23509 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
23510
23511         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
23512           Fixes behaviour when the Text property of the box is String.Empty
23513
23514 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
23515
23516         * XplatUIX11.cs: Only send mouseleave for our client windows, not
23517           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
23518           a window)
23519
23520 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
23521
23522         * FileDialog.cs: Visual enhancement for the popup buttons in 
23523           PopupButtonPanel
23524
23525 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
23526
23527         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
23528           code
23529
23530 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
23531
23532         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
23533           highlighted menu items to match ms
23534
23535 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
23536
23537         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
23538
23539 2006-03-30  Mike Kestner  <mkestner@novell.com>
23540
23541         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
23542         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
23543         go active to account for HotLight to Selected transition.
23544         * MenuItem.cs: add internal Selected prop. Fill out the Status
23545         property by calculating it from item info. Add HotLight,
23546         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
23547
23548 2006-03-30  Mike Kestner  <mkestner@novell.com>
23549
23550         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
23551
23552 2006-03-29  Jackson Harper  <jackson@ximian.com>
23553
23554         * Form.cs: Implement TODO.
23555
23556 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
23557
23558         * PrintPreviewDialog.cs: Implemented missing methods and events; still
23559           missing proper dialog setup in the constructor
23560
23561 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
23562
23563         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
23564         * Control.cs:
23565           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
23566           - Fixed ResetBindings and removed TODO
23567           - Added check for cross-thread calls to get_Handle()
23568           - Added Marshaller attribute for set_Font to satisfy class status
23569         * FontDialog.cs: Removed TODOs that seemed implemented
23570         * UpDownBase.cs: Removed unneeded TODO and Fixme
23571         * MessageBox.cs: Implemented support for Default button and removed TODO
23572         * FileDialog.cs: Removed obsolete TODO
23573         * DomainUpDown.cs: Removed obsolete TODO
23574         * ButtonBase.cs: Removed obsolete TODO
23575         * XplatUIWin32.cs: Removed obsolete TODO
23576         * Form.cs:
23577           - Removed obsolete TODO
23578           - Calling CheckAcceptButton when the acceptbutton is changed to allow
23579             internal status updates
23580           - Making sure the active control is selected when the control is created
23581         * CurrencyManager.cs: Removed obsolete TODO
23582
23583 2006-03-29  Mike Kestner  <mkestner@novell.com>
23584
23585         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
23586         of PrintPreviewDialog and RichTextBox.
23587
23588 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
23589
23590         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
23591           DarkDark, Light and LightLight colors for a specific color
23592         * ThemeWin32Classic.cs:
23593           - Use Button drawing code to draw RadioButtons and CheckBoxes with
23594             Appearance = Button 
23595           - Make use of the new ResPool helper CPColor
23596           - Draw ProgressBar and StatusBar with correct 3D borders
23597
23598 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
23599
23600         * ColorDialog.cs: Return selected color. Fixes bug #77940.
23601
23602 2006-03-28  Mike Kestner  <mkestner@novell.com>
23603
23604         * ListView.cs: fix Icon layout to plan for scrollbar widths when
23605         calculating col/row counts.
23606
23607 2006-03-28  Mike Kestner  <mkestner@novell.com>
23608
23609         * ColumnHeader.cs:
23610         * ListView.cs:
23611         * ListViewItem.cs:
23612         * Menu.cs: 
23613         switch to explicit interface method implementation for some methods
23614         corcompare identifies as inconsistent with MS.
23615
23616 2006-03-28  Mike Kestner  <mkestner@novell.com>
23617
23618         * MainMenu.cs: 
23619         * Menu.cs:
23620         add a few missing methods from the class status output.
23621
23622 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
23623
23624         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
23625           correct.
23626
23627 2006-03-28  Mike Kestner  <mkestner@novell.com>
23628
23629         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
23630
23631 2006-03-27  Mike Kestner  <mkestner@novell.com>
23632
23633         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
23634         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
23635
23636 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
23637
23638         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
23639
23640 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
23641
23642         * ThemeWin32Classic.cs:
23643           - GroupBox: Inserted a little gap between the text and the lines
23644             on the right side
23645           - Made the code in CPDrawBorder3D more readable
23646           - Corrected the drawing location of the up and down arrows in 
23647             CPDrawScrollButton
23648
23649 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
23650
23651         * ControlPaint.cs: Corrected line widths in DrawBorder for
23652           ButtonBorderStyle Inset and Outset
23653
23654 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
23655
23656         * ThemeWin32Classic.cs:
23657           - Rewrote the totally broken CPDrawBorder3D method. That was
23658             one of the main problems for the terrific ThemeWin32Classic
23659             look
23660           - Updated and corrected Button drawing
23661           - Correct the dimensions of the SizeGrip to match ms ones
23662           - Removed a small drawing glitch in DrawComboBoxEditDecorations
23663         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
23664           Border3DStyle.Sunken to match ms.
23665
23666 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
23667
23668         * ThemeWin32Classic.cs: First small part of the "de-uglify
23669           ThemeWin32Classic" effort, SizeGrip
23670
23671 2006-03-24  Jackson Harper  <jackson@ximian.com>
23672
23673         * XplatUIX11.cs: Give a max idle time of one second, this matches
23674         MS and forces an Idle event every second when there are no other
23675         events in the queue.
23676
23677 2006-03-24  Mike Kestner  <mkestner@novell.com>
23678
23679         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
23680         * ListView.Item.cs: fix layout issues with null image lists and images
23681         smaller than checkbox size.
23682         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
23683         mode like MS does.  It's weird, but consistent.  ;-)
23684         Fixes #77890.
23685
23686 2006-03-24  Mike Kestner  <mkestner@novell.com>
23687
23688         * ListView.cs: Scroll wheel support for the item control.  Fixes
23689         #77839.
23690
23691 2006-03-23  Jackson Harper  <jackson@ximian.com>
23692
23693         * ScrollableControl.cs: Special case negative sized areas, not
23694         zero.
23695         * MonthCalendar.cs: Save the rect of the clicked date so we can
23696         use it for invalidation.
23697         - Try to cut down on the number of invalidates
23698         - Invalidate the rect the mouse is over and was over when moving
23699         the mouse, so we get the focus box following the cursor.
23700
23701 2006-03-23  Mike Kestner  <mkestner@novell.com>
23702
23703         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
23704         focus rectangle drawing. Fixes #77835.
23705
23706 2006-03-23  Mike Kestner  <mkestner@novell.com>
23707
23708         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
23709         the if and else if and reverting back to the original == check on the
23710         None conditional.
23711
23712 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
23713
23714         * FontDialog.cs: Update the example panel if the selected index of
23715           the fontListBox changes.
23716
23717 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
23718
23719         * FileDialog.cs: Make FileDialog remember which directory it was in
23720           last in the same execution.
23721
23722 2006-03-22  Mike Kestner  <mkestner@novell.com>
23723
23724         * FileDialog.cs: make the DropDownMenu on the toolbar display
23725         RadioChecks since they are mutually exclusive and that's what MS does.
23726
23727 2006-03-22  Mike Kestner  <mkestner@novell.com>
23728
23729         * Theme.cs: add Color param to CPDrawMenuGlyph.
23730         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
23731         checks and radio marks and arrows are visible on highlighted items.
23732         * ControlPaint.cs: update to use new Theme signature.
23733
23734 2006-03-22  Mike Kestner  <mkestner@novell.com>
23735
23736         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
23737         is active. Fixes #77870.
23738
23739 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
23740
23741         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
23742           to be focused/selected after startup
23743
23744 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
23745
23746         * ColorDialog.cs: 
23747           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
23748             CustomColors and ShowHelp properties
23749           - Some internal rewrites to get better results when using the
23750             ColorMatrix
23751
23752 2006-03-22  Mike Kestner  <mkestner@novell.com>
23753
23754         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
23755         HoverSelection.  Fixes #77836.
23756
23757 2006-03-22  Mike Kestner  <mkestner@novell.com>
23758
23759         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
23760         ToggleButtons.  (De)Sensitize the Back button around a stack count of
23761         1, not 0.  Update ButtonSize based on a pixel count of the win32
23762         control.  Adjust the toolbar size/location for new button size.
23763
23764 2006-03-22  Jackson Harper  <jackson@ximian.com>
23765
23766         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
23767         true.
23768         * ScrollBar.cs: When doing increments and decrements we need to
23769         set the Value property so that ValueChanged gets raised. A
23770         possible optimization here would be to make an internal SetValue
23771         that doesn't invalidate immediately.
23772         * ToolTip.cs: Tooltips get added to their container (when
23773         supplied) so they get disposed when the container is disposed.
23774         - Don't create tooltips for String.Empty. This prevents all these
23775         little 2-3 pixel windows from showing up when running nunit-gui
23776         and driving me mad.
23777         * Form.cs: Don't set topmost when setting the owner if the handles
23778         haven't been created yet.  The topmost set will happen when the
23779         handles are created.
23780
23781 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
23782
23783         * XplatUIX11.cs:
23784           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
23785           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
23786             visible (to allow them to recalculate their sizes)
23787
23788 2006-03-21  Mike Kestner  <mkestner@novell.com>
23789
23790         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
23791         methods. Removed a ton of redundant code.  Still not really happy with
23792         the border rendering, but I think that's mainly because of the
23793         ControlDarkDark being black instead of a dark grey. Depending on how 
23794         close we want to be, we might want to revisit those color choices.
23795         Among the new features added during the refactor were DropDownArrow
23796         pressed rendering, Disabled image rendering.  Proper flat appearance
23797         boundary rendering.  Removed the Divider and Wrapping dividers since I
23798         can't figure out any combination of themes and conditions to make the
23799         MS control draw a horizontal line on a toolbar despite what the
23800         Divider property docs indicate.
23801         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
23802         conditions and incorrect layout.  Updated to coding standard.
23803         * ToolBarButton.cs: refactored layout and positioning code from
23804         ToolBar to here.  Invalidate wherever possible instead of forcing
23805         redraws of the whole toolbar. 
23806         (Known remaining issues: explicit ButtonSize smaller than provided
23807         images.)
23808
23809 2006-03-21  Mike Kestner  <mkestner@novell.com>
23810
23811         * ContextMenu.cs (Show): use the position parameter instead of just
23812         showing at the MousePosition.
23813
23814 2006-03-21  Jackson Harper  <jackson@ximian.com>
23815
23816         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
23817         control handle this.
23818         * TreeNodeCollection.cs: If we are clearing the root node we need
23819         to reset top_node so calcs can still happen.
23820         * ThemeWin32Classic.cs: This is a Flags so we need to check
23821         properly.
23822         
23823 2006-03-21  Jackson Harper  <jackson@ximian.com>
23824
23825         * DataGrid.cs: Create columns when the binding context has been
23826         changed.
23827         * X11Structs.cs: Keysyms are uints.
23828         - Add size to fix build.
23829
23830 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
23831
23832         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
23833           XplatUIOSX.cs: 
23834           - Added ResetMouseHover method to allow controls to retrigger
23835             hovering if they need it more than once
23836           - Implemented MouseHoverTime and MouseHoverSize properties
23837         * Timer.cs: Start() must reset the interval
23838         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
23839           properties
23840
23841 2006-03-21  Jackson Harper  <jackson@ximian.com>
23842
23843         * X11Keyboard.cs: improved layout detection. Move the nonchar
23844         tables into this file.
23845         * KeyboardLayouts.cs: Move the tables into resource files.
23846
23847 2006-03-21  Mike Kestner  <mkestner@novell.com>
23848
23849         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
23850
23851 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
23852
23853         * Mime.cs: Various speed optimizations. Looking up mime types
23854           is now 2 times faster than before
23855
23856 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
23857
23858         * CreateParams.cs: Added internal menu field
23859         * Control.cs: 
23860           - Switched call order for UpdateBounds; now we always call
23861             the one that also takes ClientSize, and we're calculating the 
23862             client size via driver method in the others. The previous
23863             method of tracking client size by difference wasn't working
23864             for forms where even the starting client size wouldn't match
23865             the overall form size (due to borders) (Part of fix for #77729)
23866           - CreateParams(): Do not use parent.Handle unless the handle is
23867             already created. Causes havoc with Nexxia and throws off our
23868             creation of controls
23869         * XplatUIX11.cs:
23870           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
23871           - Switched handling of ConfigureNotify over to new PerformNCCalc 
23872             method (consolidates code)
23873           - Changed RequestNCRecalc to use new PerformNCCalc method
23874           - Added calls to RequestNCRecalc when menus and borders are changed
23875             to allow app to set NC size. (Part of fix for #77729) This matches
23876             when MS send a WM_NCRECALC on Win32 windows.
23877           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
23878             (Part of fix for #77729). This matches what MS does, they also
23879             send that message when the form is made visible.
23880           - XException.GetMessage: Improved usability of X errors by including
23881             a translation of the window into Hwnd and Control class
23882           - Improved debug info for window creation, reparenting and destruction
23883           - Created helper method WindowIsMapped() [Currently not used]
23884         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
23885         * Form.cs:
23886           - CreateParams: Now setting our menu on the new internal menu field
23887           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
23888             avoid calculating the same property twice
23889         * Hwnd.cs:
23890           - Improved usability of ToString() for debugging purposes
23891           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
23892             determine the height of the menu, instead of just the font. This
23893             required to also create a graphics context and to keep a bmp 
23894             around (for performance reasons)
23895
23896 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
23897
23898         * MenuAPI.cs: Added OnMouseUp method
23899         * Form.cs:
23900           - Now remembering the requested client size, avoids size errors
23901           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
23902             instead of base if the menu is active. This is required due to
23903             control now capturing and releasing on down/up and it would
23904             prematurely release our menu capture
23905
23906 2006-03-17  Jackson Harper  <jackson@ximian.com>
23907
23908         * KeyboardLayouts.cs: Add the czech layouts.
23909
23910 2006-03-16  Jackson Harper  <jackson@ximian.com>
23911
23912         * Control.cs: Use the viewport space when sizing not the controls
23913         client size, so things like ScrollableControl that effect the
23914         viewport size (when scrollbars are added) are computed correctly.
23915         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
23916         of ManagerEntrys.
23917         - Handle creating BindingManagers for null data sources.
23918         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
23919         source, otherwise when rows are added they are added to the 'fake'
23920         datasource and we will crash when trying to set the position in
23921         those rows.
23922         - Use Implicit scrollbars on the datagrid so they arent
23923         selectable.
23924         
23925 2006-03-16  Jackson Harper  <jackson@ximian.com>
23926
23927         * Binding.cs:
23928         * InternalWindowManager.cs:
23929         * MdiWindowManager.cs:
23930         * X11Keyboard.cs: I really want Mike to love me again (fix
23931         compiler warnings).
23932
23933 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
23934
23935         * DataGrid.cs:
23936           - OnMouseDown: Switch to editing mode when clicking on the cell
23937                          even if we're clicking on the cell that's currently 
23938                          selected
23939           - ProcessGridKey: Left/Right now wrap like MS.Net does
23940           - ProcessGridKey: Tab now knows to add a new row when tab is
23941                             pressed in the cell of the last column of the 
23942                             last row
23943           - ProcessGridKey: Enter now adds another row  if pressed in the last
23944                             row and selectes the new row, same column cell
23945           - ProcessGridKey: Home/End navigate columns, not rows, like 
23946                             originally implemented
23947           - Broke ProcessKeyPreview code out into an extra Internal method
23948             so it can be called from the edit code
23949         * DataGridTextBox.cs (ProcessKeyMessage):
23950           - Switched to accept Tab keypresses
23951           - Added F2 handling to allow jumping to the end of the edited cell
23952           - Added logic to allow moving caret left/right inside edited cell
23953             and making the edited cell jump when the caret hits cell borders
23954           - Tab and Enter are now passed to the datagrid after being handled
23955         * TextBoxBase.cs:
23956           - Removed capture code now that Control handles it
23957           - set_SelectionStart now ensures caret is visible
23958
23959 2006-03-16  Jackson Harper  <jackson@ximian.com>
23960
23961         * TrackBar.cs: Debackwards the increment/decrement for handling
23962         mouse clicks on the bar with vertical trackbars.
23963         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
23964         bottom to match MS.
23965
23966 2006-03-16  Mike Kestner  <mkestner@novell.com>
23967
23968         * ListView.cs: make shift/ctrl keyboard and mouse selection 
23969         consistent with the MS control. Fix a bug in
23970         SelectedListViewItemCollection.Clear that was pissing me off for the
23971         better part of a day because the collection was being altered
23972         underneath us as we walked the list.
23973
23974 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
23975
23976         * Control.cs: Not sure how we could miss this so long, but it seems
23977           that MS.Net has Capture set all the way from before calling 
23978           OnMouseDown through sending the mouse events until after
23979           OnMouseUp. This will fix DataGrid's selection being set to end
23980           at the location of the MouseUp.
23981
23982 2006-03-15  Jackson Harper  <jackson@ximian.com>
23983
23984         * BindingContext.cs: Check the binding after its added so that it
23985           can initialize the binding managers and hookup to events.
23986         * Binding.cs: Data members seem to sometimes include rows/cols in
23987           the format Row.Column we now take this into account.
23988           - Hookup to the position changed event so we can update the
23989           control when the position has changed in the data set.
23990         * CurrencyManager.cs: Take into account the row/col naming
23991           convention when creating dataset tables.
23992         * BindingContext.cs: Using a newer better way of storing
23993           datasource/datamember pairs.  Hopefully this better matches MS for
23994           looking up binding managers.
23995
23996
23997 2006-03-15  Jackson Harper  <jackson@ximian.com>
23998
23999         * BindingContext.cs: The currency manager needs the data member
24000         name, if the member is a data set we use the name to find the
24001         correct table.
24002         * CurrencyManager.cs: When creating the list prefer an IList over
24003         an IListSource.
24004         - Attempt to create a DataTable from a DataSet (TODO: might need
24005         some better error checking here, although MS doesn't seem to have much)
24006         - If we have a DataTable create a view and use it as our list.
24007
24008 2006-03-15  Mike Kestner  <mkestner@novell.com>
24009
24010         * ListView.cs: keep a matrix of the icon mode layout to facilitate
24011         keyboard navigation. Support Up/Down/Left/Right selection correctly
24012         for all 4 View modes.
24013         * ListViewItem.cs: add internal row/col fields for icon layouts.
24014
24015 2006-03-15  Jackson Harper  <jackson@ximian.com>
24016
24017         * TabControl.cs: Redraw the tabs when we resize so their newly
24018         calculated sizes are drawn on screen.
24019         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
24020         composite characters.
24021         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
24022         - filter events so that composite characters can be created
24023         patches by peter
24024         * X11Structs.cs: Add XIMProperties enum.
24025
24026 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
24027
24028         * Control.cs (BringToFront, SendToBack): Don't use window or handle
24029           unless it's created
24030
24031 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
24032
24033         * Control.cs (PerformLayout): We don't need to consider visiblity
24034           for anchoring, only for docking. This fixes 'whacky' alignment
24035           in listbox and other controls that use implicit scrollbars after
24036           the previous PerformLayout patch
24037         * ListBox.cs: Switched to use implicit scrollbars
24038           
24039 2006-03-14  Mike Kestner  <mkestner@novell.com>
24040
24041         * ToolBar.cs: 
24042         * VScrollBar.cs:
24043         - chain up the "new event" overrides to base and use
24044         OnEvent to raise them.  Part of fix for bug #76509.
24045
24046 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
24047
24048         * FileDialog.cs: Do not select an item in the parent directory
24049           on backspace
24050
24051 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
24052
24053         * Control.cs (PerformLayout): It would seem that we considered
24054           invisible windows for our layout. Not quite the right thing
24055           to do. Now we don't any longer, thereby fixing bug #76889.
24056
24057 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
24058
24059         * Control.cs (CanFocus): I goofed. A control can have focus 
24060           even though it's not selectable. Made it match MS docs.
24061
24062 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
24063
24064         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
24065           center by default (fixes #76895)
24066         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
24067           all uses of Border3DSides.All with the explicit ORd together
24068           Left|Right|Top|Bottom because I assume that nobody was aware 
24069           that All also implies a center fill. Most places I checked had
24070           a fill right above.
24071         * ProgressBarStyle.cs: Added
24072
24073 2006-03-13  Mike Kestner  <mkestner@novell.com>
24074
24075         * ListView.cs: fix breakage in drag shadow header positioning 
24076         from Peter's csc compilation fix.
24077
24078 2006-03-13  Mike Kestner  <mkestner@novell.com>
24079
24080         * ListView.cs: fix NRE produced by backspacing twice in a focused
24081         FileDialog.
24082
24083 2006-03-13  Mike Kestner  <mkestner@novell.com>
24084
24085         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
24086
24087 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
24088
24089         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
24090           be changed
24091         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
24092           the allowed size before making programmatic size changes
24093
24094 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
24095
24096         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
24097           set, metacity is broken and will still use the emty sizes in 
24098           the struct. (Fix for #77089)
24099
24100 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
24101
24102         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
24103           WindowExStyles and marked both enums as Flags
24104         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
24105           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
24106           to match WindowStyles split
24107         * XplatUIX11.cs:
24108           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
24109           - Updated to match WindowStyles split
24110         * XplatUIWin32.cs:
24111           - Fixed FosterParent creation, was using ExStyle on the Style field
24112             (This should help with Popup focus issues)
24113           - Updated to match WindowStyles split
24114
24115 2006-03-13  Jackson Harper  <jackson@ximian.com>
24116
24117         * MdiWindowManager.cs: Use the system menu height. Fixes some
24118         strange sizing issues.
24119
24120 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
24121
24122         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
24123         * TextBoxBase.cs:
24124           - Scroll to caret after inserting text (#77672)
24125           - Make scroll range one pixel higher, fixes off-by-one error (and
24126             makes underlines visible on the last line)
24127
24128 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
24129
24130         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
24131           the keyboard state from being stuck with keys in 'pressed' state when
24132           focus is switched away via keyboard
24133         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
24134           reset the keyboard if no X11 KeyUp events are expected to come
24135         * X11Structs.cs: Switched type of Visible to bool to match driver
24136
24137 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
24138
24139         * TextControl.cs:
24140           - Switched caret to be just 1 pixel wide, matches MS and looks less
24141             clunky
24142           - Moved caret display 1 pixel down from the top of the control
24143             to improve view
24144           - InsertCharAtCharet: Update the selection start if moving the caret
24145             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
24146           - No longer always creating the caret when the caret methods are
24147             called. Only the actual ShowCaret/HideCaret will do that now
24148           - Only setting caret visible if the owner control has focus
24149           - UpdateView: Added invalidation-shortcut logic for center and right 
24150             aligned text. Previously we'd update all according to the left
24151             logic which caused drawing errors. Also fixed height of invalidated
24152             areas, now properly invalidating the whole area (was off-by-one)
24153           - owner_HandleCreated: Always generate the document when the
24154             handle is created; this ensures that 
24155         * TextBoxBase.cs:
24156           - Fixed situation where caret would disappear under the right
24157             window border, also improved scrolling behaviour on left-
24158             aligned textboxes
24159           - Fixed right-aligned textboxes to have a border to the
24160             right instead of the caret being under the right border
24161         * XplatUIX11.cs:
24162           - Switched from 'nested' to simple visible/not visible tracking 
24163             for caret (part of fix for #77671)
24164           - No longer passing through translated FocusIn/FocusOut messages
24165             since we were notifying too often and the wrong windows. Instead
24166             we just notify our focussed window of receiving or loosing focus
24167         * XplatUIWin32.cs: Switched from 'nested' show/hide 
24168           counting for caret to simple visible yes/no behaviour (part of 
24169           fix for #77671)
24170
24171 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
24172
24173         * Mime.cs: Remove debug code...
24174
24175 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
24176
24177         * MimeGenerated.cs: Removed
24178         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
24179           and subclasses) from /usr/(local/)share/mime and
24180           $HOME/.local/share/mime.
24181
24182 2006-03-10  Jackson Harper  <jackson@ximian.com>
24183
24184         * MdiWindowManager.cs: Recalc the NC area when a window is
24185         maximized/restored so that the menu area is drawn on forms that
24186         don't have a menu.
24187
24188 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
24189
24190         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
24191           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
24192           us to force a WM_NCCALCRESIZE message being sent. This is needed
24193           for MDI maximizing.
24194
24195 2006-03-10  Jackson Harper  <jackson@ximian.com>
24196
24197         * Form.cs: We need to use the ActiveMenu when calculating menu
24198         height.
24199         - Fix nullref when the window manager hasn't been created yet.
24200         * Control.cs: Fix nullref when we try to bring a control to the
24201         front that has no parent.
24202         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
24203         height.
24204         - Add a dummy item to the maximized menu so it always has the
24205         correct height. Otherwise when there are no menus we don't get our
24206         icon and buttons.
24207         
24208
24209 2006-03-10  Jackson Harper  <jackson@ximian.com>
24210
24211         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
24212         stuff.
24213         * Form.cs: Make the window_state internal so the window managers
24214         can track it.
24215         - When an MDI child is maximized let its window manager create the
24216         main menu (so it can add its icon).
24217         - Notify the window managers of state changes
24218         - Let the window manager paint its buttons and handle button
24219         clicks on the menu when it is maximized.
24220         * InternalWindowManager.cs: Move the prev_bounds into the mdi
24221         window manager, since tool windows don't use it, only mdi windows.
24222         - Tell the main form that we don't want it to handle NCPAINT
24223         itself to avoid extra painting.
24224         - Handle clicks on a maximized windows menu.
24225         - Handle window state changes
24226         - Handle minimize/maximize clicks correctly by setting the window state.
24227         * MdiWindowManager.cs: Add an icon menu that (the menu you get
24228         when clicking on the forms icon).
24229         - New method to create a forms maximized menu. This is its normal
24230         menu + an icon.
24231         - Handle window state changes.
24232         - Handle sizing of maximized windows.  Maximized windows are just
24233         drawn bigger then the parent visible area. All controls are still
24234         there, they are just outside the visible area (this matches windows).
24235         * MdiClient.cs: No scrollbars when a child window is maximized.
24236         - Let the children windows figure out how big they should be when
24237         sizing maximized windows.
24238         - Implement a version of ArrangeIconicWindows somewhat similar to
24239         Windows version.  There are some little differences, but I don't
24240         think any app will rely on the layout of minimized mdi windows.
24241
24242 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
24243
24244         * Padding.cs: Several fixes to allow compiling with csc 2.0
24245
24246 2006-03-09  Jackson Harper  <jackson@ximian.com>
24247
24248         * Menu.cs:
24249         * MenuItem.cs: Cheap hack so we can add items to the list without
24250         the events being raised.  This allows adding mdi items during
24251         drawing. TODO: Should probably find a better time to add the items.
24252
24253 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
24254
24255         * ThemeWin32Classic.cs:
24256           - CheckBox_DrawText: Added logic to not wrap if not enough space
24257             is available (Fix for bug #77727)
24258           - RadioButton_DrawText: Added logic not to wrap if not enough
24259             space is available (Fix for bug #77727). Also removed some
24260             duplicate code, DrawString always drawing the regular text
24261             before hitting the if statement.
24262
24263 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
24264
24265         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
24266
24267 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
24268
24269         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
24270         * ContainerControl.cs: Partial implementation of some 2.0 scaling
24271           methods. Moved the new 2.0 properties into alphabetical order with
24272           other properties and added MonoTODO tags
24273
24274 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
24275
24276         * AutoScaleMode.cs: Added. Fix build.
24277
24278 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
24279
24280         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
24281           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
24282           and was requiring premature handle creation for calls from above
24283         * Form.cs, Control.cs: Removed handle arguments from calls to
24284           CalculateClientRect()
24285
24286 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
24287
24288         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
24289           drag_column.column_rect is MarshalByRef and can't be used that way
24290
24291 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
24292
24293         * AxHost.cs: Added deserialization constructor for 
24294           AxHost+State (fixes 77743)
24295
24296 2006-03-09  Mike Kestner  <mkestner@novell.com>
24297
24298         * ListView.cs: 
24299         - Added column drag reordering for details view.
24300         - fixed behavior when mouse is dragged off column and
24301         AllowColumnReorder is false.
24302         * ColumnHeader.cs: clone the format too in Clone.
24303         * Theme.cs: add DrawListViewHeaderDragDetails method.
24304         * ThemeWin32Classic.cs:
24305         - impl new method for drawing drag column shadows and targets.
24306         - support column offset for details mode in DrawListViewItem.
24307
24308 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
24309
24310         * TextControl.cs: Reset the char_count when the document is cleared
24311           (Fixes bug reported on mono-winforms mailing list)
24312
24313 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
24314
24315         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
24316           of calling base we simply process the key ourselves, since both
24317           DefWindowProc and the handled method would set m.Result. 
24318           (Fixes #77732)
24319
24320 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
24321
24322         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
24323           method also moves the window; instead implemented a copy of
24324           Control.ScaleCore (Part of fix for #77456)
24325         * TextBoxBase.cs: 
24326           - Created new CreateGraphicsInternal method to allow providing
24327             a graphics context when no handle is created without triggering
24328             handle creation. (Part of fix for #77456)
24329           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
24330         * TextControl.cs: 
24331           - Switched Constructor to require TextBoxBase instead of Control (to
24332             allow uncast access to CreateGraphicsInternal)
24333           - Safeguarded use of owner.Handle property. No longer accessing it
24334             unless the handle is already created.
24335           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
24336           - Now triggering a recalc when owning control becomes visible
24337         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
24338           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
24339           premature handle creation (Part of fix for #77456)
24340         * Control.cs:
24341           - We now only destroy our double-buffering buffers when the
24342             control is resized or disposed, but not when visibility
24343             changes. (The code even re-created them twice every time)
24344           - Now requiring a redraw of the buffer on visibility changes
24345             (fixes bug 77654 part 2)
24346           - Not passing OnParentVisibleChanged up unless the control
24347             is visible
24348           - CanFocus: Fixed to match MS documentation
24349           - Focus: Fixed to return actual focus state and to check if
24350             setting focus is legal before setting it
24351
24352 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
24353
24354         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
24355           when to draw focus rectangle by looking at parent focus and
24356           selected state instead. This fixes TabPages on Linux sometimes
24357           having none or multiple focus rectangles.
24358         * XplatUIX11.cs (SetFocus): 
24359           - Don't set the focus if the same window already has focus
24360           - Use SendMessage instead of PostMessage (like it's Win32
24361             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
24362             to match MS behaviour
24363         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
24364           are not selectable.
24365
24366 2006-03-07  Jackson Harper  <jackson@ximian.com>
24367
24368         * PictureBox.cs: Revert line I accidently committed last week.
24369
24370 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
24371
24372         * Control.cs: 
24373           - Added new IsRecreating and ParentIsRecreating properties to
24374             allow testing if RecreateHandle has been called on ourselves
24375             or one of our parents
24376           - WndProc(WM_DESTROY): If our control handle is being recreated
24377             we immediately need to create the handle when receiving the
24378             destroy, that way our child windows find a valid parent handle
24379             when they themselves are being recreated upon WM_DESTROY receipt
24380             (fix for bug #77654 part 1)
24381         * XplatUIX11.cs:
24382           - DestroyWindow: WM_DESTROY must be sent to our own window before
24383             notifying any child windows. MS documents that child windows
24384             are still valid when WM_DESTROY is received. (Control now relies on
24385             this behaviour)
24386           - Added some fine-grain debug options
24387
24388 2006-03-06  Jackson Harper  <jackson@ximian.com>
24389
24390         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
24391         box and base calculations off this.
24392         * MdiChildContext.cs:
24393         * MdiWindowManager.cs: Don't need to ensure scrollbars here
24394         anymore.
24395         
24396 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
24397
24398         * Splitter.cs: In situations where the affected control is added
24399           to the parent's control list after the splitter, we would not
24400           populate affected. Now we try populating it on mousedown, if
24401           it's not already set, and force it to be re-set whenever our
24402           parent changes.
24403
24404 2006-03-03  Matt Hargett  <matt@use.net>
24405
24406         * Control.cs: implement Control.Padding
24407         * Padding.cs: -Padding.All returns -1 when constructing with the
24408         implicit default ctor
24409         -Padding.ToString() matches MS.NET
24410         * ContainerControl.cs: implement
24411         ContainerControl.AutoScaleDimensions
24412         * ListControl.cs: implement ListControl.FormattingEnabled
24413         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
24414         * ButtonBase.cs:
24415         * TabPage.cs: Implement UseVisualStyleBackColor.
24416         * PictureBox.cs: Implement PictureBox.InitialImage.
24417
24418 2006-03-03  Mike Kestner  <mkestner@novell.com>
24419
24420         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
24421         event declarations to proxy to base event.
24422         * ListViewItem.cs: update to use ItemControl.
24423         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
24424         * ThemeWin32Classic.cs: update to new ListView theme API and fix
24425         column header label rendering for 0 width columns.
24426
24427 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
24428
24429         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
24430           that causes the control to be created. Fixes #77476.
24431
24432 2006-03-02  Jackson Harper  <jackson@ximian.com>
24433
24434         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
24435         expose_pending.
24436
24437 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
24438
24439         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
24440           passed in for the EventArgs (fixes #77690)
24441
24442 2006-03-01  Jackson Harper  <jackson@ximian.com>
24443
24444         * ScrollBar.cs: Refresh afterbeing resized.
24445
24446 2006-02-28  Mike Kestner  <mkestner@novell.com>
24447
24448         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
24449         Clean up a tracker compile warning.
24450         * MenuItem.cs: add internal PerformPopup method.
24451         [Fixes #77457]
24452
24453 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
24454
24455         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
24456           implicit expose) when the text is set to null
24457
24458 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
24459
24460         * RichTextBox.cs (FlushText): When newline is true, we always
24461           need to split the line, even if no text is on it and we may
24462           never eat newlines. (Fixes #77669)
24463
24464 2006-02-28  Mike Kestner  <mkestner@novell.com>
24465
24466         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
24467         and set Selected instead.
24468         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
24469         collections.
24470
24471 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
24472
24473         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
24474
24475 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
24476
24477         * FontDialog.cs:
24478           - Got rid of the panel. All controls are now directly added to
24479             the dialog form
24480           - It is now possible to set a font with the Font property
24481           - MinSize and MaxSize property do now what they should
24482           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
24483           - Searching and selecting a font with the font textbox works now,
24484             the same applies to the style and size textbox
24485           - Draw the correct 3D border in the example panel
24486           - Fixed a little mem leak (unused fonts didn't get disposed)
24487           - Many other internal updates/rewrites...
24488           - Fix typo
24489
24490 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
24491
24492         * TextControl.cs: 
24493           - InsertRTFFromStream: Added 'number of characters inserted' argument
24494           - set_SelectedRTF: Now using the number of characters to calculate
24495             the new location for the selection and cursor (x/y cannot be used
24496             due to potentially already wrapped text)
24497
24498 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
24499
24500         * TextControl.cs: Added property and implemented means to allow 
24501           disabling recalculation of a document (can be used to speed up
24502           multiple inserts and is needed to make RTF inserts predictable, see
24503           bug #77659)
24504         * RichTextBox.cs: Using the new NoRecalc property of Document to
24505           keep x/y insert locations predictable. Also makes it faster inserting
24506           large chunks of RTF
24507
24508 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
24509
24510         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
24511           it's easier for a child control to handle the other messages without
24512           having to duplicate the special functionality
24513         * TextBoxBase.cs
24514           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
24515             code to handle processing the key ourselves, in order to get 
24516             access to the result of KeyEventArgs.Handled. We now only call 
24517             ProcessKey if they key hasn't been handled already. Fixes #77526.
24518           - set_Text: If null or empty string is given, just clear the 
24519             document. Fixes part of #77526
24520
24521 2006-02-27  Jackson Harper  <jackson@ximian.com>
24522
24523         * SizeGrip.cs: Paint the background color before painting the grip
24524         so things look right.
24525         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
24526
24527 2006-02-27  Mike Kestner  <mkestner@novell.com>
24528
24529         * ListView.cs:
24530           - Restructure layout and invalidation model to remove a ton of
24531           flicker from the control and speed up performance in general.
24532           - Add manual column resize, flickers like crazy, but I already have
24533           some ideas on how I'll fix that. (#76822)
24534           - Merge the three Icon-based views into a single layout method.
24535           - Move item selection interaction logic from the item since 
24536           interaction with the collections is more appropriate to the view.
24537           - Deselection on non-item clicks.
24538         * ListViewItem.cs:
24539           - Encapsulate most of the layout. Add some internal props to trigger
24540           layout.  Move to a model where Items invalidate themselves instead
24541           of just invalidating the whole control every time something changes.
24542           - Invalidate on Text/Caption changes.
24543           - switch to an offset based layout model to avoid having to absolute
24544           position every element on item moves.
24545           - correct checkbox layout to conform to MS layout.
24546         * ThemeWin32Classic.cs:
24547           - refactor some column header drawing code.
24548           - fix string justification for column headers (#76821)
24549           - make SmallIcon labels top justified for compat with MS impl.
24550         * ThemeClearlooks.cs:
24551           - adjust to new ListViewItem internal checkbox bounds api.
24552
24553 2006-02-27  Jackson Harper  <jackson@ximian.com>
24554
24555         * Control.cs:  Change where implicit controls fall in the zorder.
24556         They are now on top of all children.
24557         - Synced AddImplicit code with Add
24558         - Removed unused enumerator.
24559         * SizeGrip.cs: Remove the TODO as its been TODONE.
24560
24561 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
24562
24563         * TextControl.cs(Insert): Combine the last lines unless the insertion
24564           string ends with \n\n, otherwise we leave one line too many (Fixes
24565           something I noticed with the testapp for #77526; the bug itself was
24566           already fixed in the previous checkin)
24567
24568 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
24569
24570         * RichTextBox.cs:
24571           - SelectionColor and SelectionFont methods no longer set absolute
24572             styles. Instead, the keep font or color respectively (This 
24573             resolves a long-standing FIXME in the code)
24574           - When flushing RTF text, the insert code now considers text trailing
24575             behind the insertion point (Fixes the bug where when replacing
24576             the selected text via SelectedRTF the remainder of the line behind 
24577             the selection would stay on the first insertion line)
24578         * TextBoxBase.cs:
24579           - AppendText now updates the selection points after inserting text
24580           - AppendText now ensures that the last tag (sometimes 0-length) of
24581             the document is used for the style information (Fixes part of 
24582             bug #77220)
24583         * TextControl.cs:
24584           - Created new FontDefiniton class to allow describing partial style
24585             changes
24586           - StreamLine() now takes a lines argument, to allow it to decide
24587             whether an encountered zero-length tag is the last in the document
24588             (which must be kept to not loose the font/color contained in it,
24589             for later appends)
24590           - Created Combine() and Split() methods for Marker structs, to 
24591             support marker updates due to reformatted documents (soft line
24592             wraps)
24593           - Implemented Document.CaretTag setter
24594           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
24595             of the last line (Not the cause, but also exposed by bug #77220)
24596           - Added LineTag argument to InsertString method, to allow callers
24597             to force a certain tag to be used (required to force use of the
24598             trailing zero-length tag of a document)
24599           - Now updating markers in Combine(), to avoid stale tag markers
24600           - Added some method descriptions to aid maintenance
24601           - Implemented new FormatText concept, allowing additive/subtractive
24602             formatting by only specifying the components that are to be 
24603             changed. This was needed for resolving the RTB.SelectedColor/
24604             RTB.SelectedFont fixmes
24605           - Added Break() support method to allow breaking up linetags (used
24606             for partial formatting)
24607           - Added GenerateTextFormat() method. It is used for partial 
24608             formatting and allows to generate a full font/color from given
24609             attributes and an existing tag.
24610
24611 2006-02-26  Jackson Harper  <jackson@ximian.com>
24612
24613         * XplatUIX11.cs:  Use the correct caption height.
24614         - Translate hittest coordinates to screen coords to match MS.
24615         * XplatUIWin32.cs: When we create MDI windows we need to reset
24616         some of the style flags, so we get a nice blank window, and can
24617         draw all the decorations ourselves.
24618         - Set a clipping rectangle on the non client paint event, the
24619         window manager drawing code needs one.
24620         * Form.cs: The window manager needs to know when the window state
24621         has been updated.
24622         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
24623         don't need to factor in border and title sizes in these
24624         methods. TODO: Remove the args and fix the call points.
24625         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
24626         properly.
24627         - Let the driver set the cursors.
24628         - Improve active window handling
24629         - Correct sizes for title bars and buttons.
24630         - Match MS drawing better
24631         * MdiWindowManager.cs: We don't need to handle border style
24632         updates specially anymore.
24633         - Check for scrollbars when windows are done moving
24634         - Handle Active properly.
24635         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
24636         correctly. I am spewing the exception though, so we don't hide the
24637         bugs.
24638         
24639 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
24640
24641         * DataGridViewRowPostPaintEventArgs.cs,
24642           DataGridViewCellPaintingEventArgs.cs,
24643           DataGridViewRowCollection.cs,
24644           DataGridViewRowPrePaintEventArgs.cs,
24645           DataGridViewCell.cs: Clear a few warnings and implement a few
24646           exceptions that should be thrown.
24647
24648 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
24649
24650         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
24651           'inheriting' our parent's (non-default) cursor. (Part of
24652            the fix for #77479)
24653
24654 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
24655
24656         * XplatUIX11.cs: Fixed cast to make csc happy
24657
24658 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
24659
24660         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
24661           it's for the client area (part of fix for #77479 and needed
24662           for MDI window cursor handling)
24663         * XplatUIX11.cs
24664           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
24665             the appropriate default cursors and also passing the message
24666             up the parent chain 
24667           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
24668             for non-client areas
24669
24670 2006-02-15  Jackson Harper  <jackson@ximian.com>
24671
24672         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
24673         is a real MDI window
24674
24675 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
24676
24677         * X11DesktopColors.cs: Instead of checking the desktop session
24678           string for "KDE" check if it starts with "KDE"
24679
24680 2006-02-10  Jackson Harper  <jackson@ximian.com>
24681
24682         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
24683         systems).
24684
24685 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
24686
24687         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
24688           errors
24689         * ColorDialog.cs:
24690           - Got rid of the panel. All controls are now directly added to
24691             the dialog form
24692           - Changed to mono coding style
24693
24694 2006-02-10  Jackson Harper  <jackson@ximian.com>
24695
24696         * InternalWindowManager.cs: We don't need the set visibility to
24697         false hack anymore now that peter has written beautiful shutdown
24698         code.
24699
24700 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
24701
24702         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
24703           where already explicitly destroyed
24704
24705 2006-02-10  Jackson Harper  <jackson@ximian.com>
24706
24707         * MdiClient.cs: Handle the case where windows are too high or to
24708         the left and we need scrollbars.
24709
24710 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
24711
24712         * MimeIcon.cs: Added some icons
24713         * FileDialog.cs:
24714           - Fixed bug #77477
24715           - Got rid of the panel. All controls are now directly added to
24716             the dialog form
24717           - Changed to mono coding style
24718           - On Linux "My Computer" and "My Network" will now show some
24719             more usefull information. A new class, MasterMount, gathers
24720             this information from /proc/mount. Updated MWFFileView to make
24721             use of this information
24722           - Fixed a bug that caused FileDialog to crash when
24723             ".recently_used" file had a zero size
24724           - FilterIndex does now what it should
24725           - Some Refactoring
24726         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
24727             FileDialog changes
24728
24729 2006-02-09  Jackson Harper  <jackson@ximian.com>
24730
24731         * ComboBox.cs: Don't touch if null.
24732
24733 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
24734
24735         * Cursor.cs: 64bit safeness fix
24736         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
24737
24738 2006-02-09  Jackson Harper  <jackson@ximian.com>
24739
24740         * Form.cs: If a form is made into an MDI form update the styles so
24741         all the props can get set correctly.
24742         - Kill the mdi_container when we dont need it anymore.
24743         * InternalWindowManager.cs: Add missing NOT
24744
24745 2006-02-08  Jackson Harper  <jackson@ximian.com>
24746
24747         * InternalWindowManager.cs: Respek clipping when drawing MDi
24748         decorations.
24749
24750 2006-02-08  Jackson Harper  <jackson@ximian.com>
24751
24752         * Hwnd.cs: Add bits to track non client expose events.
24753         * XplatUIX11.cs: Track non client expose events on the hwnd. This
24754         gives us a proper invalid rect and will allow for some nice
24755         optimizations with NC client drawing
24756         - MDI windows are children windows, so move their style handling
24757         into the child window block.
24758         * InternalWindowManager.cs: Remove a state reset that was
24759         getting invoked at the wrong time. Fixes managed windows getting
24760         into a 'stuck' captured state.
24761
24762 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
24763
24764         * TextControl.cs (Document.ctor): Now initializing 
24765           selection_anchor. Fixes #77493
24766
24767 2006-02-07  Jackson Harper  <jackson@ximian.com>
24768
24769         * TrackBar.cs: The increment/decrements were backwards.
24770
24771 2006-02-07  Mike Kestner  <mkestner@novell.com>
24772
24773         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
24774         to the instance itself.
24775
24776 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
24777
24778         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
24779           on ulongs and pointers, the size differs between 32bit and 64bit
24780           systems. 
24781
24782 2006-02-07  Mike Kestner  <mkestner@novell.com>
24783
24784         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
24785         for 64 bit platforms to work around a metacity bug. 
24786
24787 2006-02-07  Jackson Harper  <jackson@ximian.com>
24788
24789         * TrackBar.cs: Process the input keys we need, and hookup to
24790         KeyDown instead of using WndProc, so we get key messages.
24791
24792 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
24793
24794         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
24795           machine we're on. 
24796         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
24797           we need to translate the XdndVersion atoms array before sending it
24798
24799 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
24800
24801         * XplatUIX11.cs: 
24802           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
24803             number of bits for the property, not the number of bytes. The
24804             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
24805             but would not crash since it specified 8 bits instead of 4 bits)
24806           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
24807             defined as XID -> long in the C headers)
24808           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
24809             references since those are now IntPtr to begin with
24810           - Switched all Atom.XXX 'int' casts to IntPtr casts
24811           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
24812           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
24813           - Added XChangeActivePointerGrab DllImport (for X11DnD)
24814         * X11Structs.cs:
24815           - Changed 'int' type for Atoms in XEvent structures to IntPtr
24816           - Changed atom in HoverStruct to be IntPtr
24817         * X11DnD.cs:
24818           - Removed local DllImports, switched code to use those from XplatUIX11
24819           - Removed/fixed casts related to the switch of Atom to be a IntPtr
24820
24821 2006-02-06  Mike Kestner  <mkestner@novell.com>
24822
24823         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
24824         method signatures in the import region.  There may still be some
24825         lingering struct marshaling issues, as I didn't drill down into those.
24826         Yet.
24827
24828 2006-02-06  Jackson Harper  <jackson@ximian.com>
24829
24830         * ComboBox.cs: Dont manually set the top_item, this is computed
24831         when the scrollbar position is set.
24832
24833 2006-02-06  Mike Kestner  <mkestner@novell.com>
24834
24835         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
24836         startup crashes on amd64.  There's other fixes needed.  All pinvoke
24837         usage of Atom needs to be mapped to IntPtr for example.  And there are
24838         likely other int/long issues to be addressed.
24839
24840 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
24841
24842         * FileDialog.cs: One more...
24843
24844 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
24845
24846         * FileDialog.cs: Next try
24847
24848 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
24849
24850         * FileDialog.cs: First part of fix for #77464
24851
24852 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
24853
24854         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
24855           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
24856           AcceptButton border drawing.
24857
24858 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
24859
24860         * Form.cs: Moved positioning of form after auto scaling is applied,
24861           otherwise it would possibly use wrong form size.
24862
24863 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
24864
24865         * Control.cs (RecreateHandle): No need to re-create any child
24866           controls, the child windows will get destroyed automatically by
24867           the windowing system or driver, and re-created when the handle
24868           is being accessed the first time. Fixes #77456
24869         * Form.cs: No longer setting the form to closing if the handle is 
24870           being recreated. This seems like the right thing to do, don't
24871           have a bug or testcase for this, though.
24872
24873 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
24874
24875         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
24876           controls to avoid unwanted side effects
24877
24878 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
24879
24880         * Control.cs: 
24881           - ScaleCore needs to scale the bounds, not the ClientSize of the 
24882             control. Fixes #77416.
24883           - DefaultSize is 0,0 for control
24884         * TextBoxBase.cs: 
24885           - DefaultSize is 100, 20
24886           - SetBoundsCore: Now enforcing the height, no matter if the provided
24887             height is more or less than the preferred one, as long as AutoSize
24888             is on
24889         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
24890
24891 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
24892
24893         * Control.cs:
24894           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
24895             call unless both performLayout is true *and* we have a pending
24896             layout change
24897           - ResumeLayout: MS does not completely nest Suspend and Resume,
24898             they bottom out at 0, fixed our code to match that.
24899           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
24900             SetBoundsCore, we were updating even when we shouldn't. This fixes
24901             swf-anchors mis-anchoring when resizing the app fast and lots.
24902           - UpdateDistances: Now only setting the left and top distance if 
24903             we have a parent and are not suspended, this is based on
24904             a suggestion by Don Edvaldson in bug #77355.
24905           - OnVisibleChanged: Fixed logic when to create the control. We may
24906             not create the control if we have no parent or if it's not visible;
24907             switched to using Visible property instead of is_visible field 
24908             since the property also considers parent states. This fixes a bug
24909             when starting Paint.Net
24910
24911 2006-02-02  Jackson Harper  <jackson@ximian.com>
24912
24913         * Form.cs: If the forms handle hasn't been created yet don't call
24914         into xplatui to make it top most, just set the topmost flag on the
24915         form in CreateParams
24916         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
24917
24918 2006-02-01  Jackson Harper  <jackson@ximian.com>
24919
24920         * ScrollableControl.cs: Refactored the Recalculate method a
24921         little, this wasn't handling all the variants of bottom and right
24922         bars needed to be added and added/removed based on their
24923         counterparts being added/removed (which changes the drawable
24924         size). Also we special case client widths and heights of 0 and
24925         don't add the scrollbar for those.
24926
24927 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
24928
24929         * XplatUIX11.cs: 
24930           - Added method to get AbsoluteGeometry(); currently unused, but might
24931             be used in the future, if we try again to figure out toplevel
24932             coordinates with some more crappy window managers
24933           - Added FrameExtents() method to retrieve the WM set decoration size
24934           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
24935             to deal with at least KDE, FVWM and metacity (Fixes #77092)
24936         * Hwnd.cs: 
24937           - Added whacky_wm tracking var for metacity
24938           - Added logic to have default menu height if the actual menu height
24939             has not yet been calculated (part of fix for #77426)
24940         * Form.cs: Keep track whether client size has been set and re-set 
24941           it if a menu is added/removed afterwards (Fixes #77426)
24942
24943 2006-01-31  Jackson Harper  <jackson@ximian.com>
24944
24945         * Control.cs: When a new Site is set on the component attempt to
24946         pull the AmbientProperties from it.
24947
24948 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
24949
24950         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
24951           in the background of the owning form. Fixes #77332
24952
24953 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
24954
24955         * MimeIcon.cs: Fix for #77409
24956
24957 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
24958
24959         * XplatUIX11GTK.cs: Initial import
24960
24961 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
24962
24963         * FixedSizeTextBox: fixes class signature
24964
24965 2006-01-30  Jackson Harper  <jackson@ximian.com>
24966
24967         * FixedSizeTextBox.cs: New internal class that represents a
24968         textBox that will not be scaled.
24969         * TreeView.cs:
24970         * ComboBox.cs:
24971         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
24972         standard TextBox.
24973                 
24974 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
24975
24976         * XplatUIX11.cs: Retrieve default screen number instead of
24977           assuming 0. Attempted fix for #77318
24978
24979 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
24980
24981         * XplatUIWin32.cs: 
24982           - GetWindowPos: When a window is parented by FosterParent, use 
24983             the desktop instead of FosterParent as the base to get coordinates
24984           - CreateWindow: Don't make FosterParent the parent window for Popups
24985             if we don't want a taskbar entry, Popups automatically don't get one
24986         * Hwnd.cs: Need to call remove to actually remove the key from the
24987           hash table
24988
24989 2006-01-30  Mike Kestner  <mkestner@novell.com>
24990
24991         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
24992
24993 2006-01-30  Jackson Harper  <jackson@ximian.com>
24994
24995         * TreeView.cs:
24996         * TreeNode.cs: Raise events no matter how the treenode is
24997         checked. Patch by Don Edvalson.
24998
24999 2006-01-30  Jackson Harper  <jackson@ximian.com>
25000
25001         * TreeNode.cs: Signature fix.
25002
25003 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
25004
25005         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
25006
25007 2006-01-20  Mike Kestner  <mkestner@novell.com>
25008
25009         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
25010         event forwarding when menus are active.
25011         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
25012         Most of the patch is pdb's with a little rework.
25013
25014 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
25015
25016         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
25017           Removed GetMenuDC and ReleaseMenuDC methods; replaced
25018           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
25019         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
25020         * InternalWindowManager.cs: Added use of PaintEventStart/End to
25021           handling of WM_NCPAINT message, now passing the PaintEventArgs to
25022           the PaintWindowDecorations method
25023         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
25024         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
25025         * MenuAPI.cs: Made tracker window invisible
25026         * XplatUIWin32.cs:
25027           - Removed GetMenuDC and ReleaseMenuDC methods
25028           - Implemented the client=false path for PaintEventStart and
25029             PaintEventEnd
25030
25031 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
25032
25033         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
25034         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
25035           styles
25036         * Form.cs: 
25037           - MaximizeBox, MinimizeBox: Recreate the handle when setting
25038             the style
25039           - CreateParams: Reworked the styles to match MS look'n'feel,
25040             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
25041             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
25042
25043 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
25044
25045         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
25046           window is not mapped, since otherwise every form that's being 
25047           created is considered minimized, which is wrong.
25048         * Form.cs: Catching the exception and returning our internal value
25049           instead
25050
25051 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
25052
25053         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
25054           SetWindowMinMax() to have means to tell the driver about the minimum,
25055           maximum and maximized state window sizes. (Part of the fix for #76485)
25056         * Form.cs:
25057           - Implemented tracking of minimum and maximum window size, now calling
25058             new SetWindowMinMax() driver method to tell the driver (Part of the
25059             fix for #76485)
25060           - Finished handling of WM_GETMINMAXINFO method, now setting all values
25061             (Completes fix for #76485)
25062           - Calling new SetWindowMinMax driver method when the handle for a 
25063             form is created, to make sure the driver knows about it even if
25064             the values have been set before the window was created
25065           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
25066             to avoid messing up our anchoring calculations (partial fix
25067             for #77355)
25068         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
25069         * XplatUIX11.cs:
25070           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
25071           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
25072             (and presumably other freedesktop.org compliant WMs). Left the
25073             assumption unmapped=minimized, needed for SetVisible to work.
25074           - Now setting the window state when creating windows
25075           - Fixed SetVisible to consider/set the window state when mapping
25076             a Form. We cannot set the state before it's mapped, and we cannot
25077             use Form.WindowState once it's mapped (since it would ask the
25078             driver and get 'normal'. Therefore, we grab the state before
25079             mapping, map, and then set state.
25080           - Implmemented SetWindowMinMax method; Metacity does not seem to
25081             honor the ZoomHints, though.
25082         * XplatUIWin32.cs:
25083           - Removed MINMAXINFO (moved to XplatUIStructs)
25084           - Added SetWindowMinMax stub (on Win32 the only way to set that
25085             information is in response to the WM_GETMINMAXINFO message, which
25086             is handled in Form.cs)
25087           - Added logic to SetVisible to set the proper window state when a 
25088             form is made visible (fixes #75720)
25089
25090 2006-01-26  Jackson Harper  <jackson@ximian.com>
25091
25092         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
25093         same way we handle them with Invoke.
25094
25095 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
25096
25097         * Form.cs:
25098           - Added tracking of window state so CreateParams can return
25099             the appropriate style
25100           - Moved setting of WS_CAPTION style in CreateParams to allow
25101             styles without caption
25102         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
25103           control if the TextBox property is accessed. Fixes #77345
25104         * Control.cs:
25105           - get_Created: now uses is_disposed and is_created to determine
25106             return value (suggested by Jackson)
25107           - CreateHandle: No longer exits if the handle is being recreated
25108           - RecreateHandle: If the handle is not yet created call the 
25109             appropriate method to create either control or handle. If the
25110             control is already created CreateHandle will simply exit instead
25111             of just creating the handle
25112         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
25113           now SendMessage WM_DESTROY directly to the control when DestroyWindow
25114           is called.
25115         * XplatUIX11.cs: 
25116           - When DestroyWindow is called, instead of waiting for the 
25117             DestroyNotification from X11, we directly post it to the WndProc
25118             and immediately dispose the hwnd object.
25119             Same applies to DestroyChildWindows, and this obsoletes the
25120             expose_pending tracking. Contrary to Win32 behaviour we destroy our
25121             child windows before our own, to avoid X11 errors.
25122           - Removed the direct sending of WM_PAINT on UpdateWindow
25123         * XplatUIWin32.cs:
25124           - Reworked DoEvents and GetMessage to allow access to internal queue
25125             even when trying non-blocking access to the queue.  Fixes #77335. 
25126             Based on a patch suggestion by Don Edvalson. The new private
25127             GetMessage can now also be used as a backend for a PeekMessage
25128             frontend version.
25129         * XplatUI.cs: Improved debug output for CreateWindow
25130
25131 2006-01-25  Jackson Harper  <jackson@ximian.com>
25132
25133         * Help.cs: Allow param to be null. Patch by Don Edvalson.
25134
25135 2006-01-24  Jackson Harper  <jackson@ximian.com>
25136
25137         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
25138         when we have a MaxDropItems lower then the selected index.
25139
25140 2006-01-24  Jackson Harper  <jackson@ximian.com>
25141
25142         * Control.cs: Don't allow selection of non visible controls, allow
25143         selection of controls without parents.
25144
25145 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
25146
25147         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
25148         * DataGridDrawingLogic.cs: Add editing row only when is necessary
25149
25150 2006-01-23  Jackson Harper  <jackson@ximian.com>
25151
25152         * UpDownBase.cs: Make the textbox handle all the selection and
25153         tabbing. This fixes tabing to updown controls.
25154
25155 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
25156
25157         * TextBoxBase.cs: fixes exception thown the object was null
25158
25159 2006-01-23  Jackson Harper  <jackson@ximian.com>
25160
25161         * ButtonBase.cs: Just use the base CreateParams. They set
25162         visibility and enabled correctly.
25163         * ComboBox.cs:
25164         * TrackBar.cs:
25165         * MonthCalendar.cs: Lets let the base set as much of the
25166         createparams as possible so we don't have duplicate code all over
25167         the place.
25168
25169 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
25170
25171         * ThemeGtk.cs: Added TrackBar and some experimental code to
25172           get double buffering back
25173
25174 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
25175
25176         * DataGrid.cs: Allows row number set internally higher than the last
25177         when creating a new row. Restores the editing functionality.
25178
25179 2006-01-20  Mike Kestner  <mkestner@novell.com>
25180
25181         * MimeIcon.cs: delay Image creation until the icons are accessed
25182         instead of creating 190 scaled images on GnomeHandler startup.
25183
25184 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
25185
25186         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
25187           first call base before processing the event. Fixes #77279
25188
25189 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
25190
25191         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
25192           that the stride for the GDI bitmap would match the stride of
25193           a DIB or a Cursor.
25194
25195 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
25196
25197         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
25198
25199 2006-01-19  Jackson Harper  <jackson@ximian.com>
25200
25201         * ComboBox.cs: Hookup the text controls keydown event so we get
25202         those when the text control has the focus.
25203
25204 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
25205
25206         * Label.cs: Now using the base events instead of defining new ones;
25207           this allows us to just call the base properties without having to
25208           duplicate all base property logic 
25209
25210 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
25211
25212         * Label.cs: A label by default is not a tabstop (Fixes one of our
25213           failing nunit tests)
25214
25215 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
25216
25217         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
25218         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
25219
25220 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
25221
25222         * Cursor.cs: Reimplemented creating cursor bitmaps without using
25223           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
25224           This fixes #77218
25225         * XplatUIWin32.cs: 
25226           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
25227             constructor creates images that can't be saved. Part of the fix
25228             for #76103
25229           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
25230           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
25231             bug fix for handling window state in forms properly)
25232
25233 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
25234
25235         * ThemeGtk.cs: Simplify ScrollBar drawing
25236
25237 2006-01-18  Jackson Harper  <jackson@ximian.com>
25238
25239         * Splitter.cs: Set the default dock style for the splitter control
25240         in the constructor.
25241
25242 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
25243
25244         * ThemeGtk.cs: Corrected StateType and ShadowType for
25245           gtk_paint_box
25246
25247 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
25248
25249         * Control.cs: Make use of Theme.DoubleBufferingSupported
25250         * ThemeGtk.cs:
25251           - Added drawing for flat style buttons
25252           - Added ScrollBar drawing
25253
25254 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
25255
25256         * ThemeClearlooks.cs: Removed some unneeded code.
25257         * ThemeGtk.cs: First part of ThemeGtk enhancements.
25258
25259 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
25260
25261         * LinkLabel.cs: We need to update the hover drawing when
25262           leaving the control as well.
25263
25264 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
25265
25266         * DataGrid.cs: Clicking on non empty areas in the columns
25267            area was giving an exception
25268
25269 2006-01-17  Jackson Harper  <jackson@ximian.com>
25270
25271         * ThemeWin32Classic.cs:
25272         * ListView.cs: Do not draw/clip the headers when the header style
25273         is None.
25274
25275 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
25276
25277         * DataGrid.cs: Fixes 77260
25278         
25279 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
25280
25281         * DataGrid.cs: Clicking on a column on a empty grid was giving
25282           an exception
25283
25284 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
25285
25286         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
25287           or any keypress will crash the grid.
25288
25289 2006-01-17  Mike Kestner  <mkestner@novell.com>
25290
25291         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
25292         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
25293         invisible/previously-visible items.
25294         [Fixes #76909]
25295
25296 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
25297
25298         * ThemeClearlooks.cs:
25299         - Added CL_Draw_Button method; now other theme controls that are 
25300           not derived from button or do not have a button can draw buttons
25301           too
25302         - Updated ComboBox drawing
25303         - Beautified RadioButton drawing
25304         - Corrected drawing of bottom and left tabs
25305         - Beautified DateTimePicker and MonthCalendar
25306         - Added CPDrawButton and CPDrawRadioButton
25307
25308 2006-01-16  Jackson Harper  <jackson@ximian.com>
25309
25310         * ComboBox.cs: Set the initial value of the scrollbar to the
25311         current index. Reduce the numbers of refreshs and IndexOfs called.
25312
25313 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
25314
25315         * FileDialog.cs: When the file listview is focused hitting the
25316           backspace key moves the fileview to the parent directory
25317
25318 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
25319
25320         * Form.cs: 
25321           - Added RecreateHandle call when changing taskbar visibility to 
25322             trigger reparenting in Win32 driver (Fixes #75719)
25323           - If a window has minimize or maximize buttons, it cannot have
25324             a help button
25325         * XplatUIWin32.cs:
25326           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
25327             the toplevel form with FosterParent (A toolwindow not on the
25328             taskbar) (Fixes #75719)
25329           - Made FosterParent a toolwindow
25330
25331 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
25332
25333         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
25334
25335 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
25336
25337         * ToolTip.cs: If SetToolTip is called from a control and the mouse
25338           is currently over that control, make sure that tooltip_window.Text
25339           gets updated
25340
25341 2006-01-13  Mike Kestner  <mkestner@novell.com>
25342
25343         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
25344
25345 2006-01-13  Jackson Harper  <jackson@ximian.com>
25346
25347         * TreeView.cs: On MS GetNodeAt never actually factors in the X
25348         value passed.  Also redraw the selected node when we recieve
25349         focus, so tabbing between trees works correctly.
25350
25351 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
25352
25353         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
25354           ~/.gconf/%gconf-tree.xml, so use
25355           .gconf/desktop/gnome/interface/%gconf.xml
25356
25357 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
25358
25359         * TextControl.cs: Draw text in gray if control is disabled
25360
25361 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
25362
25363         * TreeView.cs: Draw the focus rectangle outside the highlight, to
25364           make sure it's always visible. Fixes #76680.
25365
25366 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
25367
25368         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
25369
25370 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
25371
25372         * PageSetupDialog.cs: Added.
25373         * PrintDialog.cs: Attributes.
25374         * PrintPreviewControl.cs: Updates.
25375         * PrintPreviewDialog.cs: Updates.
25376         
25377 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
25378
25379         * Control.cs: Undid my selection check fix, since it's not needed
25380         * TextBoxBase.cs:
25381           - Now considering the presence of hscroll/vscroll when sizing
25382             vscroll/hscroll respectively. Fixed bug #77077
25383           - Added Left/Up/Down/Right to IsInputKey list to prevent
25384             ContainerControl from stealing them. This fixes what I broke
25385             with my last checkin.
25386
25387 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
25388
25389         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
25390           I finally understand how the property can be set without a setter :-)
25391
25392 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
25393
25394         * Application.cs:
25395           - Switched RunLoop to use static Message.Create to create a 
25396             Message object
25397           - Added PreProcessMessage call in runloop for keyboard events; this
25398             is part of the fix for #77219, I overlooked this originally in the
25399             MSDN doc for PreProcessMessage
25400         * Control.cs:
25401           - Removed call to PreProcessMessage from handling of keyboard 
25402             messages; it's supposed to be done in the message pump
25403           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
25404             per MSDN documentation.
25405           - IsInputChar: All chars are input chars by default; removed the 
25406             parent calling chain, MS does not document that
25407           - PreProcessMessage: If IsInputChar is true, we want to return false
25408             to allow dispatching of the message
25409           - When selecting the next control, now also check that we're not
25410             selecting ourselves again and therefore return a false positive.
25411         * TextBoxBase.cs:
25412           - Tried to match return values for IsInputKey and ProcessDialogKey
25413             to what MS returns; moved processing of our special keys outside
25414             ProcessDialogKey since MS does not seem to return true on those.
25415           - Moved code that previously was in ProcessDialogKey into new private
25416             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
25417           - Reworked handling of WM_CHAR to not have to duplicate code from
25418             Control.cs anymore, instead we simply call down to base.
25419            
25420 2006-01-12  Jackson Harper  <jackson@ximian.com>
25421
25422         * ComboBox.cs: We always need to refresh the text area when
25423         EndUpdate is called. Fixes the combobox in the file dialog.
25424         * Control.cs: Don't create the creator_thread until the controls
25425         handle is created.  Also in InvokeRequired we check if the
25426         creator_thread is null. This gives the effect of InvokeRequired
25427         returning true if the controls handle is not created yet, and
25428         matches MS.
25429
25430 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
25431
25432         * XplatUI.cs:
25433           - Added StartLoop() driver method. This is used to allow drivers to
25434             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
25435             loop for a particular thread
25436           - Added EndLoop() driver method. This is called once the message
25437             pump for the thread is shut down
25438           - Added SupportsTransparency method to allow the driver to indicate
25439             opacity support for windows
25440         * Form.cs:
25441           - Removed TODO attribute, completed AllowTransparency property
25442           - Added documented logic to Opacity
25443         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
25444           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
25445           versions of CompatibleTextRendering
25446         * X11Structs.cs: Added opacity atom to our atom enumeration
25447         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
25448           of a form might be set before it's reparented by the WM, and we need
25449           the opacity value without calling up to Form)
25450         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
25451           SupportsTransparency() driver methods
25452         * Application.cs: Now calling StartLoop and EndLoop driver methods
25453         * XplatUIX11.cs:
25454           - Added opacity atom registration
25455           - Added StartLoop()/EndLoop() methods. They're empty right now but
25456             will need to get implemented when we switch to a per-thread queue
25457           - Implemented SupportsTransparency() method
25458           - Implemented SetWindowTransparency() method
25459           - Added support for setting the opacity value when a window is
25460             reparented (since the opacity needs to be set on the WM frame)
25461         * XplatUIOSX.cs, XplatUIWin32.cs:
25462           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
25463
25464 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
25465
25466         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
25467
25468 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
25469
25470         * FileDialog.cs: Added ToolTip for MWFFileView
25471         * MimeIcon.cs: Rewrote GnomeHandler.
25472           - Get currently used gnome icon theme from
25473             ($HOME)/.gconf/%gconf-tree.xml
25474           - Make use of inherited icon themes
25475           - Support SVG icon themes like Tango via librsvg
25476
25477 2006-01-12  Miguel de Icaza  <miguel@novell.com>
25478
25479         Revert's Jackson's revert which broke 2.0 builds.   Fix both
25480         builds. 
25481         
25482         * Application.cs: Move the use_compatible_text_rendering outside
25483         the NET_2_0 define.  If we ever need to use the
25484         use_compatible_text_rendering on the individual controls they will
25485         access the variable from the common shared code paths.
25486
25487 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
25488
25489         * XplatUI.cs:
25490           - Added more granular debug options
25491           - Added method to print both window text and id
25492           - Switched debug output to use new Window() debug method
25493           - Added IsEnabled() driver method
25494           - Added EnableWindow() driver method
25495         * Form.cs:
25496           - Removed end_modal; no longer needed, new loop handles termination
25497             via 'closing' variable
25498           - If form is modal, setting DialogResult will now initiate loop
25499             termination via 'closing' variable
25500           - Added support for is_enabled/WS_DISABLED to CreateParams
25501           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
25502             does all the work
25503           - Removed code that's now in RunLoop from ShowDialog()
25504           - Added various documented sanity checks to ShowDialog()
25505           - Added handling of WM_DESTROY message; we set 'closing' on getting
25506             the message to indicate the message pump to terminate
25507           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
25508             send by the Application.ExitThread method. (We send the message
25509             to destroy the window after all other events have been
25510             processed through the queue, instead of destroying the handle 
25511             directly)
25512           - Moved code from Close() method to WM_CLOSE handler; added logic
25513             to only send close-related events if the form is not displayed
25514             modal
25515         * Splitter.cs (..ctor): Fixed typo in resource name
25516         * Control.cs:
25517           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
25518             brush now
25519           - set_Cursor: Now only setting calling into XplatUI if the handle for
25520             the control is already created; this avoids implict handle creation
25521             or crashes if it's not created
25522           - set_Enabled: Now setting the enabled state via the new driver method
25523             instead of just tracking it
25524           - CreateParams: Added logic to set WS_DISABLED based on enabled state
25525           - CreateControl: Reordered event firing and method calls to more
25526             closely fire events in the order MS does. Now setting the
25527             enabled state in the driver when creating the control.
25528           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
25529             match MS order
25530         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
25531           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
25532         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
25533         * Hwnd.cs:
25534           - Added tracking of window enabled state (get_Enabled/set_Enabled)
25535           - Added EnabledHwnd property to easily allow a driver to find the
25536             handle of the first enabled window in the parent chain (this is
25537             used by drivers to pass up input events of disabled windows)
25538         * XplatUIDriver.cs: Added IsEnabled() method
25539         * Application.cs:
25540           - Removed crude and obsolete exiting tracking variable
25541           - Removed internal ModalRun(); replaced by RunLoop()
25542           - Implemented private CloseForms() method to allow closing all 
25543             windows owned by a particular (or all) threads
25544           - Exit() now properly closes all windows without forcing the message
25545             pump to quit
25546           - Removed obsolete InternalExit() method
25547           - Changed Run() methods to use new RunLoop() message pump
25548           - Implemented new RunLoop() method for both modal and non-modal forms
25549         * CommonDialog.cs:
25550           - get_CreateParams: Added setting of WS_DISABLED
25551           - Simplified ShowDialog(); now all the work is done in RunLoop(),
25552             invoked via Form.ShowDialog()
25553         * NativeWindow.cs: We don't remove the window from the collection when
25554           the handle is destroyed; there might still be messages for it in the
25555           queue (mainly the resulting WM_DESTROY); instead it will be removed
25556           when Control calls InvalidateHandle in the WM_DESTROY handler
25557         * XplatUIX11.cs:
25558           - CreateWindow: Added logic to handle the WS_DISABLED window style
25559           - EnableWindow: Implemented based on Hwnd.Enabled
25560           - GetMessage: Reset PostQuitState so the method can be called again
25561           - Implemented support for disabled windows (passing messages to the
25562             first enabled parent) in handling all input messages
25563           - Added optimizations for handling Expose events
25564           - Implemeted new driver method IsEnabled()
25565           - Now always resetting paint pending tracking vars when we start paint
25566           - Re-implemented UpdateWindow via just sending a WM_PAINT message
25567         * XplatUIOSX.cs: Added IsEnabled method stub
25568         * XplatUIWin32.cs: Implemented new IsEnabled() method
25569
25570 2006-01-11  Jackson Harper  <jackson@ximian.com>
25571
25572         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
25573         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
25574         variables a little.
25575         * ColorDialog.cs: Clear out the old form before adding the new
25576         panel.  
25577
25578 2006-01-11  Jackson Harper  <jackson@ximian.com>
25579
25580         * X11Dnd.cs: Make sure to add all the text formats when adding
25581         strings to the data object.
25582         * TreeNodeCollection.cs: When adding to a sorted tree we need to
25583         do some redrawing too.  Also change the UpdateNode to an
25584         UpdateBelow so the newly added node gets painted.
25585         
25586 2006-01-11  Miguel de Icaza  <miguel@novell.com>
25587
25588         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
25589         LinkLabel.cs, PropertyGrid.cs: Implement the
25590         UseCompatibleTextRendering property for 2.x
25591
25592         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
25593
25594 2006-01-11  Jackson Harper  <jackson@ximian.com>
25595
25596         * TreeView.cs: Use the property for setting the selected node so
25597         the correct events get raised.
25598         * TreeNode.cs: Update the tree when the fore/back colours of a
25599         node are set.
25600
25601 2006-01-10  Jackson Harper  <jackson@ximian.com>
25602
25603         * TreeView.cs: Allow setting SelectedNode to null.
25604
25605 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
25606
25607         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
25608
25609 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
25610
25611         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
25612
25613 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
25614
25615         * PrintDialog.cs: Added attributes and set default property values.
25616
25617 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
25618
25619         * PrintControllerWithStatusDialog.cs: 
25620         Added PrintControllerWithStatusDialog.
25621
25622 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
25623
25624         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
25625         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
25626
25627 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
25628
25629         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
25630
25631 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
25632
25633         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
25634         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
25635
25636 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
25637
25638         * MimeIcon.cs: Added internal class SVGUtil.
25639
25640 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
25641
25642         * FileDialog.cs: Don't crash if there are two files with the
25643           same name but different locations.
25644
25645 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
25646
25647         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
25648         dates across multiple month grids. Used to not highlight entire 
25649         month, but does now.
25650         
25651 2006-01-06  Jackson Harper  <jackson@ximian.com>
25652
25653         * MonthCalendar.cs: Removed DoEvents call to prevent a running
25654         message loop. Change timer intervals to numbers that seem more
25655         natural.
25656
25657 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
25658
25659         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
25660           object for location info since screen object is now implemented.
25661
25662 2006-01-05  Jackson Harper  <jackson@ximian.com>
25663
25664         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
25665         * AsyncMethodResult.cs: We no longer use a WeakReference for the
25666         AsyncMethodResult, this is because we ALWAYS want the
25667         ManualResetEvent to get set.
25668         * Control.cs: When disposing use an async invoke to call shutdown
25669         code, so that thigns don't block on the finalizer thread.  Also
25670         check if we even have a message loop before trying to send
25671         messages, if we don't then don't bother sending messages.
25672         - No more weak references for async methods
25673         * XplatUIDriver.cs: No more weak references for async methods.
25674
25675 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
25676
25677         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
25678           returns two FontFamily with the same name
25679
25680 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
25681
25682         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
25683           drawing disabled text. Instead using the ColorGrayText color
25684
25685 2006-01-04  Jackson Harper  <jackson@ximian.com>
25686
25687         * TreeNode.cs: redraw the node when its image index is changed.
25688
25689 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
25690
25691         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
25692           time I checked there are no others like it.
25693
25694 2006-01-04  Jackson Harper  <jackson@ximian.com>
25695
25696         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
25697         this gives the behavoir I was looking for.
25698         * Control.cs: Special case Invoking EventHandlers, this matches MS
25699         and fixes part of bug #76326.
25700
25701 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
25702
25703         * ThemeClearlooks.cs, FileDialog.cs:
25704           - Reflect the latest Theme class changes
25705           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
25706             with DateTime
25707             
25708 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
25709
25710         * Theme.cs: Cache UI resource images and resize them if needed
25711
25712 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
25713
25714         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
25715           is called. This fixes the crash in Nexxia when setting the font
25716           attributes in the chat. [However, RTF needs a look-over to make sure
25717           that all SelectionXXX methods handle the special case that selection
25718           is empty and therefore the change must be applied to all text starting
25719           at the cursor/selection start]
25720
25721 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
25722
25723         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
25724           XplatUIOSX.cs: Added SendMessage and PostMessage methods
25725         * X11Keyboard.cs: Switched to new way of calling PostMessage
25726
25727 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
25728
25729         * Theme.cs: Added theme interface for images to allow the theme to
25730           control what images are used for things like FileDialog, MessageBox
25731           icons, etc.
25732         * MessageBox.cs: Now uses the new Theme icon/image interfaces
25733
25734 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
25735
25736         * FileDialog.cs:
25737           - Removed some dead code
25738           - Opening a recently used file does work now
25739           - Small UI enhancements
25740           - Refactoring
25741
25742 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
25743
25744         * FileDialog.cs: Forgot too add __MonoCS__
25745
25746 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
25747
25748         * FileDialog.cs: We are able to read recently used files now let's
25749           go on and write them.
25750
25751 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
25752
25753         * FileDialog.cs: Breathe some life into "last open"/"recently used"
25754           button
25755         * MimeIcon.cs: Do a check for the top level media type also
25756
25757 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
25758
25759         * ThemeClearlooks.cs:
25760           - Added CPDrawStringDisabled
25761           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
25762             some chars if the text doesn't fit into text_rect
25763           - DrawListViewItem: If View = View.LargeIcon center the image;
25764             rewrote the drawing of ListViewItem.Text if View = 
25765             View.LargeIcon
25766
25767 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
25768
25769         * MimeIcon.cs: Use default KDE icon theme if there is no
25770           "48x48" directory for the current icon theme, fixes #77114
25771         * Mime.cs: Disable not working and actually not used code. 
25772         * ThemeWin32Classic.cs:
25773           - Replace "new SolidBrush" in GetControlBackBrush and
25774             GetControlForeBrush with ResPool.GetSolidBrush
25775           - Changed DrawListViewItem from private to protected virtual
25776         * FileDialog.cs:
25777           - Added form.MaximizeBox = true
25778           - Don't throw an exception if there is a broken symbolic link
25779
25780 2005-12-23  Jackson Harper  <jackson@ximian.com>
25781
25782         * TabControl.cs: Give the panels focus, keyboard navigation is
25783         fixed so this works correctly now.
25784         - We need these key events also.
25785         * ToolBar.cs: Remove some of the poor mans double buffering.
25786         
25787 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
25788
25789         * ComboBox.cs: The internal TextBox now returns the focus.
25790
25791 2005-12-23  Jackson Harper  <jackson@ximian.com>
25792
25793         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
25794
25795 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
25796
25797         * Control.cs: Removed debug code
25798         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
25799           implicit children
25800
25801 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
25802
25803         * Control.cs: When creating the control, update the Z-order after
25804           all it's children are created, too. (Fixes nexxia not showing
25805           picturebox bug)
25806
25807 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
25808
25809         * Control.cs: Do not update the anchoring distances if layout is
25810           suspended, instead do it once layout is resumed
25811
25812 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
25813
25814         * Control.cs: 
25815           - After many hours of debugging, for both Jackson and
25816             myself, it turns out that it helps to set the parent of a control
25817             if you want to actually see it onscreen. In the spirit of that
25818             discovery, we're now setting the parent of the control and
25819             it's children when the control's handle is created. This fix
25820             will make Lutz Roeder's Reflector run happily. 
25821           - now just creating the handle instead of the whole control when
25822             getting a graphics context for the control.
25823
25824 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
25825
25826         * ScrollableControl.cs: When calculating the canvas, don't consider
25827           the scrollbar widths. Instead, predict if horizontal scrollbar
25828           will affect canvas when deciding on vertical display and vice versa.
25829
25830 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
25831
25832         * RichTextBox.cs: Set default RTF font for documents that don't
25833           have a font table (Fixes #77076)
25834
25835 2005-12-22  Jackson Harper  <jackson@ximian.com>
25836
25837         * TextBoxBase.cs: It's difficult to do, but you can have an empty
25838         clipboard. This prevents a NullRef in that case.
25839         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
25840         clipboard. PRIMARY is for the currently selected text only. (We
25841         should implement PRIMARY at some point.
25842
25843 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
25844
25845         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
25846           a Unicode function with a structure that was defined in Ansi way.
25847           This fixes #76942.
25848
25849 2005-12-21  Jackson Harper  <jackson@ximian.com>
25850
25851         * StatusBar.cs: Statusbar handles its fore/back colours on it's
25852         on. Because thats how it rolls. (and this avoids it using ambient
25853         colours).
25854         * ThemeWin32Classic.cs: Use the proper back color for filling.
25855         * Menu.cs: Use the system menu bar color for drawing menu
25856         bars. Using the window back color will bring ambient colours into
25857         the picture.
25858
25859 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
25860
25861         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
25862           Bitmaps were created and not disposed.
25863
25864 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
25865
25866         * Control.cs (CreateControl): Don't do anything if the control is
25867           already created, otherwise we'd fire the OnCreated event more than
25868           once
25869
25870 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
25871
25872         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
25873           will always match. Instead return -1. Fixes #76464.
25874
25875 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
25876
25877         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
25878           neither the beginning nor the end of the line (Fixes bug #76479)
25879
25880 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
25881
25882         * Control.cs:
25883           - ControlNativeWindow.ControlFromHandle(): Now handling situation
25884             where handle is invalid
25885           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
25886             instead of slower linear search
25887         * NativeWindow.cs: Don't remove the window from the hashtable until
25888           after the driver has destroyed it (since the driver might use
25889           Control.FromHandle to lookup the control object
25890         * Hwnd.cs: Added DestroyPending property to track if a window is 
25891           already destroyed as far as the driver is concerned and only hasn't
25892           yet notified the control
25893         * XplatUIX11.cs:
25894           - Activate(): Check if the window is still valid before using the 
25895             handle
25896           - Implemented DestroyChildWindow() method to mark child windows as
25897             destroyed when a window is destroyed. This prevents situations 
25898             where we might call an X method based on queued events for a
25899             window that already has been destroyed but we haven't yet pulled
25900             the destroy method from the queue.
25901           - Added a call to the new DestroyChildWindow() method to the drivers
25902             DestroyWindow code. Also now marking the destroyed window itself
25903             as pending
25904
25905 2005-12-20  Jackson Harper  <jackson@ximian.com>
25906
25907         * StatusBar.cs:
25908         * StatusBarPanel.cs: Don't calculate panel sizes on draw
25909         anymore. Just do them when needed, also track the rects of panels
25910         so that we can optimize refreshing more in the future.
25911
25912 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
25913
25914         * ColorDialog.cs: Fixed focus drawing in small color controls
25915
25916 2005-12-19  Jackson Harper  <jackson@ximian.com>
25917
25918         * InternalWindowManager.cs:
25919         * MdiWindowManager.cs: Cleanup some coordinate system changes so
25920         moving windows works properly.
25921
25922 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
25923
25924         * Control.cs: 
25925           - Removed call to InitLayout() from SetBoundsCore(); doc says
25926             it's only called when a control is added to a container
25927           - Split InitLayout logic, moved to separate UpdateDistances() method
25928             since we need to perform those calculations more often than just
25929             when adding the control to a container. (Needed to fix #77022)
25930           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
25931           - Reduced the OnBindingContextChanged events count, don't send them
25932             unless the control is created, we still aren't totally matching
25933             MS, but I can't quite figure out some of their rules
25934
25935 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
25936
25937         * ThemeClearlooks.cs: Corrected distance between ProgressBar
25938           stripes
25939
25940 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
25941
25942         * ThemeClearlooks.cs:
25943           - Updated ProgressBar drawing
25944           - Corrected drawing of ScrollBars and scroll buttons
25945           - Some temporary fixes for minor pixel artefacts
25946
25947 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
25948
25949         * Control.cs:
25950           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
25951             cause events to be sent in the same order as MS does.
25952           - Added ChangeParent() method to trigger various OnXXXChanged events
25953             that need to be fired when a parent changes (This is a reworking
25954             of the patch from r54254, with the X11 errors fixed)
25955           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
25956             since on MS we get OnLayoutChanged events when calling Clear()
25957           - Changed Enabled property to consider parent state as well, if a
25958             parent is not enabled, the control will not be either
25959           - Changed Parent property to simply call Controls.Add() since that
25960             now does all the work required, this way we avoid code duplication
25961           - Threw in a few OnBindingsContextChanged calls to try and match
25962             when MS sends them. We seem to send a few too many, though.
25963           - Added call to CreateControl when adding the control to a parent.
25964             We were never calling CreateControl. Still needs some work, in
25965             some places we treat HandleCreated and ControlCreated as equal, 
25966             which is wrong
25967           - Removed obsolete commented out code from UpdateZOrder()
25968
25969 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
25970
25971         * ThemeClearlooks.cs: Updated TrackBar drawing.
25972
25973 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
25974
25975         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
25976
25977 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
25978
25979         * FileDialog.cs: Add the Help button and the open readonly
25980           checkbox only if needed
25981
25982 2005-12-16  Jackson Harper  <jackson@ximian.com>
25983
25984         * Control.cs: Make sure we have an active menu before trying to
25985         process commands on it. Prevents menu-less forms from crashing
25986         when Alt is pressed.
25987         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
25988         Dieter Bremes.
25989         * RichTextBox.cs: Expand statement to help out gmcs and fix the
25990         2.0 build.
25991
25992 2005-12-16  Jackson Harper  <jackson@ximian.com>
25993
25994         * InternalWindowManager.cs: Don't translate tool windows screen
25995         coordinates. This fixes windows 'bouncing' around when being moved.
25996
25997 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
25998
25999         * TextBoxBase.cs:
26000           - MaxLength now treats 2^31-1 equal to unlimited length (this is
26001             not quite MS compatible, MS uses that number only for single line
26002             and 2^32-1 for multi-line, but I figure it won't hurt keeping
26003             the limit at 2GB)
26004           - Now enforcing the MaxLength limit when entering characters
26005           - Added argument to internal Paste() method to track if it's called
26006             from programatically or via keyboard, since keyboard driven pastes
26007             need to enforce max-length
26008           - Added logic to Paste to only paste as many chars as MaxLength 
26009             allows
26010         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
26011         * TextControl.cs:
26012           - Added Length property to return number of characters in document
26013           - Added private CharCount property which only tracks actual chars
26014             in the document (no linefeeds) and fires event when CharCount
26015             changes
26016           - Added tracking of character count to all methods that alter it
26017           - Added LengthChanged event to allow applications to subscribe
26018             to any changes to the document
26019
26020 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
26021
26022         * TextBox.cs: 
26023           - Removed local password_char field (moved to TextBoxBase)
26024           - Now setting the document's password var when password is
26025             set
26026         * TextBoxBase.cs:
26027           - Added password_char field (needed here so MultiLine can
26028             access it)
26029           - Added logic to MultiLine property setter to set the document's
26030             variable when password display is allowed
26031           - Removed debug code and made some debug code conditional
26032         * TextControl.cs:
26033           - Added RecalculatePasswordLine() method to handle special password
26034             char only lines
26035           - Added PasswordChar property, also added related tracking vars
26036           - Draw() method now uses local text var for grabbing text to draw,
26037             this var is set to line.text unless we're doing password display,
26038             then it is set to the pre-generated all-password-chars line
26039           - Added calling RecalculatePasswordLine() method for password lines
26040
26041 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
26042
26043         * Hwnd.cs: 
26044           - Added Reparented property to allow tracking of Window Manager
26045             reparenting actions (which affect X/Y calculations of toplevel 
26046             windows)
26047           - Made ToString() print window handles in hex
26048         * XplatUIX11.cs:
26049           - AddConfigureNotify(): Now uses reparented state off Hwnd to
26050             determine if X/Y needs offsetting
26051           - AddConfigureNotify(): Fixed offset calculations
26052           - Now adds ReparentNotify messages into the queue
26053           - Now processes ReparentNotify messages and causes a 
26054             WM_WINDOWPOSCHANGED message to be sent upstream if a window
26055             is reparented (as most likely it's X/Y coordinates are changed
26056             due to that)
26057
26058 2005-12-14  Jackson Harper  <jackson@ximian.com>
26059
26060         * XplatUIX11.cs: Tool windows still need to respek focus.
26061
26062 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
26063
26064         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
26065           have a working release
26066
26067 2005-12-13  Jackson Harper  <jackson@ximian.com>
26068
26069         * Form.cs: Update styles after setting the border style regardless
26070         of whether or not the window is using a window manager.
26071
26072 2005-12-13  Jackson Harper  <jackson@ximian.com>
26073
26074         * Form.cs: We now hook into an internal window manager instead of just an
26075         MDI subsystem, this is so we can have properly behaving tool windows.
26076         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
26077         * InternalWindowManager.cs: New internal class that acts as a
26078         window manager for tool windows and as a base for mdi windows.
26079         * MdiWindowManager.cs: New class that acts as a window manager for
26080         mdi windows.
26081
26082 2005-12-12  Jackson Harper  <jackson@ximian.com>
26083
26084         * Control.cs: Updates so we match behavoir for for implicit
26085         controls. Fixes explosions in MDI.
26086
26087 2005-12-12  Jackson Harper  <jackson@ximian.com>
26088
26089         * Control.cs: Implement Invalidate (Region).
26090
26091 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
26092
26093         * Control.cs: 
26094           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
26095             the same events as MS does. MS fires events for each property 
26096             except, for unknown reasons, Cursor, when the control is reparented. 
26097             I can't seem to totally match add/remove since MS also fires some 
26098             VisibleChanged events, which makes no sense. Consolidated the
26099             parenting code into a separate method so it can be called from
26100             both Add and Remove. set_Parent no longer needs any special logic
26101             as it calls the parent's add method which implicitly fires
26102             all events
26103           - Removed some obsolete code and debug output
26104           - Enabled state is inherited from parents, if this is enabled
26105
26106 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
26107
26108         * Form.cs: Removed commented out code
26109
26110 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
26111
26112         * Control.cs:
26113           - Added internal version of Invoke, with additional argument 
26114             indicating if we're calling it from a Dispose() handler. That
26115             way we can avoid BeginInvoke throwing an exception if we're
26116             calling for an already destroyed window.
26117           - Added a dispose argument to BeginInvokeInternal, and made the
26118             check if a valid window handle chain exists conditional on
26119             it not being a dispose call
26120           - Removed code in DestroyHandle to destroy our children. Since we
26121             now handle the WM_DESTROY message we will catch all our children
26122             being destroyed.
26123           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
26124         * Form.cs:
26125           - Added a field to track the application context of the form.
26126           - No need to set closing variable as response to WM_CLOSE, instead
26127             we destroy the window. We also call PostQuitMessage if the form
26128             has an application context (which makes it the main app form,
26129             which, when closed terminates the app)
26130         * XplatUI.cs:
26131           - Dropped Exit() method, it's naming was confusing
26132           - Added PostQuitMessage() which causes GetMessage to return false
26133             once the message queue is empty
26134         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
26135           PostQuitMessage()
26136         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
26137           no longer a valid XplatUI method, but left it in since it's used
26138           internally. Added empty PostQuitMessage() method.
26139         * MenuAPI.cs: Replaced call to Exit() with call to
26140           PostQuitMessage, even though this is probably no longer needed.
26141         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
26142         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
26143         * Application.cs:
26144           - Replaced call to XplatUI.Exit() with PostQuitMessage()
26145           - Removed old debug code that would call XplatUI for exception
26146             display, enabled standard exception handling (Still not enabled
26147             though, until NativeWindow's ExternalExceptionHandler define
26148             is removed
26149         * NativeWindow.cs:
26150           - Added internal method to allow control to update NativeWindow
26151             after a window has been destroyed
26152           - Added handling of already destroyed windows when calling i
26153             DestroyWindow
26154           - Added removal of handle from list on ReleaseHandle
26155         * XplatUIX11.cs:
26156           - Dropped GetMessageResult var and related code
26157           - Added PostQuitState to field to track if PostQuitMessage has been
26158             called
26159           - Dropped Exit() method
26160           - Added PostQuitMessage() method
26161           - GetMessage now will return false if PostQuitState is set and no
26162             more messages are in the queue.
26163           - Expose handler will no longer generate WM_PAINT messages if we are
26164             in PostQuitState since it's very likely any windows have already
26165             been destroyed, and since Hwnd won't get updated until we have
26166             processed the DestroyNotify we'd be causing X errors.
26167         
26168 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
26169
26170         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
26171           Thanks to Mike for pointing out the err of my ways.
26172
26173 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
26174
26175         * Control.cs(PreProcessMessage): Moved menu handling back, but
26176           after all other key handling, to match MS (who handles Menu in
26177           DefWndProc)
26178         * Menu.cs (WndProc): Removed my brainfart
26179
26180 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
26181
26182         * Control.cs(PreProcessMessage): Removed special menu handling 
26183         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
26184
26185 2005-12-07  Mike Kestner  <mkestner@novell.com>
26186
26187         * Control.cs : special case SYSKEYUP so that we can adjust keynav
26188         state according in tracker.
26189         * Menu.cs : promote tracker field to base class and provide a tracker
26190         lookup capability.  Add/Remove shortcuts dynamically if the top menu
26191         has a tracker. Unparent items that are removed from the collection.
26192         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
26193         * Theme*.cs: add always_show_hotkeys field to support configurability
26194         of mnemonic display.  win32 doesn't show mnemonics until Alt is
26195         pressed.
26196
26197 2005-12-07  Jackson Harper  <jackson@ximian.com>
26198
26199         * MdiChildContext.cs: Use Control.ResetCursor.
26200         * Control.cs: ResetCursor needs to set the property so that the
26201         correct XplatUI call gets made.
26202
26203 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
26204
26205         * Control.cs: More fixes to make our key events match MS. We
26206           were not setting the modifier state on KeyData, and we were
26207           not generating any events when Alt was pressed with a key
26208           since handling of WM_SYSxxx was missing for the OnKey methods.
26209
26210 2005-12-07  Jackson Harper  <jackson@ximian.com>
26211
26212         * MdiChildContext.cs: reenable the sizing code.
26213         - When the mouse leaves a window reset its cursor.
26214
26215 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
26216
26217         * ThemeClearlooks.cs: Reflect latest Hwnd changes
26218
26219 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
26220
26221         * Hwnd.cs: Now using the theme 3d bordersize to calculate
26222           widths of Fixed3D borders
26223
26224 2005-12-07  Jackson Harper  <jackson@ximian.com>
26225
26226         * MdiClient.cs: Fix warnings. Earn Mike's love.
26227
26228 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
26229
26230         * ThemeClearlooks.cs:
26231           - Adjusted mouse over button color
26232           - Added first parts of CheckBox drawing
26233           - Added correct color for selected text background
26234           - Fixed ComboBox drawing
26235           - Added CPDrawBorder3D and CPDrawBorder
26236
26237 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
26238
26239         * XplatUIX11.cs: Added call to XBell for AudibleAlert
26240
26241 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
26242
26243         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
26244           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
26245           alert users via sound. We could add an enum arg with different
26246           types of alerts in the future
26247
26248 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
26249
26250         * Control.cs: Fix behaviour problems pointed out by Mike
26251
26252 2005-12-05  Mike Kestner  <mkestner@novell.com>
26253
26254         * StatusBarPanel.cs: add Invalidate method and hook it into all the
26255         prop setters.  Calls parent.Refresh for now, but could be maybe be
26256         optimized with an internal method on StatusBar at some point.
26257         [Fixes #76513]
26258
26259 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
26260
26261         * RichTextBox.cs: Implemented get_SelectionColor
26262
26263 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
26264
26265         * ThemeClearlooks.cs:
26266           - Removed dead code
26267           - Draw black button border only if button is Form.AcceptButton
26268           - Draw correct button color for pressed RadioButton if the mouse 
26269             has entered the button
26270           - Updated ProgressBar drawing!
26271           - Updated CPDrawSizeGrip drawing
26272           - Updated StatusBarPanel drawing
26273
26274 2005-12-05  Mike Kestner  <mkestner@novell.com>
26275
26276         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
26277         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
26278
26279 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
26280
26281         * ThemeClearlooks.cs: Initial check-in, activate with
26282           export MONO_THEME=clearlooks
26283         * ThemeEngine.cs: Added ThemeClearlooks
26284
26285 2005-12-03  Mike Kestner  <mkestner@novell.com>
26286
26287         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
26288         [Fixes #76897]
26289
26290 2005-12-02  Jackson Harper  <jackson@ximian.com>
26291
26292         * Form.cs: If the child form has no menu the default main menu is
26293         used as the active menu.
26294
26295 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
26296
26297         * ListBox.cs: Check if any items exist before trying to resolve 
26298           coordinates into items
26299
26300 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
26301
26302         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
26303           as the second color for the background hatch
26304
26305 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
26306
26307         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
26308         * RichTextBox.cs: FormatText position arguments are 1-based, now making
26309           sure that what we pass to FormatText is always 1-based. Fixes #76885
26310
26311 2005-11-29  Miguel de Icaza  <miguel@novell.com>
26312
26313         * NumericUpDown.cs (EndInit): When we are done initializing,
26314         reflect any updates on the UI.
26315
26316 2005-12-02  Jackson Harper  <jackson@ximian.com>
26317
26318         * ImplicitHScrollBar.cs:
26319         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
26320         their container controls.
26321         * TreeView.cs: Use the new implicit scrollbars.
26322
26323 2005-12-02  Jackson Harper  <jackson@ximian.com>
26324
26325         * TreeView.cs: Make top_node internal so the TreeNodeCollections
26326         can play with it.
26327         * TreeNodeCollection.cs: If we remove the topnode we need to
26328         update topnode to the next node in line.
26329         - When clearing nodes go through the same process as removing
26330         them, so they get depareneted and checked if they are top node.
26331
26332 2005-12-01  Jackson Harper  <jackson@ximian.com>
26333
26334         * TreeView.cs: When imagelists are used the image area is
26335         selectable as well as the text.
26336         - If there are no selected nodes select the first one.
26337         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
26338         so don't do it more then we need to.
26339
26340 2005-12-01  Jackson Harper  <jackson@ximian.com>
26341
26342         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
26343         that arrows can be scaled.
26344
26345 2005-12-01  Jackson Harper  <jackson@ximian.com>
26346
26347         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
26348         fail. Patch by Dieter Bremes
26349
26350 2005-11-30  Jackson Harper  <jackson@ximian.com>
26351
26352         * Form.cs: Property is 2.0 only
26353         * PrintDialog.cs: Signature fix.
26354
26355 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
26356
26357         * TextControl.cs: 
26358           - No longer artificially moves text 2 pixels down (now that we have
26359             borders this is no longer needed)
26360           - Added calcs for left, hanging and right indent
26361
26362 2005-11-23  Mike Kestner  <mkestner@novell.com>
26363
26364         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
26365
26366 2005-11-30  Jackson Harper  <jackson@ximian.com>
26367
26368         * MdiChildContext.cs: Set the cloned menus forms, as these don't
26369         get cloned as part of CloneMenu ().
26370         * Menu.cs: Make sure the parent of the items get set correctly
26371         when they are added.  And the owners are notified of the changes.
26372         * Form.cs: Create an ActiveMenu property, so that when MDI is used
26373         we can change the menu being displayed/handled by the form without
26374         changing the menu assosciated with the form.
26375         - Don't let Mdi children draw/handle menus.
26376         
26377 2005-11-30  Jackson Harper  <jackson@ximian.com>
26378
26379         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
26380         a MenuChanged event. Just to make the API a little more
26381         consistent.
26382         * MainMenu.cs:
26383         * MenuItem.cs: Use the new OnMenuChanged
26384         * MdiChildContext.cs: Handle menu merging.
26385         * Form.cs: Implement MergedMenu.
26386         
26387 2005-11-30  Jackson Harper  <jackson@ximian.com>
26388
26389         * Menu.cs: We were misusing Add. Add goes behind the specified
26390         index according to the docs, and does not replace the specified
26391         index. So I added an Insert method.
26392
26393 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
26394
26395         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
26396           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
26397           is for Jackson
26398         * RichTextBox.cs: Added calls to base for DnD events
26399
26400 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
26401
26402         * TextControl.cs:
26403           - Fixed drag-selection related crash; style fixes
26404           - Implemented undo class
26405             o Implemented method to capture document state for specified
26406               range in document tree
26407             o Implemented method to restore captured document state
26408             o Implemented cursor tracking
26409             o Implemented basic undo stack
26410           - Added undo cursor tracking to methods altering cursor location
26411           - Added undo tracking to selection deletion (still missing
26412             other text-altering hookups)
26413         * RichTextBox.cs:
26414           - Added SelectionLength property
26415           - Implemented CanPaste()
26416           - Implemented Paste()
26417           - Added missing protected methods
26418           - Fixed RTF->Document conversion; now uses font index 0 and color 
26419             index 0 as the default font for the parsed text
26420           - Fixed RTF<->Document font size translation
26421           - Fixed RTF generation, now properly handles cross-tag boundaries
26422             for single line selection
26423           - No longer always appends blank line to generated RTF
26424           - Removed TODOs
26425           - Added missing attributes
26426           - Hooked up undo-related methods
26427         * TextBoxBase.cs:
26428           - Implemented Copy()
26429           - Implemented Paste()
26430           - Implemented Cut()
26431           - Fixed caret mis-behaviour on backspace across line-boundaries
26432
26433 2005-11-29  Jackson Harper  <jackson@ximian.com>
26434
26435         * MdiClient.cs: Add a method for activating mdi children. Very
26436         basic right now. I imagine someday it might need more girth.
26437         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
26438         children windows names are added to the menu item.
26439         * ThemeWin32Classic.cs: Draw the arrow if the item is an
26440         mdilist. This happens regardless of whether or not there are any
26441         mdi windows to see in the list, and according to my tests happens
26442         before the items are even added. Also happens if there isn't even
26443         an mdi client to get windows from.
26444
26445 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
26446
26447         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
26448         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
26449
26450 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
26451
26452         * DataGridTableStyle.cs:
26453           - Create always the styles for the missing columns even if they are
26454             provided by the user (not default table style)
26455         * DataGrid.cs:
26456           - Fixes bug 76770
26457           - Fixes SetDataBinding (always re-attach source)
26458           - Fixes SetNewDataSource (only clear styles if they are not for 
26459             this source)
26460          -  Expands OnTableStylesCollectionChanged to handle style refresh 
26461             and remove properly
26462
26463 2005-11-29  Jackson Harper  <jackson@ximian.com>
26464
26465         * FileDialog.cs: Implement missing bits, remove some dead
26466         code.
26467         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
26468         creation of the panel so that the options set on the dialog are
26469         seen when the panel is created.
26470         * TreeView.cs: raise a click when items are clicked.
26471         
26472 2005-11-29  Jackson Harper  <jackson@ximian.com>
26473
26474         * MdiClient.cs: Pass some signature methods through to base.
26475
26476 2005-11-28  Jackson Harper  <jackson@ximian.com>
26477
26478         * ListView.cs: Raise the click event when items are clicked.
26479
26480 2005-11-28  Jackson Harper  <jackson@ximian.com>
26481
26482         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
26483         a nullref.
26484
26485 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
26486
26487         * ThemeNice.cs: - Removed 1 pixel bitmaps
26488           - Use SmoothingMode.AntiAlias where it makes sense
26489             (ScrollButton arrow for example)
26490           - Enhanced Button focus drawing
26491           - Fixed ComboBox drawing (no artefacts anymore, focus
26492             rectangle is back again, reduced size of ComboButton, etc.)
26493           - Fixed RadioButton focus drawing for Appearence.Button
26494           - Slight ScrollButton redesign
26495           - Some LinearGradientBrush size fixes
26496           - GroupBoxes have now rounded edges
26497           - Fixed StatusBar drawing
26498
26499 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
26500
26501         * ThemeNice.cs: - Remove dead code
26502           - use correct background colors for menus, etc.
26503           - Fake pixel drawing with 1 pixel bitmaps
26504
26505 2005-11-24  Jackson Harper  <jackson@ximian.com>
26506
26507         * MdiClient.cs: Size the scrollbars when resizing the window.
26508         - Resize the maximized windows when the client is resized
26509         * Form.cs: Make the child context available
26510         
26511 2005-11-23  Jackson Harper  <jackson@ximian.com>
26512
26513         * MdiChildContext.cs: Don't size windows if they are maximized.
26514
26515 2005-11-23  Mike Kestner  <mkestner@novell.com>
26516
26517         * ContextMenu.cs: use MenuTracker.
26518         * Control.cs: remove menu handle usage.
26519         * Form.cs: remove menu handle usage.
26520         * Hwnd.cs: remove menu handle usage.
26521         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
26522         motion and clicks to the new Tracker handlers.
26523         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
26524         and handle usage.
26525         * MenuAPI.cs: refactored to combine popup and menubar event handling.
26526         Killed the MENU and MENUITEM data types and associated collections
26527         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
26528         MenuTracker class that exposes the leftovers from the old MenuAPI
26529         static methods. Restructured Capture handling so that only one grab is
26530         done for the entire menu hierarchy instead of handing off grabs to
26531         submenus. Tracker now has an invisible control to Capture when active.
26532         * MenuItem.cs: add sizing accessors, kill Create
26533         and handle usage.
26534         * Theme.cs: remove menu handle and MENU(ITEM) usage.
26535         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
26536         MENU(ITEM). remove menu handle usage, use Menu directly.
26537         * XplatUIDriver.cs: remove menu handle usage.
26538         * XplatUIOSX.cs: remove menu handle usage.
26539         * XplatUIWin32.cs: remove menu handle usage.
26540         * XplatUIX11.cs: remove menu handle usage.
26541
26542 2005-11-22  Jackson Harper  <jackson@ximian.com>
26543
26544         * Hwnd.cs: Don't compute the menu size for
26545         DefaultClientRectangle.
26546         - Reenable menu sizes being computed for GetClienRectangle.
26547         * Form.cs: Remove comment of trechery
26548         
26549 2005-11-22  Jackson Harper  <jackson@ximian.com>
26550
26551         * Hwnd.cs: The adjustments for the menu bar are made when it is
26552         attached to the form.
26553
26554 2005-11-19  Jackson Harper  <jackson@ximian.com>
26555
26556         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
26557         (just like on windows).
26558
26559 2005-11-19  Jackson Harper  <jackson@ximian.com>
26560
26561         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
26562         use real buttons anymore because they are in non client area. The
26563         one TODO here is that I need to somehow invalidate a section of
26564         the non client area.
26565
26566 2005-11-18  Jackson Harper  <jackson@ximian.com>
26567
26568         * Control.cs: Put the enum check back in now that MDI doesnt have
26569         to use this to set border styles.
26570         * Form.cs: Only set mdi child windows borders if the handle has
26571         been created.
26572         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
26573         this directly on to the driver.
26574         - Get the move start position before adjusting for the titlebar
26575         height, this fixes the windows "skipping" when they are first
26576         moved.
26577
26578 2005-11-18  Jackson Harper  <jackson@ximian.com>
26579
26580         * XplatUIX11.cs: Just compute the mdi borders separately as they
26581         don't totally match up with normal form borders.
26582
26583 2005-11-18  Jackson Harper  <jackson@ximian.com>
26584
26585         * Control.cs: Set WS_ styles for borders, so that the driver does
26586         not have to retrieve the control instance to figure out what kind
26587         of borders it should have.
26588         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
26589         driver can know its an mdi child easily.
26590         * XplatUIX11.cs: Get the border styles and whether the window is
26591         MDI from the Styles and ExStyles params instead of having to get a
26592         control. This prevents a chicken and egg problem.       
26593
26594 2005-11-18  Jackson Harper  <jackson@ximian.com>
26595
26596         * MdiClient.cs: Fix typo so scrollbars show up correctly.
26597
26598 2005-11-18  Jackson Harper  <jackson@ximian.com>
26599
26600         * MdiClient.cs: Calculate when to add and remove scrollbars
26601         correctly.
26602         * MdiChildContext.cs: Adjust the y position to take the titlebar
26603         into account.
26604         - No height for FormBorderStyle.None
26605
26606 2005-11-18  Jackson Harper  <jackson@ximian.com>
26607
26608         * Control.cs: Allow non enum values to be used for
26609         InternalBorderStyle.  MDI does this to set a special border style.
26610         - New utility methods for converting points to/from client coords
26611         - Add the newly created control to the Controls collection before
26612         updating its style. This way UpdateStyle can walk the control
26613         heirarchy to find the control if needed.
26614         so I don't need to create a new Point object all the time.
26615         * Form.cs: Let MDI windows handle their border styles.
26616         - Set styles on MDI windows so the correct title style is derived.
26617         * MdiChildContext.cs: Move all the painting and window handling
26618         into the non client area.
26619         - Use correct sizing and put correct buttons on frames based on
26620         the FormBorderStyle.
26621         - Notify the mdi client about scrolling
26622         - Need to handle the buttons ourselves now, because they are all
26623         in non client areas and we can't add controls there.
26624         * MdiClient.cs: Halfway to scrolling, this implementation is
26625         somewhat broken though, we need to check to make sure other
26626         windows aren't causing scrolling before removing the bars. Also
26627         the bars need to be drawn on top, maybe I can switch implicit
26628         controls to be on top.
26629         * Hwnd.cs: caption_height and tool_caption_height are now
26630         properties of an hwnd, this way they can be set by the driver
26631         based on the type of window they are.  In X11 the window manager
26632         handles the decorations so caption_height is zero unless its an
26633         MDI window.
26634         - Add 3 pixel borders for MDI windows (0xFFFF).
26635         - Get rid of some code duplication, have DefaultClientRectanle
26636         just call GetClientRectangle.
26637         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
26638         Hwnd now.
26639         - Set border styles differently for mdi windows.
26640         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
26641         Hwnd now.
26642         
26643 2005-11-15  Mike Kestner  <mkestner@novell.com>
26644
26645         * Menu.cs: when adding an item to the collection, if item is already 
26646         parented, remove it from the parent.
26647
26648 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
26649
26650         * X11DesktopColors.cs: Added KDE support
26651
26652 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
26653
26654         * XplatUIWin32.cs: 
26655           - Clipboard methods now can translate Rtf format
26656           - No longer removes clipboard contents whenever a new format is added
26657             to allow placing multiple formats on the clipboard
26658         * Clipboard.cs: Clipboard now supports getting a IDataObject and
26659           will place all formats contained in it onto the clipboard. Also
26660           now cleans the clipboard before placing a new object onto it
26661         * RichTextBox.cs:
26662           - Implemented set_Rtf
26663           - Implemented set_SelectedRtf
26664           - Created InsertRTFFromStream() method to allow single code base
26665             for all properties and methods that insert RTF into document
26666           - Removed debug output
26667         * TextControl.cs:
26668           - Fixed Delete(int) to fix up line numbers
26669           - Fixed ReplaceSelection to combine start and end line
26670           - Fixed serious DeleteChars bug that would leave the document tree
26671             broken
26672           - Improved DumpTree with several logic checks to detect broken
26673             document trees
26674           - Removed debug lines
26675           - Fixed Caret.WordForward/WordBack moving code, now always also 
26676             updates caret.tag (fixes crash when word-selecting across tag
26677             boundaries via keyboard)
26678           - Added Insert() method for inserting multiline text into documents
26679           - Fixed DeleteChars() calculation errors that would cause a broken
26680             tag chain with multiple tag lines
26681           - DeleteChars() no longer crashes on multi-tag lines if not all tags
26682           - Split() no longer moves caret if split is at caret location
26683           - ReplaceSelection() now updates the cursor and re-displays it
26684           - ReplaceSelection() now uses new Insert() method to avoid code
26685             duplication
26686           - FormatText() can now handle formatting partial lines
26687         * TextBoxBase.cs:
26688           - Append now uses new TextControl.Insert() method (this avoids 
26689             duplicate code)
26690           - Implemented Ctrl-X (Cut) (
26691           - Implemented Ctrl-C (Copy)
26692           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
26693             regeneration when pasting text; roundtripping Copy&Paste within
26694             edit control still fails due to some calculation bugs in GenerateRTF)
26695           - The Delete key will now remove the current selection if it is visible
26696         * TextBox.cs: Removed debug lines
26697         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
26698           driver to be initialized and can't therefore be done via a static ctor)
26699
26700 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
26701
26702         * TextControl.cs: Added backend code for finding char arrays and strings
26703         * TextBoxBase.cs:
26704           - Added mouse wheel scroll support
26705           - Added support for VScroll and HScroll events
26706         * RichTextBox.cs:
26707           - Implemented all seven Find() variants
26708           - Implemented GetCharFromPosition()
26709           - Implemented GetCharIndexFromPosition()
26710           - Implemented GetLineFromIndex()
26711           - Implemented GetPositionFromCharIndex();
26712           - Implemented SaveFile for PlainText and UnicodeText
26713           - Fixed set_Font, now setting a new font applies that font to
26714             the whole document
26715           - Implemented generic Document to RTF converter
26716           - Implemented SaveFile for RichText format (still missing unicode
26717             conversion for non-ansi chars)
26718           - Implemented get_Rtf
26719           - Implemented get_SelectedRtf
26720
26721 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
26722
26723         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
26724           to allow any captures to be released before triggering OnClick. This
26725           way a click handler may capture the mouse without interference.
26726         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
26727           This way we send them even though X may not allow a grab (if the window
26728           isn't visible, for example)
26729
26730 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
26731
26732         * DataGridViewRowEventArgs.cs: DataGridView implementation
26733         * DataGridViewElement.cs: DataGridView implementation
26734         * DataGridViewComboBoxCell.cs: DataGridView implementation
26735         * DataGridViewDataErrorContexts.cs: DataGridView implementation
26736         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
26737         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
26738         * ImageLayout.cs: DataGridView implementation
26739         * DataGridViewComboBoxColumn.cs: DataGridView implementation
26740         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
26741         * DataGridViewSelectionMode.cs: DataGridView implementation
26742         * IDataGridViewEditingControl.cs: DataGridView implementation
26743         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
26744         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
26745         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
26746         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
26747         * DataGridViewColumnSortMode.cs: DataGridView implementation
26748         * DataGridView.cs: DataGridView implementation
26749         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
26750         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
26751         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
26752         * Padding.cs: DataGridView implementation
26753         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
26754         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
26755         * DataGridViewRowEventHandler.cs: DataGridView implementation
26756         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
26757         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
26758         * DataGridViewButtonCell.cs: DataGridView implementation
26759         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
26760         * DataGridViewEditMode.cs: DataGridView implementation
26761         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
26762         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
26763         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
26764         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
26765         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
26766         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
26767         * DataGridViewCellEventHandler.cs: DataGridView implementation
26768         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
26769         * DataGridViewCellStyleConverter.cs: DataGridView implementation
26770         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
26771         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
26772         * DataGridViewColumnEventArgs.cs: DataGridView implementation
26773         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
26774         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
26775         * QuestionEventArgs.cs: DataGridView implementation
26776         * IDataGridViewEditingCell.cs: DataGridView implementation
26777         * DataGridViewTriState.cs: DataGridView implementation
26778         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
26779         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
26780         * DataGridViewColumnCollection.cs: DataGridView implementation
26781         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
26782         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
26783         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
26784         * DataGridViewColumn.cs: DataGridView implementation
26785         * DataGridViewCellBorderStyle.cs: DataGridView implementation
26786         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
26787         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
26788         * DataGridViewRow.cs: DataGridView implementation
26789         * DataGridViewImageCellLayout.cs: DataGridView implementation
26790         * DataGridViewImageCell.cs: DataGridView implementation
26791         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
26792         * DataGridViewCheckBoxCell.cs: DataGridView implementation
26793         * DataGridViewHeaderCell.cs: DataGridView implementation
26794         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
26795         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
26796         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
26797         * DataGridViewTextBoxColumn.cs: DataGridView implementation
26798         * QuestionEventHandler.cs: DataGridView implementation
26799         * DataGridViewCellStyleScopes.cs: DataGridView implementation
26800         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
26801         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
26802         * DataGridViewCell.cs: DataGridView implementation
26803         * DataGridViewCellEventArgs.cs: DataGridView implementation
26804         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
26805         * DataGridViewCellStyle.cs: DataGridView implementation
26806         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
26807         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
26808         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
26809         * TextFormatFlags.cs: DataGridView implementation
26810         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
26811         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
26812         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
26813         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
26814         * DataGridViewButtonColumn.cs: DataGridView implementation
26815         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
26816         * HandledMouseEventArgs.cs: DataGridView implementation
26817         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
26818         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
26819         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
26820         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
26821         * DataGridViewRowCollection.cs: DataGridView implementation
26822         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
26823         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
26824         * DataGridViewHitTestType.cs: DataGridView implementation
26825         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
26826         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
26827         * DataGridViewColumnEventHandler.cs: DataGridView implementation
26828         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
26829         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
26830         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
26831         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
26832         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
26833         * DataGridViewContentAlignment.cs: DataGridView implementation
26834         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
26835         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
26836         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
26837         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
26838         * DataGridViewPaintParts.cs: DataGridView implementation
26839         * DataGridViewCellCollection.cs: DataGridView implementation
26840         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
26841         * DataGridViewImageColumn.cs: DataGridView implementation
26842         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
26843         * DataGridViewElementStates.cs: DataGridView implementation
26844         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
26845         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
26846         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
26847         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
26848         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
26849         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
26850         * DataGridViewRowHeaderCell.cs: DataGridView implementation
26851         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
26852         * DataGridViewTextBoxCell.cs: DataGridView implementation
26853         * DataGridViewBand.cs: DataGridView implementation
26854         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
26855         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
26856         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
26857         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
26858         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
26859         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
26860         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
26861         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
26862         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
26863         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
26864         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
26865
26866 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
26867
26868         * ThemeWin32Classic.cs: 
26869           - Draw the outside focus rectangle around buttons
26870           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
26871             doesn't use end caps for every dash of a line anymore. This
26872             workaround ignores the forecolor.
26873
26874 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
26875
26876         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
26877           endian safe.
26878
26879 2005-11-07  Jackson Harper  <jackson@ximian.com>
26880
26881         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
26882
26883 2005-11-07  Jackson Harper  <jackson@ximian.com>
26884
26885         * ScrollableControl.cs: Calculate the maximum and change vars
26886         (more) correctly so that scrollbars appear as a sensible size.
26887
26888 2005-11-04  Jackson Harper  <jackson@ximian.com>
26889
26890         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
26891         collection.
26892         * TreeView.cs: When the tree is sorted null out the top_node so
26893         that it is recalculated.
26894         - Use dotted lines instead of dashed lines to match MS better.
26895
26896 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
26897
26898         * ListView.cs: 
26899           - Implements key search for items. Useful when browsing files with FileDialog
26900           - When changing view mode or when clear the items reset scrollbar positions
26901
26902 2005-11-04  Jackson Harper  <jackson@ximian.com>
26903
26904         * CurrencyManager.cs: Implement the MetaDataChanged event, the
26905         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
26906         as to what the method may do as there is no real way of creating a
26907         derived CurrencyManager and calling the method. 
26908
26909 2005-11-03  Jackson Harper  <jackson@ximian.com>
26910
26911         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
26912         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
26913         method which seems to just be used internally to refresh the tabs.
26914
26915 2005-11-03  Jackson Harper  <jackson@ximian.com>
26916
26917         * TabControl.cs: Implement the remove method. Fix some broken
26918         comments.
26919
26920 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
26921
26922         * DateTimePicker.cs:
26923           - Added missing DateTimePickerAccessibleObject class
26924           - Added missing events
26925           - Added OnFontChanged method
26926         * Form.cs: Added missing attributes
26927         * TreeView.cs: Added missing attributes
26928
26929 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
26930
26931         * GridItemCollection.cs: Fix signatures
26932
26933 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
26934
26935         * XplatUI.cs: Updated build rev/date
26936         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
26937           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
26938         * Application.cs: Trigger context-specific ExitThread events
26939
26940 2005-11-03  Jackson Harper  <jackson@ximian.com>
26941
26942         * Menu.cs:
26943         * MainMenu.cs:
26944         * GridTableStylesCollection.cs:
26945         * Timer.cs:
26946         * TabPage.cs:
26947         * HelpProvider.cs:
26948         * StatusBar.cs:
26949         * MonthCalendar.cs: Signature fixes
26950
26951 2005-11-03  Jackson Harper  <jackson@ximian.com>
26952
26953         * TreeNodeCollection.cs: Remove should not be virtual.
26954         * TreeView.cs: Implement the last of the missing methods.
26955
26956 2005-11-03  Jackson Harper  <jackson@ximian.com>
26957
26958         * TreeNodeConverter.cs: Implement to get off my class-status back.
26959
26960 2005-11-03  Jackson Harper  <jackson@ximian.com>
26961
26962         * TreeView.cs: Hookup the bits for drag and drop.
26963         * TreeNode.cs: Don't cache the tree_view or index anymore, now
26964         that nodes can be moved from tree to tree easily this just causes
26965         all sorts of problems.
26966         * TreeNodeCollection: Don't need to give treenodes an index and
26967         treeview anymore when they are added, these are computed on the
26968         fly. Also make sure to remove a node before its added.
26969
26970 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
26971
26972         * TextControl.cs:
26973           - Added CaretSelection enum
26974           - Added comparison methods to Marker struct, makes selection code
26975             more readable
26976           - Added SelectionStart and SelectionEnd as 'moveable' location for
26977             the CaretDirection enum and handler
26978           - Added selection_prev variable to track optimized invalidation for
26979             word and line selection
26980           - Added SelectionVisible property (returns true if there is a valid 
26981             selection)
26982           - Switched CaretHasFocus to only display the caret if there is no
26983             visible selection
26984           - Avoiding StringBuilder.ToString to retrieve a single char, instead
26985             using the direct character index; should be much faster
26986           - Added various conditional debug statements
26987           - Fixed invalidation calculation for selection ranges
26988           - Added ExpandSelection() method to support word and line selection
26989           - Switched SetSelectionToCaret to use new Marker compare overloads
26990           - Added central IsWordSeparator() method to determine word 
26991             separators/whitespace and FindWordSeparator() to streamline common
26992             usage of IsWordSeparator()
26993         * TextBoxBase.cs:
26994           - Removed unneeded grabbed variable, it was just mirroring
26995             Control.Capture
26996           - No longer firing OnTextChanged event when Text setter is called,
26997             since the base will fire the event for us
26998           - Added handling of Ctrl-Up/Down selection
26999           - Added handling of Shift-Cursorkey selection
27000           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
27001             words
27002           - Added handling of Shift and Ctrl-Shift-Home/End selection
27003           - Removed some debug output
27004           - Added handling for single/double/tripple-click to place caret/
27005             select word/select line respectively (Fixes bug #76031)
27006           - Added support for drag expansion of word/line selection
27007         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
27008           current selection
27009
27010 2005-11-02  Jackson Harper  <jackson@ximian.com>
27011
27012         * X11Dnd.cs: If the drag is going to and from a MWF window just
27013         copy the data instead of sending it out through the X Selection
27014         mechanism.
27015
27016 2005-11-02  Jackson Harper  <jackson@ximian.com>
27017
27018         * X11Dnd.cs:
27019         * XplatUIX11.cs: When in a drag we don't want motion notify
27020         messages to get passed on to the other controls. This prevents
27021         mouse move messages from showing up in the drag source.
27022
27023 2005-11-02  Jackson Harper  <jackson@ximian.com>
27024
27025         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
27026         the correct button is release to end a drag.
27027         * XplatUIX11.cs: Make the button state internal so the drag system
27028         can access it.  Dragging needs to know about all button releases,
27029         not just left button.
27030
27031 2005-11-02  Miguel de Icaza  <miguel@novell.com>
27032
27033         * Form.cs (Icon): If the icon is null, reset the icon to the
27034         default value. 
27035
27036         * Cursor.cs: When writing the AND-mask bitmap do not include the
27037         number of colors, but hardcode those to two (black and white),
27038         fixes the loading of color cursors (Paint Dot Net).
27039
27040         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
27041         turn off autoscaling.
27042
27043         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
27044
27045 2005-11-02  Jackson Harper  <jackson@ximian.com>
27046
27047         * X11Dnd.cs: Make sure to send a status message if the pointer
27048         enters a control that can not accept a drop, otherwise the cursor
27049         isn't updated correctly. Also tried to compress the lines of code
27050         a bit.
27051
27052 2005-11-02  Jackson Harper  <jackson@ximian.com>
27053
27054         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
27055         set actions correctly.  This isn't perfect as XDND and win32 have
27056         some differences on how you allow actions. I'll clear this up by
27057         adding a path for drag from MWF to MWF windows.
27058         * XplatUIX11.cs: Hook into the dnd system.
27059
27060 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
27061
27062         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
27063         previously shown but they are no longer need it. Very obvious when 
27064         browsing files with FileDialog.
27065
27066 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
27067
27068         * Control.cs: We always need to call OnPaintBackground. We pretty much
27069           ignore AllPaintingInWmPaint and always do the painting there, whether 
27070           it's set or not, since we always ignore the WM_ERASEBKGND message 
27071           (which we don't generate on X11). This fixes #76616.
27072         * Panel.cs: Removed unneeded background painting. This happens properly
27073           in Control.cs already
27074
27075 2005-10-31  Mike Kestner  <mkestner@novell.com>
27076
27077         * Menu.cs: Add items to collection before setting their index.
27078         * MenuItem.cs : add range checking with ArgumentException like MS.
27079         [Fixes #76510]
27080
27081 2005-10-31  Jackson Harper  <jackson@ximian.com>
27082
27083         * ListBox.cs: Invalidate if the area is visible at all not just
27084         contained in the visible rect. Fixes unselection of semi visible
27085         items.
27086
27087 2005-10-31  Jackson Harper  <jackson@ximian.com>
27088
27089         * Control.cs: Consistently name the dnd methods. Make them
27090         internal so we can override them to match some MS behavoir
27091         internally.
27092         * Win32DnD.cs: Use the new consistent names.
27093
27094 2005-10-31  Jackson Harper  <jackson@ximian.com>
27095
27096         * TreeView.cs: Don't draw the selected node when we lose focus.
27097
27098 2005-10-31  Jackson Harper  <jackson@ximian.com>
27099
27100         * X11Dnd.cs: We still need to reset the state even though a full
27101         reset isn't being done, otherwise status's still get sent all over
27102         the place.
27103
27104 2005-10-31  Jackson Harper  <jackson@ximian.com>
27105
27106         * Control.cs: Make the dnd_aware flag internal so the dnd
27107         subsystem can check it. Catch exceptions thrown in dnd handlers to
27108         match MS behavoir.
27109         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
27110         * X11Dnd.cs: Handle null data in the converters. Set the XDND
27111         version when sending a XdndEnter. Use the control/hwnd dnd_aware
27112         flags to reduce the number of dnd enters/status's sent.
27113
27114 2005-10-31  Jackson Harper  <jackson@ximian.com>
27115
27116         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
27117
27118 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
27119
27120         * PictureBox.cs: Fixes 76512
27121
27122 2005-10-28  Jackson Harper  <jackson@ximian.com>
27123
27124         * X11Dnd.cs: Early implementation to support winforms being a drag
27125         source for data on X11. Also restructured the converters so they
27126         can go both ways now.
27127         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
27128         
27129 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
27130
27131         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
27132           clipboard requests
27133
27134 2005-10-27  Jackson Harper  <jackson@ximian.com>
27135
27136         * TreeNode.cs: Implement serialization so my DnD examples will work.
27137
27138 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
27139
27140         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
27141           TreeView.cs: Don't dispose objects that are not owned.
27142           
27143 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
27144
27145         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
27146           should retrieve the current cursor and report that, but XplatUI
27147           doesn't (yet) have an interface for that (and I'm not sure I even
27148           can, on X11)
27149         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
27150           until any message loop processing is done (and the WM_SETCURSOR
27151           replaces the cursor to the proper one)
27152         * XplatUIX11.cs: 
27153           - Fixed override behaviour, we can't set the cursor globally on X11, 
27154             just for our windows.
27155           - Invalidating the System.Drawing X11 display handle when we are
27156             shutting down
27157         * Control.cs: Fix to make csc happy
27158
27159 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
27160
27161         * TextBoxBase.cs: 
27162           - get_Text: Add last line (without trailing newline) to returned
27163             value (Fixes 76212)
27164           - get_TextLength: Count last line in returned length
27165           - ToString: Call Text property instead of duplicating code
27166
27167 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
27168
27169         * ImageList.cs: Dispose ImageAttributes objects.
27170
27171 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
27172
27173         * ImageList.cs: Use attribute constructors with less arguments where
27174           possible.
27175
27176 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
27177
27178         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
27179           Use typeof instead of strings when assembly is referenced. Added
27180           some more comments.
27181
27182 2005-10-21  Jackson Harper  <jackson@ximian.com>
27183
27184         * ListView.cs: Raise a double click event. Also tried to somewhat
27185         fix when the selectedindexchanged event is raised. Its still
27186         broken though.
27187
27188 2005-10-21  Jackson Harper  <jackson@ximian.com>
27189
27190         * TreeView.cs: New method to invalidate the plus minus area of a
27191         node without invalidating the whole node (maybe this can be used
27192         in some more places).
27193         * TreeNodeCollection.cs: When adding to an empty node we need to
27194         invalidate its plus minus area so the little block shows up.
27195         
27196 2005-10-21  Jackson Harper  <jackson@ximian.com>
27197
27198         * TreeView.cs: Make sure that when we invalidate a node the bounds
27199         are big enough to cover the selected box and the focus
27200         rectangle. Use a different colour for the lines connecting nodes
27201         so they show up with all themes.
27202
27203 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
27204
27205         * NativeWindow.cs: Don't call anything that could call into the driver,
27206           we might be on a different thread.
27207
27208 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
27209
27210         * Control.cs(Dispose): Since Dispose might run on a different thread,
27211           make sure that we call methods that could call into the driver via
27212           invoke, to avoid thread issues
27213
27214 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
27215
27216         * XplatUI.cs: Removed finalizer
27217         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
27218           not allowing to be called on the finalizer thread.
27219
27220 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
27221
27222         * ImageList.cs:
27223           - Reverted r51889 and r51891.
27224           - Added ImageListItem class that stores unmodified image items and image
27225             properties required to create list images until handle is created.
27226           - Added AddItem and moved image creation logic to AddItemInternal.
27227           - Added CreateHandle method that creates images based on unmodified items.
27228           - Added DestroyHandle that changes state to store unmodified items.
27229           - Add and AddStrip methods no more create handle.
27230           - ReduceColorDepth has no return value.
27231           - Dispose destroys handle.
27232           - Modified other methods to reflect the above changes.
27233           - Implemented key support.
27234           - Added profile 2.0 members and attributes.
27235           - Added private Reset and ShouldSerialize methods that provide the same
27236             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
27237             them as they are private.
27238           - Added some more comments about implementation details.
27239
27240 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
27241
27242         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
27243
27244 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
27245
27246         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
27247
27248 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
27249
27250         * DataGridDrawingLogic.cs: Fixes column hit calcultation
27251         * DataGridColumnStyle.cs: Remove debug message
27252
27253 2005-10-20  Jackson Harper  <jackson@ximian.com>
27254
27255         * TreeView.cs: We can always get input keys regardless of whether
27256         or not editing is enabled. They are used for navigation.
27257
27258 2005-10-20  Jackson Harper  <jackson@ximian.com>
27259
27260         * TreeNode.cs: Use the viewport rect for determining if a node
27261         needs to be moved for visibility. Don't use Begin/End edit. This
27262         calls a full refresh when its done.
27263         * TreeView.cs: New SetBottom works correctly.  Make the viewport
27264         rect property internal so the treenodes can see it. When clicking
27265         on a node we need to ensure that its visible because it might just
27266         be partly visible when clicked.
27267
27268 2005-10-20  Jackson Harper  <jackson@ximian.com>
27269
27270         * TreeNodeCollection.cs: Remove debug code.
27271
27272 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
27273
27274         * Datagrid.cs: Implements column sorting in Datagrid
27275         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
27276
27277 2005-10-20  Jackson Harper  <jackson@ximian.com>
27278
27279         * TreeNodeCollection.cs: Remove items properly. Update the correct
27280         area after removing them.
27281
27282 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
27283
27284         * Datagrid.cs: Should not call base.OnPaintBackground
27285
27286 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
27287
27288         * XplatUIX11.cs (GetMessage):
27289           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
27290             window instead of client window
27291           - Now properly calculates NC_xBUTTONUP message coordinates
27292           - ScreenToMenu now properly calculates it's coordinates of whole 
27293             window, since menus are in the whole window, not in the client
27294             window
27295           - Added WholeToScreen coordinate translation method
27296
27297 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
27298
27299         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
27300           want to return a message, loop back to the beginning of the function
27301           and grab the next real message to process instead.
27302
27303 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
27304
27305         * Splitter.cs: Properly set limits if no filler control is used
27306
27307 2005-10-19  Jackson Harper  <jackson@ximian.com>
27308
27309         * ColorDialog.cs: Don't show the help button if it is not enabled
27310         instead of disabling it (this is what MS does). Don't create the
27311         panel until the dialog is run, otherwise the vars (such as
27312         ShowHelp) are not set yet.
27313
27314 2005-10-19  Jackson Harper  <jackson@ximian.com>
27315
27316         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
27317         are reduced when adding nodes.
27318         * TreeNode.cs:
27319         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
27320         tree.
27321         
27322 2005-10-19  Jackson Harper  <jackson@ximian.com>
27323
27324         * FolderBrowserDialog.cs: End editing our treeview so the window
27325         actually gets refreshed.
27326
27327 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
27328
27329         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
27330           Obsoleted handling of WM_ERASEBKGND, now always draws our background
27331           inside of WM_PAINT
27332
27333 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
27334
27335         * MenuAPI.cs: Returns after Hidding window
27336         * XplatUIX11.cs: Added TODO found while debugging menu issues
27337
27338 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
27339
27340         * XplatUIX11.cs: Do not re-map the whole window when it's size
27341           becomes non-zero unless it's supposed to be actually visible
27342
27343 2005-10-18  Jackson Harper  <jackson@ximian.com>
27344
27345         * TreeView.cs: We don't need to keep a count anymore.
27346         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
27347         use the Grow method.
27348
27349 2005-10-18  Jackson Harper  <jackson@ximian.com>
27350
27351         * TreeNodeCollection.cs: Insert is not supported on arrays, so
27352         implement it manually here.
27353
27354 2005-10-18  Jackson Harper  <jackson@ximian.com>
27355
27356         * ImageList.cs: Dont kill the list when the colour depth is
27357         changed, just change the colour depth of all the images.
27358         - Same goes for setting the image size. Just resize them all
27359         instead of killing the list softly.
27360
27361 2005-10-18  Jackson Harper  <jackson@ximian.com>
27362
27363         * Control.cs: Don't invalidate empty rectangles.
27364
27365 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
27366
27367         * ListViewItem.cs:
27368           - Adds checked item to the Checked/Item lists (where empty before)
27369           - Do not add items to the Selected lists if they are already present
27370         * ListView.cs:
27371           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
27372           - When deleting items make sure that we delete them for the Selected
27373           and Checked list also.
27374
27375 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
27376
27377         * Label.cs: Dispose objects no longer used
27378         * ThemeWin32Classic.cs: Dispose objects no longer used
27379
27380 2005-10-18  Jackson Harper  <jackson@ximian.com>
27381
27382         * TabControl.cs: Don't refresh the whole control when the tabs are
27383         scrolled, we just need to refresh the tab area.
27384
27385 2005-10-17  Jackson Harper  <jackson@ximian.com>
27386
27387         * XplatUIX11.cs: Compress code a little bit. Only calculate the
27388         after handle when we need it.
27389
27390 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
27391
27392         * Control.cs: When the parent size changes, recalculate anchor 
27393           positions. Partial fix for #76462
27394
27395 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
27396
27397         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
27398           drawn. Fixes #76462
27399
27400 2005-10-17  Jackson Harper  <jackson@ximian.com>
27401
27402         * MonthCalendar.cs: Don't create the numeric up down until our
27403         handle is created. Otherwise our handle is created in the
27404         constructor and we don't know if we are a WS_CHILD or WS_POPUP
27405         yet.
27406
27407 2005-10-17  Jackson Harper  <jackson@ximian.com>
27408
27409         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
27410         correctly.
27411
27412 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
27413         * TreeNode.cs : small logical fix (was using local var instead of field)
27414         
27415 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
27416
27417         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
27418
27419 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
27420
27421         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
27422
27423 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
27424
27425         * Control.cs: 
27426           - Re-implemented anchoring code. My first version was really broken.
27427             This fixes bug #76033. Unlike the previous implementation we will
27428             no longer have round errors since all numbers are calculated from
27429             scratch every time. Removed various anchor-related obsolete vars.
27430           - InitLayout no longer causes layout event firing and layout to be 
27431             performed
27432
27433 2005-10-16  Jackson Harper  <jackson@ximian.com>
27434
27435         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
27436         which was broken).
27437
27438 2005-10-16  Jackson Harper  <jackson@ximian.com>
27439
27440         * TabControl.cs: Remove debug code.
27441
27442 2005-10-16  Jackson Harper  <jackson@ximian.com>
27443
27444         * XEventQueue.cs: Increase the default queue size (very simple
27445         apps needed to grow the queue).
27446         * Hwnd.cs: No finalizer so we don't need to suppress
27447         finalization. Compute the invalid area manually so a new rectangle
27448         does not newto be created.
27449         * ScrollableControl.cs: Don't set any params (otherwise visibility
27450         isn't set correctly).
27451         * MdiChildContext.cs: New constructor takes the mdi parent so it
27452         doesn't have to be computed and avoids a crash on windows. Draw
27453         the window icon properly, and allow the text to be seen.
27454         * Form.cs: Use new MdiChildContext constructor. Make sure the
27455         child context isn't null in wndproc.
27456         * TabControl.cs: Don't set focus, this is muddling keyboard
27457         behavoir. Expand the tab rows when a window size increase will
27458         allow extra tabs to be seen. Don't allow tabs smaller than the
27459         width of a window to be scrolled out of view.
27460         * TreeNode.cs:
27461         * TreeView.cs: Use measure string to calculate a nodes width, the
27462         width is cached and only updated when the text or the font is
27463         changed. Don't check for expand/collapse clicks on the first level
27464         nodes if root lines are disabled.
27465         
27466 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
27467
27468         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
27469
27470 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
27471
27472         * DataGridBoolColumn.cs: fixes warning
27473
27474 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
27475
27476         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
27477         to match more to match more precisely the MS Net behavior
27478
27479 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
27480
27481         * Hwnd.cs: Added field to track if window is mapped
27482         * XplatUIX11.cs: 
27483           - Unmap windows if they become 0-size, re-map when 
27484             they are >0 again; fixes #76035
27485           - Re-set our error handler after initializing X11Desktop
27486             to override any error handlers Gtk or whatever was called
27487             may have set.
27488
27489 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
27490
27491         * CheckedListBox.cs: Removed unused vars
27492         * ListView.cs: Fixed signatures
27493         * RichTextBox.cs: Removed unused vars
27494         * TextBoxBase.cs: Removed unused vars
27495         * XplatUIWin32.cs: Removed unused vars
27496         * XplatUIX11.cs: Removed unused vars
27497         * XplatUI.cs: Updated version and date to latest published
27498
27499 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
27500
27501         * Cursor.cs: Added private .ctor to work around a bug in
27502           resourceset (Thanks to Geoff Norton for the help on this)
27503         * SplitterEventArgs.cs: Made fields accessible so we don't
27504           waste boatloads of objects and can reuse the same one
27505           in Splitter
27506         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
27507           any captions and borders when generating screen coordinates
27508         * Splitter.cs: Reimplemented control, now fully complete, uses
27509           rubberband drawing, supports and obeys all properties, has
27510           proper cursors
27511
27512 2005-10-13  Miguel de Icaza  <miguel@novell.com>
27513
27514         * Form.cs (Form): Setup default values for autoscale and
27515         autoscale_base_size;  Make these instance variables, not static
27516         variables. 
27517
27518         (OnLoad): on the first load, adjust the size of the form.
27519
27520 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
27521
27522         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
27523           width argument to DrawReversibleRectangle()
27524         * XplatUIWin32.cs, XplatUIX11.cs: 
27525           - Implemented width for DrawReversibleRectangle()
27526           - Added logic to DrawReversibleRectangle that recognizes a zero
27527             width or height and only draws a line in that situation
27528         
27529 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
27530
27531         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
27532         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
27533         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
27534           method (it uses our FosterParent window to get a graphics context)
27535
27536 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
27537
27538         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
27539           and SetWindowBackground methods
27540         * Control.cs:
27541           - Setting proper ControlStyles
27542           - We no longer call XplatUI.SetWindowBackground and XplatUI.
27543             EraseWindowBackground, instead we draw the window background
27544             ourselves in PaintControlBackground. This behaviour is
27545             required to match MS, where, when OnPaintBackground is not
27546             called, the background is not drawn.
27547           - Removed unneeded Refresh() in set_Text
27548         * Hwnd.cs: Dropped the ErasePending support. No longer needed
27549         * XplatUIX11.cs:
27550           - Created DeriveStyles method to translate from CreateParams to
27551             FormBorderStyle and TitleStyle, also handles BorderStyle (which
27552             matches FormBorderStyle enum values)
27553           - Consolidated SetHwndStyles and CalculateWindowRect border/title
27554             style calculations into single DeriveStyles method
27555           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
27556             from redrawing the whole window on any resize or expose.
27557           - Fixed CreateWindow usage of SetWindowValuemask. Before not
27558             all styles were applied to our whole/client window appropriately
27559           - Removed EraseWindowBackground() and SetWindowBackground() methods
27560           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
27561             no longer clear/redraw the background through X
27562           - Removed handling of erase_pending bit, we have no use for it (or
27563             so it seems)
27564         * XplatUIOSX.cs:
27565           - Removed generation and handling of WM_ERASEBKGND message
27566           - Removed EraseWindowBackground() and SetWindowBackground() methods
27567           - Removed handling of hwnd.ErasePending flag
27568         * XplatUIWin32.cs:
27569           - Removed EraseWindowBackground() and SetWindowBackground() methods
27570           - We no longer call EraseWindowBackground on PaintEventStart, we 
27571             ignore the fErase flag, erasing is handled in Control in the
27572             background handler
27573         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
27574           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
27575           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
27576           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
27577           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
27578           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
27579           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
27580
27581 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
27582
27583         * PropertyGrids.cs: Get sub properties
27584         * PropertyGridView.cs: Fix drawing code
27585
27586 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
27587
27588         * ListBox.cs: Fixes 76383
27589
27590 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
27591
27592         * DataGridTextBoxColumn.cs: Sets location and size before attachment
27593         * ThemeWin32Classic.cs: Fixes border drawing and calculations
27594         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
27595
27596
27597 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
27598
27599         * ComboBox.cs: Fixes border drawing
27600
27601 2005-10-10  Miguel de Icaza  <miguel@novell.com>
27602
27603         * MimeIcon.cs: Ignore errors if the file can not be read.
27604
27605 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
27606
27607         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
27608          - Fixed border calculations
27609          - Fixed horizontal scrolling in single column listboxes
27610          - Fixed drawing issues
27611
27612 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
27613
27614         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
27615           FormBorderStyle enum
27616         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
27617           code to determine FormBorderStyles from CreateParams
27618         * Form.cs:
27619           - Fixed bug where we'd set the wrong window styles if we were
27620             not creating an MDI window
27621           - Added call to XplatUI.SetBorderStyle when form borders are set
27622         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
27623         * Hwnd.cs:
27624           - Removed obsolete edge style
27625           - Switched from BorderStyle to FormBorderStyle
27626         
27627 2005-10-10  Jackson Harper  <jackson@ximian.com>
27628
27629         * Form.cs: Use the property to get the window handle instead of
27630         accessing it directly. Prevents a null reference exception.
27631
27632 2005-10-10  Jackson Harper  <jackson@ximian.com>
27633
27634         * TreeView.cs: Don't adjust the rect given to DrawString now that
27635         our libgdiplus draws correctly.
27636
27637 2005-10-08  Jackson Harper  <jackson@ximian.com>
27638
27639         * TreeView.cs: Don't try to find the clicked on node if there are
27640         no nodes in the tree.
27641
27642 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
27643
27644         * RichTextBox.cs:
27645
27646           restore
27647
27648 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
27649
27650         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
27651           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
27652           ErrorProvider.cs:
27653           Use ResPool for brushes and dispose System.Drawing objects that
27654           are not used anymore.
27655
27656 2005-10-07  Jackson Harper  <jackson@ximian.com>
27657
27658         * MdiChildContext.cs: Use the new borders instead of drawing them
27659         ourselves.
27660
27661 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
27662
27663         * Calling UpdateBounds after changing the window's BorderStyle 
27664         since the style can change the ClientSize
27665
27666 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
27667
27668         * Control.cs: Made PaintControlBackground virtual
27669         * Panel.cs: Overriding PaintControlBackground instead of using paint
27670           event; paint event method was interfering with 'real' users of the
27671           event.
27672
27673 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
27674
27675         * ThemeWin32Classic.cs: remove border drawing since it is handled
27676         by the base control class now and was causing double border drawing.
27677
27678 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
27679
27680         * Panel.cs: Redraw our background on paint. Not a pretty solution,
27681           but it does seem to match MS behaviour. This fixes bug #75324
27682
27683 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
27684
27685         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
27686           somewhat hackish looking
27687
27688 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
27689
27690         * TextBoxBase.cs:
27691           - We now accept Enter even if AcceptEnter is false, if the containing
27692             form does not have an AcceptButton configured (fixes bug #76355)
27693           - Calculations are now fixed to no longer use Width/Height, but
27694             ClientSize.Width/Height, since we now support borders (this was
27695             a result of fixing borders and therefore bug #76166)
27696           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
27697             true (fixes bug #76354)
27698         
27699 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
27700
27701         * Control.cs: 
27702           - Defaulting BorderStyle and setting it in XplatUI when our window 
27703             is created
27704           - Added enum check to InternalBorderStyle setter
27705         * XplatUIX11.cs: 
27706           - Added drawing of window borders
27707           - Now properly calculates WM decorations offset for toplevel 
27708             windows (fixes bug #74763)
27709         * XplatUIWin32.cs: 
27710           - Implemented BorderStyles for windows (we're letting win32 draw 
27711             the border for us)
27712           - Fixed the signature for SetWindowLong
27713         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
27714           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
27715           setting borders
27716         * UpDownBase.cs: Remove drawing of borders, this is handled by
27717           the driver, outside the client area
27718         * ListView.cs: Removed bogus border calculations. The control should
27719           be oblivious to borders, since those are not part of the client
27720           area. 
27721         * X11DesktopColors.cs: Commented out (currently) unneeded variables
27722         * ThemeWin32Classic.cs: Removed border calculations from ListView 
27723           drawing code
27724
27725 2005-10-06  Jackson Harper  <jackson@ximian.com>
27726
27727         * MdiChildContext.cs: Clear out the old virtual position remove
27728         all the unneeded calls to CreateGraphics.
27729
27730 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
27731
27732         * TextControl.cs: Use proper color for highlighted text; fixes #76350
27733
27734 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
27735
27736         * Form.cs: 
27737           - Added loading and setting of our new default icon
27738           - Only set icon if window is already created
27739
27740 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
27741
27742         * Label.cs:
27743           - Do not explicitly set the foreground and background colors, to
27744             allow inheriting from parents (fixes #76302)
27745           - Use Control's InternalBorderStyle property to deal with borders
27746
27747 2005-10-06  Jackson Harper  <jackson@ximian.com>
27748
27749         * MdiChildContext.cs: Use the new xplatui function to draw a
27750         reversible rect.
27751
27752 2005-10-06  Jackson Harper  <jackson@ximian.com>
27753
27754         * Form.cs: Add the parent before creating the child context cause
27755         we need the parent when setting up the child.
27756
27757 2005-10-06  Jackson Harper  <jackson@ximian.com>
27758
27759         * FolderBrowserDialog.cs: redo the tree population code so a
27760         second thread isn't used. Should be a lot faster and more stable
27761         now.
27762
27763 2005-10-05  Jackson Harper  <jackson@ximian.com>
27764
27765         * TreeView.cs: There are no expand/collapse boxes if the node has
27766         no children.
27767
27768 2005-10-05  Jackson Harper  <jackson@ximian.com>
27769
27770         * X11DesktopColors.cs: Get menu colours for the gtk theme.
27771
27772 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
27773
27774         * FileDialog.cs: Fix InitialDirectory
27775
27776 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
27777
27778         * ComboBox.cs:
27779                 - Fixes changing between styles
27780                 - Fixes simple mode
27781                 - Fixes last item crashing when navigating with keyboard
27782
27783 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
27784
27785         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
27786
27787 2005-10-05  Jackson Harper  <jackson@ximian.com>
27788
27789         * TreeView.cs: If updating the root node do a full refresh.
27790         * TreeNode.cs: The root node should be expanded by default. Also
27791         added a utility prop to tell if we are the root node.
27792         * TreeNodeCollection.cs: Only refresh if the node we are being
27793         added to is expanded. Also added a comment on a potential
27794         optimization.
27795         
27796 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
27797
27798         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
27799           in dispose method. Fixes #76330
27800
27801 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
27802
27803         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
27804
27805                 - Implements vertical and horizontal scrolling using XplatUI
27806                 - Fixes keyboard navagation
27807                 - Fixes EnsureVisible
27808                 - Drawing fixes
27809                 - Handles and draws focus properly
27810
27811
27812 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
27813
27814         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
27815           Create handle. NET_2_0: Destroy handle when value is null.
27816
27817 2005-10-03  Jackson Harper  <jackson@ximian.com>
27818
27819         * ScrollBar.cs: My last scrollbar patch was broken. This is a
27820         revert and a new patch to prevent the thumb from refreshing so
27821         much.
27822
27823 2005-10-02  Jackson Harper  <jackson@ximian.com>
27824
27825         * ScrollBar.cs: Don't update position if it hasn't actually
27826         changed. This occurs when you hold down the increment/decrement
27827         buttons and the thumb gets to the max/min.
27828
27829 2005-10-01  Jackson Harper  <jackson@ximian.com>
27830
27831         * Form.cs:
27832         * MdiChildContext.cs:
27833         * MdiClient.cs: Implement ActiveMdiChild in Form.
27834
27835 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
27836
27837         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
27838
27839 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
27840
27841         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
27842           be found
27843
27844 2005-09-30  Jackson Harper  <jackson@ximian.com>
27845
27846         * ListBox.cs: Don't do a full refresh unless some data has
27847         actually changed.
27848
27849 2005-09-30  Jackson Harper  <jackson@ximian.com>
27850
27851         * TreeView.cs: Make sure that the checkboxes size is factored in
27852         even when not visible.
27853
27854 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
27855
27856         * FileDialog.cs: Fix Jordi's build break
27857
27858 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
27859
27860         * FileDialog.cs: 
27861                 - Use standard the Windows colours for the combobox as espected
27862                 - Dispose objects that use resouces when no longer need them
27863
27864 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
27865
27866         * X11DesktopColors.cs: Initial incomplete implementation
27867         * XplatUIX11.cs: Added call to initialize X11DesktopColors
27868
27869 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
27870
27871         * Theme.cs: 
27872           - Switched Theme color names to match the names defined in 
27873             System.Drawing.KnownColors. Life's hard enough, no need to make 
27874             it harder.
27875           - Added setters to all theme color properties so themes can set
27876             their color schemes. The setters also propagate the color changes
27877             to System.Drawing.KnownColors via reflection
27878         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
27879           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
27880           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
27881           use the new, more logical theme color names
27882         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
27883           post-NT colors
27884         * ThemeWin32Classic.cs:
27885           - Removed code to set the old classic Windows colors. Instead it
27886             now relies on the colors returned by System.Drawing.KnownColors
27887             which will be either modern static colors (Unix) or colors
27888             read from the user's configuration (Win32)
27889           - Updated to use the new, more logical theme color names
27890           - Switched DataGrid drawing code to use only Theme colors instead of
27891             a mix of System.Drawing.KnownColors and Theme colors
27892           - DrawFrameControl(): Removed code that fills the button area, the
27893             fill would overwrite any previous fill done by a control. This
27894             fixes bug #75338 
27895           - Added DrawReversibleRectangle() stub
27896         * ScrollableControl.cs: Set visible state to false when scrollbars
27897           are removed (pdn fix)
27898         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
27899           DrawReversibleRectangle() method to allow drawing primitive 
27900           'rubber bands'
27901         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
27902
27903 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
27904
27905         * ImageList.cs: Add(Icon): Create handle.
27906
27907 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
27908
27909         * ListView.cs:
27910         * ThemeWin32Classic.cs:
27911                 - Fixes detail mode
27912                 - Sets clippings
27913                 - Issues with drawing
27914
27915 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
27916
27917         * ImageList.cs: Moved RecreateHandle back to ImageList as event
27918           source has to be the ImageList.
27919
27920 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
27921
27922         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
27923
27924 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
27925
27926         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
27927
27928 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
27929
27930         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
27931
27932 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
27933         * GridItem.cs: Fixed TODOs
27934         * GridItemCollection.cs: Added ICollection interface
27935
27936 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
27937
27938         * ImageList.cs: Resize icons when needed.
27939
27940 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
27941
27942         * ListViewItem.cs
27943                 - Fixes GetBounds and returns on screen rects
27944         * ListView.cs:
27945                 - Fixes vertical and horzintal scrolling of items
27946         * ThemeWin32Classic.cs:
27947                 - Fixes drawing
27948                 
27949 2005-09-29  Raja R Harinath  <harinath@gmail.com>
27950
27951         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
27952
27953 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
27954
27955         * ImageList.cs: Added comments about handle creation. Moved Handle,
27956           HandleCreated and OnRecreateHandle implementations to ImageCollection.
27957           Handle is created in Add methods.
27958
27959 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
27960          
27961         * DataGridDrawingLogic.cs: 
27962                 - Takes rows into account on Colum calculations
27963                 - Returns the column when clickig
27964         * DataGrid.cs:
27965                 - Fixes default HitTestInfo values
27966                 - Fixes HitTestInfo.ToString
27967                 - Fixes ResetBackColor          
27968         
27969 2005-09-28  Jackson Harper  <jackson@ximian.com>
27970
27971         * MdiChildContext.cs: Obey rules for fixed sized windows (no
27972         sizing or cursor changes). Also added some temp code to draw the
27973         titlebars text (Makes dev a little easier).
27974
27975 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
27976
27977         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
27978
27979 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
27980          
27981         * ListBox.cs: Fixes bug 76253
27982
27983 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
27984
27985         * ImageList.cs: Added comments about the current implementation. Added
27986           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
27987           Format32bppArgb to preserve transparency and can use Graphics.FromImage
27988           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
27989           with Bitmap.LockBits for better performance. Revised the whole file to
27990           match MS.NET behaviour and provide better performance. Non-public
27991           interface members are calling public members even when they throw
27992           NotSupportedException for better maintainability. Moved ColorDepth,
27993           ImageSize, ImageStream and TransparentColor implementations to
27994           ImageCollection for better performance as these properties are not used
27995           by ImageList.
27996         * ImageListStreamer.cs: Added a new internal constructor that takes an
27997           ImageList.ImageCollection and serializes Images based on
27998           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
27999           match ImageList property name.
28000
28001 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
28002
28003         * ListBox.cs: Fixes IndexFromPoint for last item
28004
28005 2005-09-27  Jackson Harper  <jackson@ximian.com>
28006
28007         * Form.cs: Set the position of new mdi children correctly.
28008
28009 2005-09-27  Jackson Harper  <jackson@ximian.com>
28010
28011         * MdiClient.cs: New mdi children need to be added to the back of
28012         the controls collection so the zorder is set correctly. Also add a
28013         count of all the child windows that have been created.
28014
28015 2005-09-27  Jackson Harper  <jackson@ximian.com>
28016
28017         * Form.cs (CreateParams): Setup MDI forms correctly.
28018
28019 2005-09-27  Jackson Harper  <jackson@ximian.com>
28020
28021         * MdiChildContext.cs:
28022         * MonthCalendar.cs:
28023         * UpDownBase.cs:
28024         * ListBox.cs:
28025         * ListView.cs:
28026         * TextBoxBase.cs:
28027         * TreeView.cs:
28028         * ScrollableControl.cs:
28029         * ComboBox.cs: Add implicit controls using the new implict control
28030         functionality in ControlCollection. Also try to block multiple
28031         control add in a suspend/resume layout to save some cycles.
28032         
28033 2005-09-27  Jackson Harper  <jackson@ximian.com>
28034
28035         * Control.cs: Add functionality to the controls collection to add
28036         'implicit controls' these are controls that are created by the
28037         containing control but should not be exposed to the user. Such as
28038         scrollbars in the treeview.
28039         * Form.cs: The list var of the ControlsCollection is no longer
28040         available because of the potential of implicit controls getting
28041         ignored by someone accessing the list directly.
28042
28043 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
28044
28045         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
28046           loose it's parent. (Fixed bug introduced in r49103 when we added
28047           setting the child parent to null on Remove)
28048
28049 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
28050
28051         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
28052         * Splitter.cs: Added missing attributes for BorderStyle property.
28053         * TextBoxBase.cs: Marked Calculate* methods internal.
28054         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
28055         MS.NET.
28056
28057 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
28058          
28059         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
28060
28061 2005-09-25  Jackson Harper  <jackson@ximian.com>
28062
28063         * TreeView.cs: Update the node bounds correctly regardless of
28064         whether the node is visible.
28065
28066 2005-09-25  Jackson Harper  <jackson@ximian.com>
28067
28068         * ImageList.cs: Don't dispose the image after it is added to the
28069         image list. Only reformat images that need to be resized.
28070
28071 2005-09-25  Jackson Harper  <jackson@ximian.com>
28072
28073         * ImageList.cs: Don't set the format when changing the image.
28074
28075 2005-09-25  Jackson Harper  <jackson@ximian.com>
28076
28077         * TreeView.cs: We can't just assume the node has a font. Use the
28078         treeviews font if no node font is available.
28079
28080 2005-09-25  Jackson Harper  <jackson@ximian.com>
28081
28082         * TreeView.cs: Allow the scrollbars to be reset with negative
28083         values.
28084         - Don't add scrollbars to negative sized windows.
28085
28086 2005-09-23  Jackson Harper  <jackson@ximian.com>
28087
28088         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
28089         old Mono.Posix. Also remove some stray code that shouldn't have
28090         been committed.
28091
28092 2005-09-23  Jackson Harper  <jackson@ximian.com>
28093
28094         * TreeView.cs: Attempt at proper sizing of the horizontal
28095         scrollbar. Also don't resize the scrollbars unless they are
28096         visible.
28097
28098 2005-09-23  Jackson Harper  <jackson@ximian.com>
28099
28100         * TreeView.cs: We don't need to expand the invalid area when the
28101         selection changes, as this is all drawn in the node's bounding
28102         box. The area needs to be expanded (previous typo was contracting
28103         it) when the focus rect moves.
28104
28105 2005-09-23  Jackson Harper  <jackson@ximian.com>
28106
28107         * TreeView.cs: Display the selection box under the correct
28108         circumstances. We were rendering white text with no selection box
28109         before.
28110
28111 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
28112
28113         * TextControl.cs(Split): Now updates selection start/end if it points 
28114           into a line that's being split. Fixes a FIXME and bug #75258
28115
28116 2005-09-23  Jackson Harper  <jackson@ximian.com>
28117
28118         * Binding.cs:
28119         * ListControl.cs: Don't use the path when retrieving binding
28120         managers from the binding context. My bat sense tells me that the
28121         path is only used on insertion.
28122
28123 2005-09-22  Jackson Harper  <jackson@ximian.com>
28124
28125         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
28126
28127 2005-09-22  Jackson Harper  <jackson@ximian.com>
28128
28129         * Splitter.cs: There are special cursors used for splitting.
28130         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
28131
28132 2005-09-22  Jackson Harper  <jackson@ximian.com>
28133
28134         * Splitter.cs: Change the cursor appropriately when the splitter
28135         is moused over, so the user actually knows there is a splitter
28136         there.
28137
28138 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
28139
28140        * Label.cs : Fix ToString method to give same output as MS.NET
28141
28142 2005-09-22  Jackson Harper  <jackson@ximian.com>
28143
28144         * TreeView.cs: Create the scrollbars when the handle is created
28145         and add them right away, just make them invisble. Also account for
28146         the window being shrunk vertically to the point that the vert
28147         scrollbar needs to be added.
28148         - Remove some 0.5 adjustments to get around anti aliasing issues.
28149         
28150 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
28151          
28152         * MainMenu.cs: Fixes default value
28153         * MenuItem.cs: Fixes default value
28154
28155 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
28156
28157         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
28158
28159 2005-09-21  Jackson Harper  <jackson@ximian.com>
28160
28161         * Control.cs: Don't try to set the border style on the window if
28162         it hasn't been created. When the window is created the border
28163         style will be used.
28164
28165 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
28166
28167         * Control.cs (Update): Don't call XplatUI if we don't have a
28168           window handle yet
28169
28170 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
28171
28172         * ContainerControl.cs: Instead of throwing an exception, print
28173           a one-time warning about Validate not being implemented
28174         * XplatUIWin32.cs: Removed debug output
28175
28176 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
28177
28178         * Control.cs: Only set XplatUI background if we expect the windowing
28179           system to handle the background. This stops controls that draw their
28180           own background from flickering
28181
28182         * XplatUIX11.cs: Support custom visuals and colormaps for window 
28183           creation. This allows, amongst other things, using MWF X11 windows 
28184           with OpenGL.
28185
28186 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
28187
28188         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
28189           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
28190           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
28191           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
28192           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
28193           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
28194           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
28195           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
28196           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
28197           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
28198           GridColumnStylesCollection.cs, 
28199           IDataGridColumnStyleEditingNotificationService.cs,
28200           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
28201           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
28202           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
28203           TreeNodeCollection.cs, AmbientProperties.cs, 
28204           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
28205           DataObject.cs, ErrorProvider.cs, Splitter.cs,
28206           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
28207           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
28208           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
28209           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
28210           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
28211           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
28212           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
28213           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
28214           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
28215           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
28216           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
28217           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
28218           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
28219           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
28220           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
28221           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
28222           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
28223           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
28224           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
28225           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
28226           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
28227           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
28228           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
28229           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
28230           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
28231           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
28232           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
28233           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
28234           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
28235           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
28236           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
28237           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
28238           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
28239           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
28240           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
28241
28242 2005-09-21  Jackson Harper  <jackson@ximian.com>
28243
28244         * TreeNode.cs: Call Before/After Expand not Collapse when
28245         expanding.
28246
28247 2005-09-20  Jackson Harper  <jackson@ximian.com>
28248         
28249         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
28250
28251 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
28252          
28253         * ListViewItem.cs:
28254                 - Fixes bug 76120
28255                 - Fixes proper storing of subitems
28256                 - Fixes not updated items
28257
28258 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
28259
28260         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
28261           things if our window handle isn't created yet. Also disabled 
28262           debug for TextBoxBase
28263
28264 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
28265
28266         * MenuAPI.cs: Remove filtering of events to allow menu usage
28267
28268 2005-09-20  Miguel de Icaza  <miguel@novell.com>
28269
28270         * Cursor.cs: Allow null to be passed to Cursor.Current.
28271
28272 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
28273
28274         * ThemeWin32Classic.cs:
28275           - Change some private methods/fields to protected virtual so that 
28276             they can be accessed and overriden in derived classes
28277           - First refactoring of some methods. Derived themes now don't 
28278             need to duplicate the complete code from ThemeWin32Classic
28279         * ThemeNice.cs:
28280           - Added nice StatusBar
28281           - Derive from ThemeWin32Classic and not Theme
28282           - Removed duplicate ThemeWin32Classic code
28283
28284 2005-09-20  Miguel de Icaza  <miguel@novell.com>
28285
28286         * Control.cs (ControlCollection.Add): If the value null is passed
28287         the control is ignored. 
28288
28289         Optimize this loop.
28290
28291 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
28292
28293         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
28294           PostQuitMessage state.
28295         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
28296
28297 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
28298
28299         * Application.cs: Our constructor will never get called, move 
28300           initialization to fields; fixes bug #75933
28301
28302 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
28303
28304         * FileDialog.cs :
28305                 - Allow files to be selected properly using file name
28306                 combo box.
28307                 - Add ability to change diretory (absolute / relative)
28308                 using file name combo box.
28309
28310 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
28311          
28312         * ListBox.cs: 
28313                 - Fixes Multicolumn listboxes item wrong calculations
28314                 - Allows to click when only one item is in the listbox
28315                 - Fixes crash when no items using keyboard navigation
28316
28317 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
28318
28319         * ComboBox.cs: Reverted almost everything from the latest patch which
28320           broke ComboBox
28321
28322 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
28323         
28324         * ToolTip.cs:
28325                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
28326         * ComboBox.cs:
28327                 - When DropDownStyle is Simple, it does not show scrollbar 
28328                 to the last item of the list.
28329                 - When DropDownStyle is Simple, it crashed when the list was 
28330                 scrolled down with the down cursor key.
28331                 - Fixed a bug that when DropDownStyle is DropDownList, the 
28332                 selected item was not shown.
28333                 - The position of the selected item was not preserved when 
28334                 the next dropdown happened.
28335         * ThemeWin32Classic.cs:
28336                 - Items were wrapped at the right end.
28337         * CheckedListBox.cs:
28338                 - Fixed Add method
28339         * ListBox.cs:
28340                 - Items should be fully shown.
28341                 - When resizing and vertical scrollbar disappeared, the item 
28342                 of index 0 should be on the top of the list.
28343                 - GetItemRectangle should consider the size of ver. scrollbar
28344         * StatusBar.cs:
28345                 - SizingGrip area should not be allocated when it is not 
28346                 displayed.
28347                 - Now it reflects MinWidth of the containing panel and 
28348                 fixed a crash that happens when its width becomes so small.
28349
28350 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
28351
28352         * CheckedListBox.cs: Fixes bug 76028
28353         * ListBox.cs: Fixes bug 76028
28354
28355 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
28356
28357         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
28358         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
28359
28360 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
28361
28362         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
28363
28364 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
28365
28366         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
28367
28368 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
28369
28370         * IRootGridEntry.cs: Added
28371         * PropertyGridCommands.cs: Added
28372         * PropertiesTab.cs: Added missing methods and property
28373         * PropertyGridView.cs: Made class internal
28374         * PropertyGridTextBox.cs: Made class internal
28375
28376 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
28377
28378         * MimeIcon.cs: Try to check some other environment variables
28379           if "DESKTOP_SESSION" returns "default"
28380
28381 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
28382
28383         * ThemeNice.cs: Corrected background colors (e.g. menus)
28384         * ColorDialog.cs: Use correct background colors for controls
28385
28386 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
28387
28388         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
28389
28390 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
28391
28392         * RichTextBox.cs: Added initial implementation
28393         * lang.cs: Removed. Was accidentally checked in long time ago
28394         * TODO: Removed. Contents were obsolete
28395
28396 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
28397                                                                                 
28398         * PropertiesTab.cs : Added
28399
28400 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
28401                                                                                 
28402         * PropertyGrid.cs : Update
28403         * PropertyGridView.cs : Update
28404         * System.Windows.Forms.resx : Added images and strings
28405
28406 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
28407
28408         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
28409  
28410 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
28411
28412         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
28413           a busy loop right after the Ungrab the X11 display is otherwise 
28414           blocked
28415
28416 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
28417
28418         * ThemeWin32Classic.cs: Optimise the use of clipping
28419
28420 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
28421
28422         * DataGrid.cs: fixes recursion bug
28423
28424 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
28425
28426         * ThemeNice.cs: 
28427           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
28428           - Cleanup
28429
28430 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
28431
28432         * ThemeNice.cs: Draw nice ProgressBars
28433
28434 2005-09-01  Miguel de Icaza  <miguel@novell.com>
28435
28436         * VScrollBar.cs: Another buglet found by Aaron's tool. 
28437
28438         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
28439         bug finder.
28440
28441 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
28442
28443         * ThemeNice.cs:
28444           - Added nicer menu drawing
28445           - Updated DrawTab
28446           - some refactoring
28447
28448 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
28449
28450         * CreateParams.cs (ToString): Made output match MS
28451         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
28452             handle is already created (to avoid forcing window creation)
28453         * XplatUIX11.cs: Set window text to caption after creating window,
28454           in case Text was set before window was created
28455         * Form.cs: Use this.Text instead of a static string as caption
28456
28457 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
28458
28459         * NotifyIcon.cs: Don't set the window to visible; this screws
28460           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
28461           OnPaint without a bitmap)
28462         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
28463           happen very often anyway; we could add the check to the WM_PAINT 
28464           event generation code
28465
28466 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
28467
28468         * NotifyIcon.cs: Fill the icon area with a background color, to 
28469           avoid 'residue' when transparent icons are drawn
28470         * XplatUIX11.cs:
28471           - Handle whole_window == client_window when destroying windows
28472           - SystrayAdd(): Set client_window to whole_window value to
28473             get mouse and other events passed to NotifyIcon
28474
28475 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
28476
28477         * Form.cs: Set proper default for Opacity property
28478         * NotifyIcon.cs:
28479           - ShowSystray(): Don't bother creating telling the OS
28480             about the systray item if no icon is provided
28481           - Now handles WM_NCPAINT message to deal with whole/client window
28482             split
28483           - Create window as visible to not get caught by Expose optimization
28484         * Hwnd.cs: Removed debug message
28485         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
28486           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
28487             PaintEventStart/End to use new client argument
28488         * TextBoxBase.cs:
28489           - Commented out debug messages
28490           - Switched PaintEventStart/End to use new client argument
28491         * XplatUI.cs: Added client window bool to PaintEventStart()/
28492           PaintEventEnd() calls, to support drawing in non-client areas
28493         * XplatUIDriver.cs: 
28494           - Added client window bool to PaintEventStart()/PaintEventEnd() 
28495             calls, to support drawing in non-client areas
28496           - Added conditional compile to allow using MWF BeginInvoke 
28497             on MS runtime
28498         * XplatUIX11.cs:
28499           - Added some conditional debug output
28500           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
28501             whole/client window split
28502           - Implemented handling of client argument to PaintEventStart()/End()
28503         * Control.cs:
28504           - Throw exception if BeginInvoke() is called and the window handle
28505             or one of the window's parent handles is not created
28506           - Added conditional compile to allow using MWF BeginInvoke on
28507             MS runtime
28508           - get_Parent(): Only sets parent if handle is created. This avoids
28509             forcing window handle creation when parent is set.
28510           - Now fires Layout and Parent changed events in proper order
28511           - Switched to use Handle instead of window.Handle for Z-Order setting,
28512             the get_Parent() patch above causes us to possibly get null for 'window'
28513           - Implemented handling of client argument to PaintEventStart()/End()
28514           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
28515             default handling)
28516           - Now sends a Refresh() to all child windows when Refresh() is called
28517
28518 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
28519
28520         * Form.cs: Added (non-functional) Opacity property
28521         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
28522
28523 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
28524         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
28525           use export MONO_THEME=nice to activate it.
28526           Currently supported controls:
28527           - Button
28528           - ComboBox
28529           - ScrollBar
28530           - TabControl (TabAlignment.Top only, other will follow)
28531         * ThemeEngine.cs: Add theme nice
28532         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
28533           if enabled
28534
28535 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
28536
28537         * Splitter.cs: Resize docked control and its neighbor.
28538
28539 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
28540         -- Making Windows with Menus layout correctly --
28541         * Form.cs : The first leg of the fix
28542                 Menu setter - adjust Client Size as needed to make space for the menu
28543                 SetClientSizeCore - doesn't call base version to be able to pass the 
28544                         menu handle to XplatUI.CalculateWindowRect
28545         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
28546         * XplatUIX11.cs: The critical second leg of the fix
28547                 GetWindowPos needs to use a recalculated client_rect
28548                 so that resizing the window doesn't break layout of child controls. 
28549                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
28550                 Lots of \t\n killed
28551
28552 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
28553
28554         * Label.cs: Now properly recalculates width and height on Font and Text
28555           changes if AutoSize is set
28556
28557 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
28558         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
28559
28560 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
28561
28562         * ImageList.cs: Makes ToString method compatible with MS
28563
28564 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
28565
28566         * MenuAPI.cs: fixes bug 75716
28567
28568 2005-08-11 Umadevi S <sumadevi@novell.com>
28569         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
28570
28571 2005-08-11 Umadevi S <sumadevi@novell.com>
28572         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
28573
28574 2005-08-10  Umadevi S <sumadevi@novell.com>
28575         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
28576
28577 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
28578
28579         * Menu.cs: fixes bug 75700
28580         * MenuAPI.cs: fixes navigation issues
28581
28582 2005-08-09  Umadevi S <sumadevi@novell.com>
28583         * CheckedListBox.cs - simple fix for GetItemChecked.
28584
28585 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
28586
28587         * ComboBox.cs: Serveral fixes
28588         * ListBox.cs: Serveral fixes
28589
28590 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
28591
28592         * ComboBox.cs: Fixes FindString methods and GetItemHeight
28593         * ListBox.cs: Fixes FindString methods
28594
28595 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
28596
28597         * DataGrid.cs: fixes bugs exposed by new tests
28598
28599 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
28600
28601         * Mime.cs: Compile Mono assembly references only if compiling
28602           with Mono (Allows to build with VS.Net again)
28603
28604 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
28605
28606         * Control.cs (PaintControlBackground): Draw background image
28607         corrrectly.
28608         (CheckForIllegalCrossThreadCalls): Stubbed.
28609         
28610         * Form.cs (OnCreateControl): Center when should be centered.
28611         
28612         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
28613
28614 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
28615
28616         * Binding.cs: Binding to properties should be case unsensitive
28617
28618 2005-07-18 vlindos@nucleusys.com
28619
28620         * DataGrid.cs: fixes setmember order
28621
28622 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
28623
28624         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
28625         * FileDialog.cs: FileDialog is now resizable and uses the new
28626           MimeIconEngine
28627
28628 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
28629
28630         * DataGridTextBoxColumn.cs: default value
28631         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
28632         * GridTableStylesCollection.cs: fixes checking MappingName
28633         * DataGridDrawingLogic.cs: fixes drawing logic issues
28634         * DataSourceHelper.cs: rewritten to make compatible with more data sources
28635         * DataGrid.cs: fixes    
28636
28637 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
28638
28639         * MimeGenerated.cs: Use case sensitive comparer for
28640           NameValueCollections
28641
28642 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
28643
28644         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
28645         * ThemeWin32Classic.cs: bug fixes, code refactoring
28646         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
28647         * DataGrid.cs: bug fixes, code refactoring
28648         * DataGridTextBox.cs: bug fixes, code refactoring
28649         * DataGridColumnStyle.cs:  bug fixes, code refactoring
28650         * Theme.cs:  bug fixes, code refactoring
28651
28652 2005-07-01  Peter Bartok  <pbartok@novell.com> 
28653
28654         * TextControl.cs: Quick fix for the reported crash on ColorDialog
28655           and other text box usage
28656
28657 2005-07-01  Jackson Harper  <jackson@ximian.com>
28658
28659         * TabControl.cs: Make sure the bottom of the tab covers the pages
28660         border.
28661
28662 2005-06-30  Peter Bartok  <pbartok@novell.com> 
28663
28664         * Form.cs (ShowDialog): Assign owner of the dialog
28665         * TextBoxBase.cs: Always refresh caret size when deleting, caret
28666           might have been moved to a tag with different height
28667
28668 2005-06-30  Jackson Harper  <jackson@ximian.com>
28669
28670         * Form.cs: Don't create an infinite loop when setting focus
28671         * MenuItem.cs: Don't dirty the parents if we don't have any
28672
28673 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
28674
28675         * LibSupport.cs: Rename
28676
28677 2005-06-29  Peter Bartok  <pbartok@novell.com>
28678
28679         * TextBoxBase.cs: Re-align caret after deleting a character
28680         * TextControl.cs:
28681           - DeleteChars(): Ensure that tag covers the provided position
28682           - StreamLine(): Drop reference for dropped tag
28683
28684 2005-06-29  Peter Bartok  <pbartok@novell.com> 
28685
28686         * TextControl.cs: 
28687           - Selections now work properly, anchoring at the initial location
28688             and properly extending in either direction (SetSelectionToCaret(),
28689             SetSelectionStart() and SetSelectionEnd())
28690           - No longer redraws the whole control on selection change, now
28691             calculates delta between previous and new selection and only
28692             invalidates/redraws that area
28693           - Fixed FindPos() math off-by-one errors
28694           - Changed DeleteChars() to verify the provided tag covers the
28695             provided position, selections may have a tag that doesn't cover
28696             the position if the selection is at a tag border
28697           - Fixed off-by-one errors in DeleteChars()
28698           - Added missing streamlining check in DeleteChars() to remove
28699             zero-length tags
28700           - Implemented Invalidate() method, now properly calculates exposures
28701             between two given lines/positions
28702           - Implemented SetSelection()
28703           - Obsoleted and removed FixupSelection()
28704           - Improved RecalculateDocument() logic, removing code duplication
28705
28706 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28707
28708         * LibSupport.cs: changes to match different input/output arguments.
28709
28710 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28711
28712         * LibSupport.cs: added libsupport.so init routine.
28713
28714 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
28715         
28716         * ControlBindingsCollection.cs
28717                 - Throws an exception on null datasource when adding
28718                 - Checks for duplicated bindings when adding
28719
28720 2005-06-28  Jackson Harper  <jackson@ximian.com>
28721
28722         * TreeView.cs (OnKeyDown): Support left and right properly
28723         (navigates as well as expanding and collapsing.
28724         - Add support for Multiply, this expands all the selected nodes
28725         children.
28726         - Fix some tabbing.
28727
28728 2005-06-28  Jackson Harper  <jackson@ximian.com>
28729
28730         * TreeView.cs: Implement keyboard navigation, currently supports,
28731         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
28732         support for toggling checkboxes with the space bar.
28733
28734 2005-06-28  Jackson Harper  <jackson@ximian.com>
28735
28736         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
28737         tree.
28738
28739 2005-06-28  Jackson Harper  <jackson@ximian.com>
28740
28741         * TreeView.cs: Add missing event.
28742
28743 2005-06-27  Peter Bartok  <pbartok@novell.com> 
28744
28745         * TextControl.cs:
28746           - Made line ending size configurable (now allows for counting 
28747             lineendings as \n or \r\n)
28748           - Added margin to viewport to keep caret visible on right side
28749           - Fixed translation routines for line/pos to documentpos to consider
28750             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
28751           - Fixed some line-endings to be unix style
28752           - Fixed Document.FormatText to perform it's calculations 1-based
28753           - Added descriptions for a few methods that might otherwise get 
28754             used wrong
28755           - Added NOTE section with some basic conventions to remember at 
28756             the top of the file
28757           - Major fixup for RichTextBox selection drawing:
28758             * Fixed crashes when multiple tags on a single line were selected
28759             * fixed selection box drawing not overlaying text
28760             * fixed bogus offset calculation for tags not starting at index 1
28761             * Switched behaviour from using multiple Substrings of a 
28762               StringBuilder.ToString() to using multiple 
28763               StringBuilder.ToString(start, length) statements, hoping this is
28764               faster (kept original version commented out in the code, in case
28765               original version was faster)
28766         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
28767           alignment != Left
28768         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
28769           call it as well
28770
28771 2005-06-27  Jackson Harper  <jackson@ximian.com>
28772
28773         * TabControl.cs: Move to the left and right with the arrow
28774         keys. These keys don't cycle beyond first and last like
28775         tab. Refresh all the tabs when scrolling them to the left or
28776         right.
28777
28778 2005-06-27  Jackson Harper  <jackson@ximian.com>
28779
28780         * TabControl.cs:
28781           - ToString: Added method
28782           - CreateParams: Remove TODO and comment
28783           - OnKeyDown: Cycle through bounds properly.
28784           - SelectedIndex: Scroll to the right or left if we need to
28785           display the newly selected tab.
28786
28787 2005-06-23  Jackson Harper  <jackson@ximian.com>
28788
28789         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
28790         set.
28791
28792 2005-06-23  Jackson Harper  <jackson@ximian.com>
28793
28794         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
28795         CTRL-SHIFT-TAB, and HOME, END are there any others?
28796
28797 2005-06-23  Jackson Harper  <jackson@ximian.com>
28798
28799         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
28800
28801 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
28802         
28803         * DataGridTextBoxColumn.cs: fixes and enhancements
28804         * ThemeWin32Classic.cs: fixes and enhancements
28805         * DataGridBoolColumn.cs:  fixes and enhancements
28806         * DataGridDrawingLogic.cs:  fixes and enhancements
28807         * CurrencyManager.cs: fixes and enhancements
28808         * DataGrid.cs: fixes and enhancements
28809         * DataGridColumnStyle.cs:  fixes and enhancements
28810
28811 2005-06-22  Jackson Harper  <jackson@ximian.com>
28812
28813         * TabControl.cs: Add some missing methods that just call into the
28814         base. Make the TabPageCollection's IList interface behave in the
28815         same manner as the MS implementation.
28816
28817 2005-06-22  Peter Bartok  <pbartok@novell.com> 
28818
28819         * TextControl.cs: Added sanity check
28820         * TextBoxBase.cs: 
28821           - Fixed wrapping behaviour, don't set wrap on single line controls
28822             (this fixes the breakage of colordialog introduced in an earlier
28823              checkin)
28824           - Added rudimentary support for autoscrolling right-aligned controls
28825             (still needs fixing, also, center alignment scroll is missing)
28826
28827 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
28828         
28829         * ScrollBar.cs: Fixes thumbpos on Maximum values
28830
28831 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
28832         
28833         * PropertyGridView.cs: Pass context information to UITypeEditors 
28834
28835 2005-06-21  Peter Bartok  <pbartok@novell.com> 
28836
28837         * TextBoxBase.cs:
28838           - Now calling PositionCaret with absolute space coordinates
28839           - Enabled vertical scrolling
28840           - Better tracking of scrollbar changes, tied into WidthChange
28841             event
28842           - Improved cursor tracking
28843           - Removed debug output
28844         * TextControl.cs:
28845           - PositionCaret coordinates are now works in absolute space, not 
28846             the canvas
28847           - Improved tracking of document size
28848           - Added events for width and height changes
28849
28850 2005-06-21  Peter Bartok  <pbartok@novell.com>
28851
28852         * Form.cs: Set focus to active control when form is activated
28853         * TextControl.cs: 
28854           - Added word-wrap functionality to RecalculateLine() 
28855           - Added some short function descriptions for VS.Net to aid in
28856             writing dependent controls
28857           - Added Caret property, returning the current coords of the caret
28858           - Added ViewPortWidth and ViewPortHeight properties
28859           - Added Wrap property
28860           - Added CaretMoved event
28861           - Removed some old debug code
28862           - Split() can now create soft splits
28863           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
28864           - Added method to format existing text
28865           - Fixed size/alignment calculations to use viewport
28866           - RecalculateDocument now can handle changing line-numbers while
28867             calculating lines
28868
28869         * TextBox.cs:
28870           - Added some wrap logic, we don't wrap if alignment is not left
28871           - Added casts for scrollbar var, base class switched types to
28872             also support RichTextBoxA
28873           - Implemented handling of scrollbar visibility flags
28874
28875         * TextBoxBase.cs:
28876           - Switched scrollbars type to RichTextBoxScrollBars to support
28877             RichTextBox
28878           - Added tracking of canvas width/height
28879           - Switched scrollbars to be not selectable (to keep focus on text)
28880           - Added central CalculateDocument() method to handle all redraw
28881             requirements
28882           - Added ReadOnly support
28883           - Added WordWrap support
28884           - Fixed handling of Enter key (we now treat it as a DialogKey)
28885           - Fixed caret positioning when h or v scroll is not zero
28886           - Fixed placing/generation of vertical scrollbar
28887           - Added CalculateScrollBars() method to allow updating scrollbar
28888             limits and visibility
28889           - Fixed handling of horizontal scroll
28890           - Added handling of vertical scroll
28891           - Implemented auto-'jump' when caret moves to close to a left or
28892             right border and there is text to be scrolled into view (currently
28893             there's the potential for a stack overflow, until a bug in
28894             scrollbar is fixed)
28895
28896 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
28897         
28898         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
28899
28900 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
28901
28902         * Mime.cs:
28903         - added inodes.
28904         - return application/x-zerosize for files with size zero
28905           (if no extension pattern matches).
28906         - check matches collection for strings too.
28907         - return only the first mime type if the name value
28908           collection has more than one mime type.
28909
28910 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
28911         
28912         * PropertyGrid.cs: Cleaned up some TODOs
28913         * PropertyGridView.cs: Added support for UITypeEditors
28914
28915 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
28916         
28917         * DataGrid.cs: clears cached value
28918
28919 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
28920
28921         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
28922         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
28923         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
28924         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
28925         
28926 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
28927
28928         * ThemeWin32Classic.cs: fixes colour
28929
28930 2005-06-15  Peter Bartok  <pbartok@novell.com>
28931
28932         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
28933         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
28934         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
28935         * Control.cs: Added some MWFCategory and MWFDescription attributes
28936         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
28937
28938 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
28939
28940         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
28941         usage
28942
28943 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
28944
28945         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
28946         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
28947         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
28948         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
28949         * DataGrid.cs: default datagrid settings for Default Styles, fixes
28950         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
28951
28952 2005-06-13  Jackson Harper  <jackson@ximian.com>
28953
28954         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
28955         isn't printed when the user enables dropping. (X11 does accept
28956         drops).
28957         
28958 2005-06-13  Jackson Harper  <jackson@ximian.com>
28959
28960         * TreeView.cs: Remove some TODOS.
28961
28962 2005-06-13  Jackson Harper  <jackson@ximian.com>
28963
28964         * Form.cs: Hook into the mdi framework.
28965         * MdiClient.cs: Use the base control collections add method so
28966         parents get setup correctly. Set the default back colour and dock
28967         style.
28968         * MdiChildContext.cs: New class, this bad actor handles an
28969         instance of an MDI window. Right now there is only basic
28970         support. You can drag, close, and resize windows. Minimize and
28971         Maximize are partially implemented.
28972
28973 2005-06-13  Jackson Harper  <jackson@ximian.com>
28974
28975         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
28976         freaky when both vals are negative. NOTE: There are probably other
28977         places in XplatUIX11 that this needs to be done.
28978
28979 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
28980
28981         * DataGrid.cs: implement missing methods, move KeyboardNavigation
28982         * DataGridColumnStyle.cs: fixes signature
28983
28984 2005-06-12  Jackson Harper  <jackson@ximian.com>
28985
28986         * XplatUIX11.cs: Use sizing cursors similar to the ones on
28987         windows.
28988
28989 2005-06-11  Jackson Harper  <jackson@ximian.com>
28990
28991         * StatusBarPanel.cs: Signature cleanups. Implement
28992         BeginInit/EndInit.
28993
28994 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
28995
28996         * DataGridTextBoxColumn.cs: Honors aligment
28997         * GridColumnStylesCollection.cs: Contains is case unsensitive
28998         * GridTableStylesCollection.cs: several fixes
28999         * DataGridTableStyle.cs: default column creation
29000         * DataGridDrawingLogic.cs: fixes
29001         * CurrencyManager.cs: ListName property
29002         * DataGrid.cs: multiple styles support
29003         * DataGridColumnStyle.cs: fixes
29004         
29005
29006 2005-06-10  Peter Bartok  <pbartok@novell.com>
29007
29008         * Control.cs(Select): Moved SetFocus call to avoid potential
29009           loops if controls change the active control when getting focus
29010         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
29011           the up/down buttons
29012
29013 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
29014
29015         * ImageListConverter.cs: Implemented
29016
29017 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
29018
29019         * MonthCalendar.cs: Wired in NumericUpDown control for year
29020
29021 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
29022
29023         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
29024           DoubleClick events, since they are not meant to be fired.
29025
29026 2005-06-09  Peter Bartok  <pbartok@novell.com>
29027
29028         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
29029           Jonathan's standalone controls into MWF, implemented missing
29030           events, attributes and methods; added xxxAccessible classes
29031         * AccessibleObject.cs: Made fields internal so other classes
29032           can change them if needed
29033
29034 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
29035
29036         * UpDownBase.cs: Complete implementation
29037         * NumericUpDown.cs: Complete implementation
29038         * DomainUpDown.cs: Complete implementation
29039
29040 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
29041
29042         * DataGridTextBoxColumn.cs: drawing fixes
29043         * DataGridCell.cs: fixes ToString method to match MSNet
29044         * DataGridTableStyle.cs: fixes
29045         * DataGridBoolColumn.cs: fixes, drawing
29046         * DataGridDrawingLogic.cs: fixes, new methods
29047         * DataGridTextBox.cs: Keyboard and fixes
29048         * DataGrid.cs:
29049                 - Keyboard navigation
29050                 - Scrolling fixes
29051                 - Row selection (single, multiple, deletion, etc)
29052                 - Lots of fixes
29053         
29054 2005-06-07  Jackson Harper  <jackson@ximian.com>
29055
29056         * ThemeWin32Classic.cs: Clear the background area when drawing
29057         buttons.
29058
29059 2005-06-06  Peter Bartok  <pbartok@novell.com>
29060
29061         * ImageListStreamer.cs: Fixed signature for GetData
29062         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
29063         * ComboBox.cs:
29064           - Added missing ChildAccessibleObject class
29065           - Added missing OnXXXFocus overrides, switched to using those
29066             instead of the event handler
29067         * Control.cs:
29068           - Added Parent property for ControlAccessibleObject
29069           - Fixed signatures
29070           - Fixed attributes
29071           - Added ResetBindings()
29072         * ListBindingConverter.cs: Implemented some methods
29073         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
29074         * ImageList.cs: Implemented basic handle scheme, removed TODOs
29075         * ContainerControl.cs: Fixed signature, now subscribing to the
29076           ControlRemoved event instead of overriding the handler, LAMESPEC
29077         * CurrencyManager.cs: Added missing attribute
29078         * MonthCalendar.cs: Added missing properties
29079
29080 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
29081
29082         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
29083         
29084 2005-06-06  Gaurav Vaish and Ankit Jain
29085
29086         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
29087         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
29088         
29089 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
29090
29091         * Control.cs: fixes CreateParams Width / Height.
29092
29093 2005-06-05  Peter Bartok  <pbartok@novell.com>
29094
29095         * Win32DnD.cs: Removed compilation warnings
29096
29097 2005-06-05  Peter Bartok  <pbartok@novell.com>
29098
29099         * Control.cs (CreateParams): Since we don't know if one of the
29100           properties we use is overridden, lets make sure if we fail accessing
29101           we continue with a backup plan
29102
29103 2005-06-05  Peter Bartok  <pbartok@novell.com>
29104
29105         * Win32DnD.cs:
29106           - Removed debug output
29107           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
29108             struct
29109           - Plugged resource leak
29110         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
29111           MS size
29112
29113 2005-06-05  Peter Bartok  <pbartok@novell.com>
29114
29115         * XplatUIWin32.cs: Removed DnD code
29116         * Win32DnD.cs: Implemented drop source and drop target functionality
29117
29118 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
29119
29120         * UpDownBase.cs: remove duplicate addition of event, enable some code
29121         that was commented out.
29122         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
29123         Validate input when a key is pressed. It works fine now for every
29124         combination of Hexadecimal. Only missing some drawing love when sharing
29125         space with other controls.
29126
29127 2005-06-04  Peter Bartok  <pbartok@novell.com>
29128
29129         * Control.cs:
29130           - We need to pass a window for DragDrop, so enable callback events
29131           - Added DnD callback events when being a DragSource
29132         * XplatUI.cs (StartDrag): Added window handle argument
29133         * XplatUIDriver.cs (StartDrag): Added window handle argument
29134         * QueryContinueDragEventArgs: Made fields internally accessible so
29135           drivers can set them
29136         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
29137           can set them
29138
29139 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
29140
29141         * DataGridTextBoxColumn.cs: column text editing
29142         * DataGridTableStyle.cs: Respect columns styles created by the user
29143         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
29144         * DataGridBoolColumn.cs: bool column editing
29145         * DataGrid.cs: fixes to scrolling, properties, etc
29146         * DataGridTextBox.cs: handle keyboard
29147         * DataGridColumnStyle.cs: fixes
29148
29149 2005-06-02  Jackson Harper  <jackson@ximian.com>
29150
29151         * ImageListStreamer.cs: Somewhat broken implementation of
29152         GetObjectData. The RLE needs some work to match MS properly.
29153
29154 2005-06-02  Jackson Harper  <jackson@ximian.com>
29155
29156         * X11Dnd.cs: Attempting to keep at least one file in MWF
29157         monostyled.
29158
29159 2005-06-02  Peter Bartok  <pbartok@novell.com>
29160
29161         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
29162           that way
29163
29164 2005-06-02  Peter Bartok  <pbartok@novell.com>
29165
29166         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
29167         * XplatUI.cs: Added DoDragDrop() method
29168         * XplatUIDriver.cs: Added DoDragDrop() method
29169
29170 2005-06-02  Jackson Harper  <jackson@ximian.com>
29171
29172         * Splitter.cs: Implement BorderStyle.
29173
29174 2005-06-02  Jackson Harper  <jackson@ximian.com>
29175
29176         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
29177         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
29178         X11 using XDND.
29179
29180 2005-06-02  Peter Bartok  <pbartok@novell.com>
29181
29182         * DataObject.cs:
29183           - Added Data setter
29184           - Fixed broken insertion code for SetData, now also
29185             overwrites any existing entry of the same format name
29186         * Hwnd.cs: Added list of pointers that automatically gets
29187           freed when the window is disposed
29188         * XplatUI.cs: Call driver initialization method when loading
29189           a driver
29190         * Control.cs:
29191           - OnDragLeave takes EventArgs, not DragEventArgs
29192           - Added setting of WS_EX_ACCEPTFILES style when dropping is
29193             supported
29194           - Forces style update when drop state changes
29195         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
29196           not perfect since we cannot (yet) call the IDataObject.GetData()
29197           method, we keep getting 0x80004005 error, dunno why)
29198
29199 2005-06-02  Peter Bartok  <pbartok@novell.com>
29200
29201         * DragEventArgs.cs: Make fields internal so we can cache the
29202           object and re-set the fields from XplatUI
29203
29204 2005-06-02  Jackson Harper  <jackson@ximian.com>
29205
29206         * Control.cs: Add some internal methods so the DnD subsystem can
29207         raise DnD events. Also call into the driver when AllowDrop is set.
29208         * XplatUI.cs:
29209         * XplatUIDriver.cs: New method for setting whether or not a window
29210         is allowed to accept drag and drop messages.
29211                 
29212 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
29213         
29214         * ScrollBar.cs: Make sure that values sent in Scroll events
29215         are always between Maximum and Minimum.
29216
29217 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
29218
29219         * Menu.cs: Call MenuChanged when menuitem visibility has been
29220         changed.
29221         * MenuItem.cs: Rebuild menu when item is (not) visible.
29222         * MainMenu.cs: MainMenu has special MenuChanged.
29223         * Theme.cs: Caption and FrameBorderSize are not fixed.
29224         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
29225         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
29226         * XplatUIX11.cs,
29227         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
29228         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
29229
29230 2005-05-30  Jackson Harper  <jackson@ximian.com>
29231
29232         * DataFormat.cs: We can't statically initialize this stuff because
29233         it calls into the xplatui and could create a loop. So we lazy init
29234         it.
29235
29236 2005-05-28  Jackson Harper  <jackson@ximian.com>
29237
29238         * Control.cs: Proper implementation of Product(Name/Version).
29239
29240 2005-05-27  Jackson Harper  <jackson@ximian.com>
29241
29242         * DataObject.cs: Dont crash if no data is found.
29243
29244 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
29245         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
29246                 as per status page, guessing it should be set to true
29247
29248 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
29249
29250         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
29251         * DataGridTableStyle.cs: set proper formatting text, def header text
29252         * ThemeWin32Classic.cs: new themable paramaters
29253         * DataGridBoolColumn.cs: paint check box, get data, fixes
29254         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
29255         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
29256         * DataGridColumnStyle.cs: fixes
29257         * Theme.cs: new themable paramaters
29258                 
29259 2005-05-26  Peter Bartok  <pbartok@novell.com>
29260
29261         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
29262
29263 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
29264         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
29265
29266 2005-05-24  Peter Bartok  <pbartok@novell.com>
29267
29268         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
29269           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
29270           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
29271           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
29272           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
29273           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
29274           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
29275           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
29276           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
29277           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
29278           missing attributes, etc
29279         * DataGridPreferredColumnWidthTypeConverter.cs: Added
29280
29281 2005-05-24  Peter Bartok  <pbartok@novell.com>
29282
29283         * Help.cs: Added, implemented trivial functions, throws up MessageBox
29284           when user tries to get help
29285         * DataObject.cs, DataFormats.cs, LinkArea.cs,
29286           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
29287           to suppress warnings
29288         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
29289           avoid unreachable code warning
29290
29291 2005-05-20  Peter Bartok  <pbartok@novell.com>
29292
29293         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
29294
29295 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
29296
29297         * DataGridTextBoxColumn.cs: Basic painting methods
29298         * DataGridTableStyle.cs: Set table style in the column
29299         * ThemeWin32Classic.cs: Use Theme for colors
29300         * DataGridDrawingLogic.cs: Implement more drawing
29301         * DataGrid.cs: drawing, theming, enhacements, fixes
29302         * DataGridColumnStyle.cs: fixes, drawing
29303         * Theme.cs: theming for Datagrid
29304
29305 2005-05-20  Peter Bartok  <pbartok@novell.com>
29306
29307         * Cursor.cs: Implemented GetObjectData() method
29308
29309 2005-05-20  Peter Bartok  <pbartok@novell.com>
29310
29311         * Cursors.cs: Added setting of cursor name
29312         * Cursor.cs:
29313           - Implemented constructors
29314           - Implemented Draw and DrawStretched
29315           - Implemented Current property
29316           - Implemented == and != operators
29317           - Implemented Dispose()
29318           - Implemented ToString
29319           - Added missing attributes
29320         * XplatUIX11.cs:
29321           - Added missing reset for OverrideCursor when DoEvents is called
29322           - Fixed creation of cursor, logic was wrong
29323         * XplatUIWin32.cs:
29324           - Added missing reset for OverrideCursor when DoEvents is called
29325           - Fixed creation of cursor, bit arrays were swapped
29326         * Clipboard.cs: Removed obsolete MonoTODO attribute
29327
29328 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
29329
29330         * ComboBox.cs: fixes OnSelectedItemChanged
29331         * ControlBindingsCollection.cs: fixes item range check
29332
29333 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
29334
29335         * UpDownBase.cs:
29336                 - Calc preferred height properly
29337                 - Implement missing properties
29338                 
29339         * NumericUpDown.cs: Implement missing events
29340
29341 2005-05-19  Jackson Harper  <jackson@ximian.com>
29342
29343         * TabControl.cs: New method that resizes the tab pages before
29344         redrawing them. This as needed as the control is double buffered
29345         and sizing will not be recalculated unless ResizeTabPages is
29346         called.
29347         * TabPage.cs: Set base.Text instead of Text in the constructor so
29348         that UpdateOwner does not get called. Use the new Redraw method of
29349         TabControl instead of Refresh so the sizing is recalculated.
29350         * ThemeWin32Classic.cs: Draw the text for button tabs.
29351
29352 2005-05-19  Jackson Harper  <jackson@ximian.com>
29353
29354         * Control.cs: Paint control background images. Fix typo where
29355         PaintControlBackground was not getting called correctly.
29356
29357 2005-05-19  Peter Bartok  <pbartok@novell.com>
29358
29359         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
29360           I can investigate, apparently I broke FileDialog
29361
29362 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
29363
29364         * AxHost.cs: Some simple properties.
29365         * Control.cs: window must be accessible after ctor.
29366         * Form.cs: Added TransparencyKey property.
29367         * TextBoxBase.cs: Implemented Clear. Text property can be null.
29368         * XplatUIWin32.cs: SetBorderStyle implemented.
29369
29370 2005-05-18  Peter Bartok  <pbartok@novell.com>
29371
29372         * DataObject.cs: Entries are not global but particular to the
29373           DataObject, now it behaves that way
29374         * XplatUIWin32.cs: Implemented Clipboard methods
29375         * Clipboard.cs: Implemented
29376         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
29377         * XplatUIOSX.cs: Updated to final clipboard prototypes
29378         * XplatUIX11.cs: Implemented Clipboard methods
29379         * XplatUIDriver.cs: Updated to final clipboard prototypes
29380         * XplatUIStructs.cs:
29381           - Added BITMAPINFOHEADER struct
29382           - Added ClipboardFormats enum
29383         * X11Structs.cs:
29384           - Added ClipboardStruct
29385           - Added Atom enum items for clipboard types
29386           - Fixed atom types for Selection event structures
29387         * DataFormats.cs:
29388           - Added internal properties and methods for drivers to enumerate
29389             all known formats
29390           - Switched initialization method to allow drivers to assign their
29391             own IDs even for the MS predefined clipboard IDs
29392         * XplatUI.cs: Updated to final clipboard interface
29393
29394 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
29395         * PropertyGridView.cs: Fixed compiler warnings.
29396
29397 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
29398         * PropertyGrid.cs: Added some event calls
29399         * PropertyGridView.cs: Change drawing code to use double buffering
29400         * PropertyGridTextBox.cs: Changed Text property name
29401         * GridItem.cs: Added Bounds property.
29402         * GridEntry.cs: Added Bounds property.
29403
29404 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
29405
29406         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
29407         since GetType() may not return the correct type if the object is
29408         a remoting proxy.
29409
29410 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
29411
29412         * TreeNodeCollection.cs: fixes get/set item ranges
29413         
29414 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
29415
29416         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
29417                 
29418 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
29419
29420         * ComboBox.cs: Fix item range comparation
29421         * ListView.cs: Fix item range comparation
29422
29423 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
29424
29425         * FontDialog.cs:
29426           - Clear example panel when OnPaint is called
29427           - Better solution for displaying the example panel text
29428           - Select default indexes in the ListBoxes
29429
29430 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
29431
29432         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
29433
29434 2005-05-11  Peter Bartok  <pbartok@novell.com>
29435
29436         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
29437         * SelectionRangeConverter.cs: Implemented
29438         * PropertyGrid.cs: Fixed attribute value
29439         * Control.cs:
29440           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
29441           - Added Sebastien Pouliot's CAS Stack Propagation fixes
29442         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
29443           that's common to all drivers. First methods to go there are
29444           Sebastien Pouliot's CAS Stack Propagation helper methods
29445         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
29446           Sebastien Pouliot for CAS Stack Propagation
29447
29448 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
29449
29450         * OSXStructs.cs:
29451           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
29452
29453 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
29454
29455         * DataGridTextBoxColumn.cs: fixed some members
29456         * GridColumnStylesCollection.cs: indexed column is case insensitive
29457         * DataGridTableStyle.cs: fixes
29458         * ThemeWin32Classic.cs: add new theme parameter
29459         * Theme.cs: add new theme parameter
29460         * DataGridDrawingLogic.cs: Datagrid's drawing logic
29461         * DataGrid.cs: fixes, new internal properties, etc.
29462         * DataGridColumnStyle.cs: allows to set grid value
29463         *
29464
29465 2005-05-10  Peter Bartok  <pbartok@novell.com>
29466
29467         * AccessibleObject.cs:
29468           - Removed MonoTODO attribute on help, method is correct
29469           - Fixed Bounds property
29470         * AxHost.cs: Moved MonoTODO
29471         * ButtonBase.cs: Now setting AccessibleObject properties
29472         * RadioButton.cs: Setting proper AccessibleObject role
29473         * CheckBox.cs: Setting proper AccessibleObject role
29474         * ControlBindingsCollection.cs: Added properties, methods and attributes
29475         * DataFormats.cs: Fixed awkward internal API, and changed to enable
29476           userdefined DataFormats.Format items as well
29477         * ListControl.cs: Removed data_member from the public eye
29478         * OpenFileDialog.cs:
29479           - Made class sealed
29480           - Added missing attributes
29481         * SaveFileDialog.cs: Added missing attributes
29482         * ImageListStreamer.cs: Fixed code that caused warnings
29483         * LinkLabel.cs: Removed unreachable code
29484         * TreeView.cs: Fixed code that caused warnings
29485         * PropertyGridView.cs: Fixed code that caused warnings
29486         * GridColumnStylesCollection.cs: Added missing attributes
29487         * GridTableStylesCollection: Added missing attribute
29488         * PropertyManager: Added .ctor
29489         * SecurityIDType: Added
29490         * DataObject.cs: Implemented class
29491         * LinkArea.cs: Added missing attribute
29492
29493 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
29494
29495         * RadioButton.cs: call base method to allow to fire OnClick event
29496         * UpDownBase.cs: OnMouseUp call base method
29497         * CheckedListBox.cs: call base method before returning
29498         * TrackBar.cs: call base method before returning
29499         
29500
29501 2005-05-10  Peter Bartok  <pbartok@novell.com>
29502
29503         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
29504           for messages
29505
29506 2005-05-10  Peter Bartok  <pbartok@novell.com>
29507
29508         * DataFormats.cs: Implemented
29509         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
29510           XplatUIX11.cs: Added Clipboard APIs
29511         * XplatUIWin32.cs: Implemented Clipboard APIs
29512         * FolderBrowserDialog.cs: Added missing event, attributes
29513
29514 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
29515
29516         * CheckBox.cs: call base method to allow to fire OnClick event
29517
29518 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
29519
29520         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
29521
29522 2005-05-06  Peter Bartok  <pbartok@novell.com>
29523
29524         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
29525         * Screen.cs: Implemented
29526         * HelpNavigator.cs: Added
29527         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
29528           property
29529         * HelpProvider.cs: Implemented all we can do until we have a CHM
29530           help library (which means that "What's This" does work now)
29531
29532 2005-05-06  Jackson Harper  <jackson@ximian.com>
29533
29534         * XplatUIX11.cs: Fix waking up the main loop.
29535                 
29536 2005-05-05  Peter Bartok  <pbartok@novell.com>
29537
29538         * XplatUI.cs: Updated revision
29539         * Form.cs: Removed enless loop
29540         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
29541         * Label.cs (OnPaint): Added call to base.OnPaint()
29542         * ToolTip.cs: Made ToolTipWindow reusable for other controls
29543         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
29544         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
29545         * AxHost.cs: Added
29546         * ButtonBase.cs: Moved base.OnPaint() call to end of method
29547         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
29548           to ToolTip.ToolTipWindow for drawing and size methods; this allows
29549           reuse of ToolTipWindow by other controls
29550         * SizeGrip.cs: Moved base.OnPaint() call to end of method
29551         * XplatUIX11.cs: Now clipping drawing area (experimental)
29552         * PictureBox.cs: Moved base.OnPaint() call to end of method
29553         * Theme.cs: Fixed ToolTip abstracts to match new format
29554         * ErrorProvider.cs: Implemented
29555
29556 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
29557
29558         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
29559         * LinkLabel.cs:
29560                 - Adds cursors
29561                 - Handles focus
29562                 - Implements LinkBehavior
29563                 - Fixes many issues
29564
29565 2005-05-03  Jackson Harper  <jackson@ximian.com>
29566
29567         * ListView.cs: Calculate the scrollbar positioning on resize and
29568         paint, so they get put in the correct place.
29569
29570 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
29571
29572         * ColorDialogs.cs: The small color panels are now handled by
29573           SmallColorControl. This fixes drawing of the focus rectangle
29574           and adds a 3D border.
29575
29576 2005-05-03  Peter Bartok  <pbartok@novell.com>
29577
29578         * Control.cs: Modified version of Jonathan Chamber's fix for
29579           double-buffering
29580
29581 2005-05-03  Jackson Harper  <jackson@ximian.com>
29582
29583         * ListView.cs: Remove redraw variable. Control now handles whether
29584         or not a redraw needs to be done, and will only raise the paint
29585         event if redrawing is needed.
29586
29587 2005-05-03  Jackson Harper  <jackson@ximian.com>
29588
29589         * Splitter.cs: No decorations for the splitter form. Cache the
29590         hatch brush.
29591
29592 2005-05-03  Jackson Harper  <jackson@ximian.com>
29593
29594         * TreeView.cs: Use dashed lines to connect nodes. Use the
29595         ControlPaint method for drawing the focus rect instead of doing
29596         that in treeview.
29597
29598 2005-05-02  Peter Bartok  <pbartok@novell.com>
29599
29600         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
29601
29602 2005-04-29  Jackson Harper  <jackson@ximian.com>
29603
29604         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
29605         entire image buffer. Just clear the clipping rectangle.
29606
29607 2005-04-29  Jackson Harper  <jackson@ximian.com>
29608
29609         * ThemeWin32Classic.cs: Don't draw list view items that are
29610         outside the clipping rectangle.
29611
29612 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
29613
29614         * ListBox.cs: added horizontal item scroll
29615
29616 2005-04-29  Jackson Harper  <jackson@ximian.com>
29617
29618         * ThemeWin32Classic.cs: Remove some old debug code that was
29619         causing flicker with the new double buffering code.
29620
29621 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
29622
29623         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
29624         behave like combobox and comboboxlist (still not sure if this is
29625         correct though).
29626
29627 2005-04-28  Jackson Harper  <jackson@ximian.com>
29628
29629         * ThemeWin32Classic.cs: Don't fill the middle of progress
29630         bars. This fills areas outside of the clip bounds that don't need
29631         to be filled.
29632
29633 2005-04-28  Jackson Harper  <jackson@ximian.com>
29634
29635         * Control.cs: Don't expose functionality to touch the image buffers.
29636         * ProgressBar.cs:
29637         * ListView.cs: We do not need to (and no longer can) manipulate
29638         the image buffers directly. All of this is handled by Control.
29639
29640 2005-04-28  Peter Bartok  <pbartok@novell.com>
29641
29642         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
29643           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
29644           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
29645
29646 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
29647
29648         * Combobox:
29649                 - Adjust control's height for non-simple comboboxes (bug fix)
29650                 - Remove dead code
29651         * MenuAPI.cs: remove unused var
29652         * ScrollBar.cs: remove unsed var
29653                  
29654         * ListBox.cs: unselect items when clearing
29655
29656 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
29657
29658         * ListControl.cs: honors OnPositionChanged and default Selected Item
29659         * ListBox.cs: unselect items when clearing
29660
29661 2005-04-27  Jackson Harper  <jackson@ximian.com>
29662
29663         * X11Keyboard.cs: Initialize a default keyboard and give a warning
29664         if a "correct" keyboard is not found. This will make us not crash,
29665         but might give some users bad keyboard layouts...seems to be the
29666         same thing rewind does.
29667
29668 2005-04-27  Jackson Harper  <jackson@ximian.com>
29669
29670         * BindingManagerBase.cs: Attach the current/position changed
29671         handlers to their respective events.
29672
29673 2005-04-27  Jackson Harper  <jackson@ximian.com>
29674
29675         * Control.cs: Make sure that the first WM_PAINT does a full draw,
29676         not just a blit.
29677         * ThemeWin32Classic.cs: Don't fill the background for picture
29678         boxes. This could overright user drawing.
29679         * ComboBox.cs: Just fill the clipping rect not the entire client
29680         rect when drawing the background. This prevents pieces of the
29681         image buffer from getting overwritten and is theoretically faster.
29682
29683 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
29684
29685         * ComboBox.cs: Databinding support fixes, fire missing events
29686         * ListControl.cs: implement missing methods and properties, fixes
29687         * ThemeWin32Classic.cs: Databiding support on Drawing
29688         * CheckedListBox.cs: Databinding support fixes, fire missing events
29689         * ListBox.cs: Databinding support fixes, fire missing events
29690         
29691 2005-04-25  Peter Bartok  <pbartok@novell.com>
29692
29693         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
29694
29695 2005-04-25  Jackson Harper  <jackson@ximian.com>
29696
29697         * TreeView.cs: Use the horizontal scrollbars height not width when
29698         determining how much of the client area is available.
29699
29700 2005-04-25  Jackson Harper  <jackson@ximian.com>
29701
29702         * Control.cs: Double buffering is handled differently now. As per
29703         the spec, the extra buffer is created in the WM_PAINT message and
29704         passed down to the control's drawing code.
29705         * GroupBox.cs:
29706         * Label.cs:
29707         * CheckBox.cs:
29708         * ProgressBar.cs:
29709         * RadioButton.cs:
29710         * ColorDialog.cs:
29711         * ComboBox.cs:
29712         * PropertyGridView.cs:
29713         * UpDownBase.cs:
29714         * MessageBox.cs:
29715         * MenuAPI.cs:
29716         * ListView.cs:
29717         * ButtonBase.cs:
29718         * SizeGrip.cs:
29719         * ScrollBar.cs:
29720         * ListBox.cs:
29721         * TrackBar.cs:
29722         * ToolBar.cs:
29723         * PictureBox.cs:
29724         * DateTimePicker.cs:
29725         * StatusBar.cs:
29726         * TreeView.cs: Update to new double buffering system.
29727         * MonthCalendar.cs: Uncomment block, as Capture is now
29728         working. Update to new double buffering
29729         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
29730         * PaintEventArgs.cs: New internal method allows us to set the
29731         graphics object. This is used for double buffering.
29732         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
29733         rectangle. The internal paint_area var has been removed from
29734         StatusBar. The clipping rect should be used instead.
29735         * Theme.cs: Give the PictureBox drawing method a clipping rect.
29736         * TabPage.cs: The RefreshTabs method was removed, so just call the
29737         tab controls Refresh method now.
29738         * TabControl.cs: Update to new double buffering. Make sure the
29739         handle is created before sizing the tab pages, otherwise we will
29740         get stuck in a loop.
29741
29742 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
29743
29744         * LinkLabel.cs: Fix typo, bug #74719; patch
29745           from Borja Sanchez Zamorano
29746
29747 2005-04-22  Jackson Harper  <jackson@ximian.com>
29748
29749         * TreeNode.cs: Implement Handle stuff.
29750         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
29751
29752 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
29753
29754         * DataGridTextBoxColumn.cs: call base constructors, fixes
29755         * GridColumnStylesCollection.cs: missing events, methods, and functionality
29756         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
29757         * DataGridTableStyle.cs: implements create default column styles
29758         * DataGridBoolColumn.cs: which types can handle
29759         * DataGrid.cs: missing methods, fixes, new functionality
29760         * DataGridColumnStyle.cs: fixes
29761
29762 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
29763         * FolderBrowserDialog.cs:
29764         - Use a thread to fill the TreeView
29765         - Adjusted some sizes
29766
29767 2005-04-19  Peter Bartok  <pbartok@novell.com>
29768
29769         * LinkLabel.cs: (Re-)create the pieces when setting the Text
29770           property. Fixes #74360.
29771
29772 2005-04-19  Jackson Harper  <jackson@ximian.com>
29773
29774         * XEventQueue.cs: Lock when getting the lockqueue size.
29775         * PictureBox.cs: Call base OnPaint
29776         
29777 2005-04-19  Peter Bartok  <pbartok@novell.com>
29778
29779         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
29780           messages were no longer being processed (this broke BeginInvoke)
29781
29782           
29783 2005-04-18  Jackson Harper  <jackson@ximian.com>
29784
29785         * TreeView.cs: buglet that caused node images to get drawn
29786         regardless of whether or not they were in the clipping rectangle.
29787
29788 2005-04-18  Jackson Harper  <jackson@ximian.com>
29789
29790         * CurrencyManager.cs: There are four rules for GetItemProperties:
29791         - If the type is an array use the element type of the array
29792         - If the type is a typed list, use the type
29793         - If the list contains an Item property that is not an object, use
29794         that property
29795         - use the first element of the list if there are any elements in
29796         the list.
29797         
29798 2005-04-17  Jackson Harper  <jackson@ximian.oom>
29799
29800         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
29801         click. This handles offsets for scrolling properly and reduces
29802         memory. Also fixed GetNode to not offset now that TopNode works
29803         properly.
29804         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
29805         
29806 2005-04-17  Jackson Harper  <jackson@ximian.com>
29807
29808         * CursorConverter.cs: Initial implementation.
29809
29810 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
29811
29812         * ListControl.cs: work towards complex data binding support on ListControl
29813         * CurrencyManager.cs: work towards complex data binding support on ListControl
29814         * ListBox.cs: work towards complex data binding support on ListControl
29815
29816
29817 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
29818
29819         * GridTableStylesCollection.cs: fixes name and constructor
29820         * DataGridTableStyle.cs: fixes
29821         * DataGridBoolColumn.cs: fixes names and constructors
29822         * DataGrid.cs: define methods and properties. Some init implementations
29823         * DataGridCell.cs: define methods and properties. Some init implementations
29824         * GridTablesFactory.cs: Define methods and properties
29825
29826 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
29827
29828         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
29829         graphics port changes.  We still want the coordinates in global screen
29830         coordinates.
29831
29832 2005-04-14  Jackson Harper  <jackson@ximian.com>
29833
29834         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
29835         check plus minus or checkbox clicks unless those features are enabled.
29836
29837 2005-04-14  Jackson Harper  <jackson@ximian.com>
29838
29839         * TreeView.cs: Add methods for setting the top and bottom visible
29840         nodes. TreeNode::EnsureVisible uses these methods.
29841         * TreeNode.cs: Implement EnsureVisible
29842
29843 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
29844
29845         * Form.cs: Pospone menu assignation if the window has not been created yet
29846         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
29847         size and position
29848
29849 2005-04-12  Jackson Harper  <jackson@ximian.com>
29850
29851         * TreeView.cs: Set the TopNode properly when scrolling
29852         occurs. This has the added benifit of reducing the amount of
29853         walking that needs to be done when drawing. Also removed an old
29854         misleading TODO.
29855         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
29856         
29857 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
29858
29859         * Timer.cs: fixes interval setting when the timer is already enabled
29860         
29861 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
29862
29863         * FolderBrowserDialog.cs: First approach
29864
29865 2005-04-09  Peter Bartok  <pbartok@novell.com>
29866
29867         * FolderBrowserDialog: Added
29868
29869 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
29870
29871         * LinkLabel.cs: move drawing code into the theme
29872         * ThemeWin32Classic.cs: drawing code and painting background bugfix
29873         * Theme.cs: define DrawLinkLabel method
29874
29875 2005-04-05  Jackson Harper  <jackson@ximian.com>
29876
29877         * BindingContext.cs: Use weak references so these bad actors don't
29878         stay alive longer then they need to.
29879
29880 2005-04-05  Jackson Harper  <jackson@ximian.com>
29881
29882         * ListControl.cs: Basic implementation of complex databinding.
29883         * ComboBox.cs:
29884         * ListBox.cs: Add calls to ListControl databinding methods.
29885
29886 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
29887
29888         * FileDialog.cs:
29889           - Don't change PopupButtonState to Normal when the
29890             PopupButton gets pressed several times.
29891           - Renamed ButtonPanel to PopupButtonPanel
29892
29893 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
29894
29895         * ColorDialog.cs: Use cached objects instead of creating them
29896         * LinkLabel.cs: Use cached objects instead of creating them
29897         * Splitter.cs: Use cached objects instead of creating them
29898         * FontDialog.cs: Use cached objects instead of creating them
29899         * PropertyGridView.cs: Use cached objects instead of creating them
29900         * MessageBox.cs: Use cached objects instead of creating them
29901         * FileDialog.cs: Use cached objects instead of creating them
29902         * ThemeWin32Classic.cs: Use cached objects instead of creating them
29903         * TreeView.cs: Use cached objects instead of creating them
29904         
29905 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
29906
29907         * Control.cs: use Equals to compare the font since no == op
29908         * ScrollBar.cs: use Equals to compare the font since no == op
29909
29910 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
29911
29912         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
29913
29914 2005-04-01  Jackson Harper  <jackson@ximian.com>
29915
29916         * Binding.cs: Implement IsBinding.
29917         * BindingManagerBase.cs:
29918         * PropertyManager.cs:
29919         * CurrencyManager.cs: Add IsSuspended property.
29920
29921 2005-04-01  Jackson Harper  <jackson@ximian.com>
29922
29923         * Binding.cs: Had some IsAssignableFrom calls backwards.
29924
29925 2005-04-01  Jackson Harper  <jackson@ximian.com>
29926
29927         * Binding.cs: Handle null data members when pulling data.
29928         * PropertyManager.cs: Handle the data member being a property that
29929         does not exist.
29930
29931 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
29932
29933         * DataGridTextBoxColumn.cs: fixes signature
29934         * DataGrid.cs: calls right constructor
29935
29936 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
29937
29938         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
29939         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
29940         * GridTableStylesCollection.cs: implements GridTableStylesCollection
29941         * DataGridTableStyle.cs: implements DataGridTableStyle
29942         * DataGridBoolColumn.cs: implements DataGridBoolColumn
29943         * DataGridTextBox.cs: implements DataGridTextBox
29944         * DataGridColumnStyle.cs: implements DataGridColumnStyle
29945
29946 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
29947
29948         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
29949
29950 2005-03-29  Peter Bartok  <pbartok@novell.com>
29951
29952         * Application.cs:
29953           - Properly implemented CompanyName property
29954           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
29955             returns a path that includes CompanyName, ProductName and
29956             Version (fixes bug #70330)
29957
29958 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
29959
29960         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
29961           fixes bug #72588.
29962
29963 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
29964
29965         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
29966         
29967           - Added ReadOnly CheckBox
29968           - Further refactoring: moved some code from Open-/SaveFileDialog
29969             to FileDialog
29970
29971 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
29972
29973         * OpenFileDialog.cs: Fixed CheckFileExists
29974         * FileDialog.cs:
29975           Moved FileView and DirComboBox outside FileDialog class.
29976           They can now be used outside FileDialog
29977
29978 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
29979
29980         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
29981         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
29982
29983 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
29984
29985         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
29986           - Added missing CreatePrompt property in SaveDialog
29987           - Overall SaveDialog handling should be better now
29988           - Added non standard ShowHiddenFiles property
29989           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
29990           - Added InitialDirectory and RestoreDirectory support
29991
29992 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
29993
29994         * FileDialog.cs: Made dirComboBox usable
29995
29996 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
29997
29998         * FileDialog.cs: Added Filter support (case sensitiv)
29999
30000 2005-03-24  Jackson Harper  <jackson@ximian.com>
30001
30002         * TabControl.cs: Need a couple more pixels for the lines.
30003
30004 2005-03-23  Jackson Harper  <jackson@ximian.com>
30005
30006         * TabControl.cs: Give the tab page focus when it is selected.
30007
30008 2005-03-23  Jackson Harper  <jackson@ximian.com>
30009
30010         * TabControl.cs: Account for the drawing of tabs borders when
30011         invalidating. If the slider was clicked dont do click detection on
30012         the tabs.
30013
30014 2005-03-23  Jackson Harper  <jackson@ximian.com>
30015
30016         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
30017
30018 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
30019
30020         * CategoryGridEntry.cs: Added
30021         * GridItem.cs: Added helper properties
30022         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
30023         * GridEntry.cs: Updated code for collection
30024         * PropertyGrid.cs: Cleaned up some formatting
30025         * PropertyGridView.cs: Added drop down functionality for enums.
30026         * GridItemCollection.cs: Added enumerator logic
30027         * PropertyGridEntry.cs: Added
30028
30029 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
30030
30031         * FileDialog.cs:
30032           - Removed unnecessary commented code
30033           - Fixed handling for entering the filename manually in the combobox
30034
30035 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
30036
30037         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
30038
30039 2005-03-18  Peter Bartok  <pbartok@novell.com>
30040
30041         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
30042           them being touching the border
30043
30044 2005-03-18  Peter Bartok  <pbartok@novell.com>
30045
30046         * TextControl.cs: Quick hack to center text better
30047
30048 2005-03-18  Peter Bartok  <pbartok@novell.com>
30049
30050         * ControlPaint.cs:
30051           - Don't throw NotImplemented exceptions, just print a notice once
30052             instead (requested by Miguel). This makes running existing SWF
30053             apps a bit easier
30054         * Control.cs:
30055           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
30056           - Added context menu trigger on right click
30057         * Panel.cs: Trigger invalidate on resize
30058         * StatusBar.cs:
30059           - Removed old double-buffer drawing
30060           - Added ResizeRedraw style to force proper update of statusbar
30061         * ListView.cs:
30062           - Removed debug output
30063         * ThemeWin32Classic.cs:
30064           - Fixed drawing of status bar, now draws Text property if there
30065             are no defined panels
30066
30067 2005-03-18  Jackson Harper  <jackson@ximian.com>
30068
30069         * ImageList.cs: When the image stream is set pull all the images
30070         from it.
30071         * ImageListStreamer.cs: Implement reading image list streams.
30072
30073 2005-03-18  Peter Bartok  <pbartok@novell.com>
30074
30075         * ThemeWin32Classic.cs (DrawPictureBox):
30076           - Fixed calculations for centered drawing
30077           - Fixed drawing for normal mode, not scaling the image on normal
30078
30079 2005-03-18  Peter Bartok  <pbartok@novell.com>
30080
30081         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
30082           textbox
30083         * FileDialog.cs:
30084           - Made Open/Save button the accept button for FileDialog
30085           - Tied the cancel button to the IButtonControl cancel button
30086           - Save/Open now properly builds the pathname
30087           - Now handles user-entered text
30088           - Preventing crash on right-click if no item is selected
30089           - Fixed Text property, now uses contents of textbox
30090           - Fixed SelectedText property, now just returns the text part that
30091             is selected in the text box
30092
30093 2005-03-18  Jackson Harper  <jackson@ximian.com>
30094
30095         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
30096         rect, make sure to de-adjust the interior rect after drawing the
30097         tab text.
30098
30099 2005-03-18  Peter Bartok  <pbartok@novell.com>
30100
30101         * MenuAPI.cs: Remove menu *before* executing selected action to
30102           prevent the menu from 'hanging around'
30103           
30104 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
30105
30106         * XplatUIOSX.cs: Implemented WorkingArea property
30107
30108 2005-03-17  Peter Bartok  <pbartok@novell.com>
30109
30110         * XplatUIX11.cs: Fixed menu coord calculations
30111         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
30112           for calculating offsets
30113
30114 2005-03-17  Peter Bartok  <pbartok@novell.com>
30115
30116         * Hwnd.cs: Do not consider menu presence for default client
30117           rectangle location/size
30118         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
30119           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
30120           translation functions
30121         * FileDialog.cs: Fixed (what I presume is a) typo
30122
30123 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
30124
30125         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
30126           X access (avoids X-Async errors)
30127
30128 2005-03-16  Jackson Harper  <jackson@ximian.com>
30129
30130         * TabControl.cs: Raise the SelectedIndexChanged event.
30131
30132 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
30133
30134         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
30135           - Removed vertical ToolBar and replaced it with a custom panel
30136             (desktop and home button already work)
30137           - Added Help button (some controls get resized or relocated then)
30138           - Draw correct text depending on Open or Save.
30139           - Fixed some typos...
30140
30141 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
30142
30143         * ScrollBar.cs:
30144           - Only change Maximum and Minimum when need it (bug fix)
30145
30146 2005-03-15  Peter Bartok  <pbartok@novell.com>
30147
30148         * Form.cs: Use Handle for icon, to trigger creation if
30149           the window does not yet exist
30150         * Control.cs:
30151           - CanSelect: Slight performance improvement
30152           - Focus(): Preventing possible recursion
30153           - Invalidate(): Removed ControlStyle based clear flag setting
30154           - WM_PAINT: fixed logic for calling OnPaintBackground
30155           - WM_ERASEBKGND: Fixed logic, added call to new driver method
30156             EraseWindowBackground if the control doesn't paint background
30157         * XplatUIWin32.cs:
30158           - Moved EraseWindowBackground() method to internal methods
30159           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
30160             is sent via SendMessage on BeginPaint call on Win32
30161         * XplatUIX11.cs:
30162           - Added EraseWindowBackground() method
30163           - No longer sends WM_ERASEBKGND on .Expose, but on call to
30164             PaintEventStart, which more closely matches Win32 behaviour
30165           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
30166           - Fixed SetFocus() to properly deal with client and whole windows
30167         * Hwnd.cs: Added ErasePending property
30168         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
30169         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
30170
30171 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
30172
30173         * XplatUIOSX.cs:
30174           - Fix hard loop when timers exist.
30175           - Fix bugs with middle and right click for 3 button mice.
30176
30177 2005-03-11  Peter Bartok  <pbartok@novell.com>
30178
30179         * XplatUIX11.cs:
30180           - get_WorkingArea: Need to call X directly, GetWindowPos only
30181             returns cached data now
30182           - Added sanity check to GetWindowPos hwnd usage
30183
30184 2005-03-11  Jackson Harper  <jackson@ximian.com>
30185
30186         * BindingManagerBase.cs: This method isn't used anymore as
30187         PullData now updates the data in the control.
30188
30189 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
30190
30191         * Form.cs: fixes menu drawing on X11
30192         * MenuAPI.cs:  fixes menu drawing on X11
30193
30194 2005-03-11  Peter Bartok  <pbartok@novell.com>
30195
30196         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
30197           from Jonathan Gilbert; should fix bug #73606
30198         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
30199           in Screen coordinates. Thanks, Jordi.
30200         * Form.cs: Added missing attribute
30201
30202 2005-03-11  Peter Bartok  <pbartok@novell.com>
30203
30204         * Form.cs:
30205           - Rudimentary Mdi support
30206           - Removed outdated FormParent code
30207           - Implemented lots of missing properties and methods, still missing
30208             transparency support
30209           - Added missing attributes
30210           - Implemented support for MaximumBounds
30211           - Added firing of various events
30212         * XplatUI.cs: Added SetIcon() method
30213         * XplatUIDriver.cs: Added SetIcon() abstract
30214         * XplatUIOSX.cs: Stubbed out SetIcon() method
30215         * XplatUIX11.cs:
30216           - Implemented SetIcon() support
30217           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
30218           - Switched to unix line endings
30219         * XplatUIWin32.cs:
30220           - Made POINT internal so for can access it as part of MINMAX
30221           - Implemented SetIcon() support
30222           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
30223             native Mdi support again, might have to go managed)
30224         * Control.cs: Now fires the StyleChanged event
30225         * MdiClient.cs: Added; still mostly empty
30226
30227 2005-03-10  Peter Bartok  <pbartok@novell.com>
30228
30229         * SaveFileDialog.cs: Added emtpy file
30230
30231 2005-03-08  Peter Bartok  <pbartok@novell.com>
30232
30233         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
30234           in turn triggers OnCreateContro) when creating a handle for the
30235           first time.
30236         * TextControl.cs: Fixed endless loop in certain cases when
30237           replacing the current selection
30238
30239 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
30240
30241         * ScrollBar.cs:
30242           - Honors NewValue changes in Scroll events allowing apps to change it
30243           - Adds First and Last Scroll events
30244           - Fixes Thumb events
30245
30246 2005-03-07  Peter Bartok  <pbartok@novell.com>
30247
30248         * Hwnd.cs: Added DefaultClientRectangle property
30249         * XplatUI.cs: Now using the X11 driver Where() method, which provides
30250           more detailed debug information
30251         * XplatUIX11.cs:
30252           - Fixed size-change feedback loop, where we would pull an old size
30253             off the queue and mistakenly change our window's size to an
30254             earlier value
30255           - Now compressing ConfigureNotify events, to reduce looping and
30256             redraw issues
30257         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
30258           is called
30259
30260 2005-03-07  Jackson Harper  <jackson@ximian.com>
30261
30262         * Binding.cs: Push data pushes from data -> property. Check if the
30263         property is readonly when attempting to set it.
30264
30265 2005-03-07  Jackson Harper  <jackson@ximian.com>
30266
30267         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
30268         instead of IsSubclassOf. Pulling data now sets the value on the
30269         control.
30270         * PropertyManager.cs:
30271         * CurrencyManager.cs: Just need to pull data when updating now,
30272         because PullData will set the value on the control.
30273
30274 2005-03-04  Jackson Harper  <jackson@ximian.com>
30275
30276         * Binding.cs: Implement data type parsing and converting on pulled
30277         data. TODO: Are there more ways the data can be converted?
30278
30279 2005-03-04  Jackson Harper  <jackson@ximian.com>
30280
30281         * Binding.cs: Support <Property>IsNull checks. Also bind to the
30282         controls Validating method so we can repull the data when the
30283         control loses focus.
30284
30285 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
30286
30287         * ColumnHeader.cs:
30288           - Fixes null string format
30289           
30290         * ListView.cs:
30291           - Adds enum type checks
30292           - Fixes redrawing and recalc need after changing some properties
30293           - Fixes on focus_item set after the event
30294           - Fixes adding columns after the control has been created
30295           
30296         * ThemeWin32Classic.cs:
30297           - Fixes CheckBox focus rectangle
30298           - Fixes ColumnHeader drawing
30299
30300
30301 2005-03-03  Jackson Harper  <jackson@ximian.com>
30302
30303         * Binding.cs: Bind to <Property>Changed events so we can detect
30304         when properties are changed and update the data.
30305
30306 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
30307
30308         * ImageList.cs:
30309           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
30310           - Fixes ImageList constructor with ImageList container
30311           - Fixes image scaling (wrong parameters at DrawImage)
30312
30313 2005-02-02  Jackson Harper  <jackson@ximian.com>
30314
30315         * Binding.cs: Make property searches case-insensitive. Eliminate
30316         some duplicated code.
30317
30318 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
30319
30320         * ComboBox.cs:
30321                 - Handle focus event
30322                 - Fix scrollbar events
30323                 - Discard highlighted item if remove it
30324                 - Fixes SelectedItem with strings
30325
30326 2005-03-01  Peter Bartok  <pbartok@novell.com>
30327
30328         * Control.cs:
30329           - Fixed Visible property, now follows (once again) parent chain
30330             to return false if any control in the chain is visible=false
30331           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
30332           - Fixed several places where is_visible instead of Visible was used
30333           - Implemented FIXME related to focus selection when setting focused
30334             control to be invisible
30335
30336         * XplatUIWin32.cs: Now using proper method to find out if window is
30337           visible. Thanks to Jordi for pointing it out
30338
30339 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
30340
30341         * ComboBox.cs: show/hide scrollbar instead of creating it
30342
30343 2005-02-27  Jackson Harper  <jackson@ximian.com>
30344
30345         * CurrencyManager.cs: Add PositionChanged stuff.
30346
30347 2005-02-27  Peter Bartok  <pbartok@novell.com>
30348
30349         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
30350         * XplatUIOSX.cs: Added GetMenuOrigin() stub
30351         * XplatUIWin32.cs: Implemented GetMenuOrigin()
30352         * XplatUIX11.cs:
30353           - Implemented GetMenuDC()
30354           - Implemented GetMenuOrigin()
30355           - Implemented ReleaseMenuDC()
30356           - Implemented generation of WM_NCPAINT message
30357           - Implemented generation and handling of WM_NCCALCSIZE message
30358         * Form.cs: Added debug helper message for Jordi's menu work
30359         * Hwnd.cs:
30360           - Modified ClientRect property; added setter, fixed getter to handle
30361             setting of ClientRect
30362           - Added MenuOrigin property
30363
30364 2005-02-26  Peter Bartok  <pbartok@novell.com>
30365
30366         * XplatUIX11.cs:
30367           - Destroys the caret if a window that's being destroyed contains it
30368           - Ignores expose events coming from the X11 queue for windows that
30369             already are destroyed
30370           - Now uses the proper variable for handling DestroyNotify, before we
30371             marked the wrong window as destroyed
30372           - Improved/added some debug output
30373
30374 2005-02-26  Peter Bartok  <pbartok@novell.com>
30375
30376         * X11Keyboard.cs: Fixes to work on 64bit systems
30377
30378 2005-02-26  Peter Bartok  <pbartok@novell.com>
30379
30380         * Control.cs:
30381           - Now calling OnHandleDestroyed from DestroyHandle()
30382             instead of Dispose()
30383           - Removed bogus call to controls.Remove() from DestroyHandle()
30384
30385 2005-02-26  Peter Bartok  <pbartok@novell.com>
30386
30387         * Control.cs: Properly destroy child windows when our handle is
30388           destroyed
30389
30390 2005-02-25  Peter Bartok  <pbartok@novell.com>
30391
30392         * XplatUI.cs:
30393           - Added 'DriverDebug' define to allow tracing XplatUI API calls
30394           - Alphabetized Static Methods and Subclasses
30395
30396         * XplatUIX11.cs:
30397           - Added XException class to allow custom handling of X11 exceptions
30398           - Created custom X11 error handler, tied into XException class
30399           - Added support for MONO_XEXCEPTIONS env var to allow the user
30400             to either throw an exception on X errors or continue running
30401             after displaying the error
30402           - Added handling of DestroyNotify message
30403           - Added handler for CreateNotify message (still disabled)
30404           - Improved (tried to at least) Where method to provide file and lineno
30405         * X11Structs.cs:
30406           - Added XErrorHandler delegate
30407           - Added XRequest enumeration (to suppor translation of errors)
30408
30409 2005-02-25  Jackson Harper  <jackson@ximian.com>
30410
30411         * PropertyManager.cs: Implement editing features
30412         * CurrencyManager.cs:
30413         * Binding.cs: First attempt at UpdateIsBinding
30414         * BindingManagerBase.cs: Call UpdateIsBinding before
30415         pushing/pulling data.
30416
30417 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
30418
30419         * MenuAPI.cs: Respect disabled items
30420         * ThemeWin32Classic.cs
30421                 - Caches ImageAttributes creation for DrawImageDisabled
30422                 - Fixes vertical menu line drawing
30423                 - Draws disabled arrows in disable menu items
30424
30425 2005-02-24  Peter Bartok  <pbartok@novell.com>
30426
30427         * Hwnd.cs:
30428           - Added UserData property to allow associating arbitrary objects
30429             with the handle
30430           - Fixed leak; now removing Hwnd references from static windows array
30431         * XplatUIWin32.cs:
30432           - Fixed Graphics leak in PaintEventEnd
30433           - Removed usage of HandleData, switched over to Hwnd class
30434         * HandleData.cs: Removed, obsoleted by Hwnd.cs
30435
30436 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
30437
30438         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
30439         * ScrollBar.cs: Fixes bug
30440         * TrackBar.cs: removes death code, clipping, mimize refreshes,
30441          keyboard navigation enhancements
30442
30443 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
30444
30445         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
30446         * GroupBox.cs: Add control styles
30447         * Label.cs: Add control styles
30448         * UpDownBase.cs: Add control styles
30449         * ListBox.cs: Add control styles
30450         * XplatUIWin32.cs: Fixes wrong parameter order
30451
30452
30453 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
30454
30455         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
30456
30457 2005-02-23  Jackson Harper  <jackson@ximian.com>
30458
30459         * PropertyManager.cs: Implement property binding. This doesn't
30460         seem to work yet though as (I think) there are some bugs in
30461         System.ComponentModel.PropertyDescriptor.
30462         * BindingContext.cs: Use new PropertyManager constructor.
30463
30464 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
30465
30466         * ProgressBar.cs: use clip region in ProgressBar
30467         * ThemeWin32Classic.cs: use clip region in ProgressBar
30468
30469 2004-02-22  Jackson Harper  <jackson@ximian.com>
30470
30471         * BindingsCollection.cs: Remove some debug code.
30472
30473 2005-02-22  Jackson Harper  <jackson@ximian.com>
30474
30475         * BindingContext.cs:
30476         * ControlBindingsCollection.cs:
30477         * CurrencyManager.cs:
30478         * Binding.cs:
30479         * BindingManagerBase.cs: Initial implementation
30480         * BindingsCollection.cs: Add an internal contains method that the
30481         BindingManagerBase uses to ensure bindings aren't added twice to
30482         the collection.
30483         * PropertyManager.cs: Stubbed out.
30484         * Control.cs:
30485         * ContainerControl.cs: Hook up databinding
30486         
30487 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
30488
30489         * XplatUIOSX.cs:
30490           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
30491           Fixed Invalidate/Update chain.
30492           Fixed tons of other minor bugs (this is almost a complete rewrite).
30493
30494 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
30495
30496         * ComboBox.cs: do subcontrol creation when the control is created
30497
30498 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
30499
30500         * Label.cs: fixes image drawing (image and imagelist)
30501         * ThemeWin32Classic.cs: cache brushes
30502         
30503 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
30504
30505         * Form.cs: Move menu drawing code to Theme class
30506         * ComboBox.cs: Move ComboBox drawing code to Theme class
30507         * MenuItem.cs: Move menu drawing code to Theme class
30508         * MenuAPI.cs: Move menu drawing code to Theme class
30509         * ThemeWin32Classic.cs: New methods
30510         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
30511         * ListBox.cs: Move Listbox drawing code to Theme class
30512         * Theme.cs: New methods
30513
30514 2005-02-20  Peter Bartok  <pbartok@novell.com>
30515
30516         * Control.cs:
30517           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
30518             only process mnemonics on those)
30519           - Fixed event sequence for key handling; first calling
30520             ProcessKeyEventArgs now
30521         * TextBoxBase.cs:
30522           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
30523             for processing non-character keys
30524           - Fixed WM_CHAR to generate proper event sequence before processing
30525         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
30526           generation
30527
30528 2005-02-19  Peter Bartok  <pbartok@novell.com>
30529
30530         * UserControl.cs: Added TextChanged event; added attributes
30531         * SizeGrip.cs: Implemented resizing and optional display of grip
30532         * Form.cs: Fixed attribute
30533         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
30534           Changed meaning of ScrollWindow bool argument; instead of the
30535           clear attribute (which will be true usually anyway), it gives the
30536           option of moving child controls as well.
30537         * XplatUIX11.cs:
30538           - Changed to match new ScrollWindow argument
30539           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
30540             now handles the implicit parent window a WM puts around us
30541         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
30542           to work)
30543         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
30544         * TreeView.cs: Adjusted to new ScrollWindow arguments
30545
30546 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
30547
30548         * Form.cs: Menu integration with non-client area
30549         * MenuItem.cs: Menu integration with non-client area
30550         * MenuAPI.cs: Menu integration with non-client area
30551
30552 2005-02-18  Peter Bartok  <pbartok@novell.com>
30553
30554         * MethodInvoker.cs: Added
30555         * MdiLayout.cs: Added
30556         * SendKeys.cs: Started implementation
30557         * ErrorIconAlignment.cs: Added
30558
30559 2005-02-18  Peter Bartok  <pbartok@novell.com>
30560
30561         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
30562         * Form.cs: Added handling for Menu-related Non-client messages
30563
30564 2005-02-17  Peter Bartok  <pbartok@novell.com>
30565
30566         * UpDownBase.cs: Fixed typo, compilation errors
30567         * DomainUpDown.cs: Fixed attribute value
30568
30569 2005-02-16  Miguel de Icaza  <miguel@novell.com>
30570
30571         * UpDownBase.cs: Attach entry events.
30572         Propagate events.
30573         Add ForeColor property, Focused, InterceptArrowKeys (interception
30574         does not work yet).
30575
30576 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
30577
30578         * Form.cs:
30579                 - Redraw non client are on Setmenu
30580                 - Calc proper menu starting point
30581
30582 2005-02-17  Peter Bartok  <pbartok@novell.com>
30583
30584         * Application.cs: Fixed message_filter check
30585
30586 2005-02-17  Peter Bartok  <pbartok@novell.com>
30587
30588         * Application.cs: Now calls registered message filters
30589         * DockStyle.cs: Fixed attribute
30590         * Form.cs: Fixed attribute
30591         * Menu.cs: Fixed attribute
30592         * ToolTip.cs: Fixed attribute
30593         * TreeNode.cs: Added missing attributes and arranged in regions
30594         * PropertyGrid.cs: Fixed signatures
30595         * TreeNodeCollection.cs: Added attributes
30596         * Splitter.cs: Added missing attributes; arranged into regions
30597         * TabPage.cs: Added missing attributes; arranged into regions
30598         * TextBoxBase.cs: Added missing attributes
30599         * TextBox.cs: Added missing attributes
30600         * ArrangeDirection.cs: Added missing attributes
30601         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
30602         * ToolBarButton.cs: Fixed attributes
30603         * AnchorStyles.cs: Fixed attribute
30604         * TrackBar.cs: Fixed attributes
30605         * TabControl.cs: Added missing attributes and arranged into regions
30606         * ToolBar.cs: Fixed attribute
30607         * StatusBar.cs: Fixed signature, organized into regions and added
30608           attributes
30609         * StatusBarPanel.cs: Fixed attributes
30610         * ContentsResizedEventArgs.cs: Implemented
30611         * ContentsResizedEventHandler.cs: Implemented
30612         * DateBoldEventArgs.cs: Implemented
30613         * DateBoldEventHandler.cs: Implemented
30614         * UpDownEventArgs.cs: Implemented
30615         * UpDownEventHandler.cs: Implemented
30616         
30617 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
30618
30619         * Form.cs: first Menu NC refactoring
30620         * MenuAPI.cs: first Menu NC refactoring
30621         
30622 2005-02-16  Peter Bartok  <pbartok@novell.com>
30623
30624         * ImeMode.cs: Added missing attributes
30625         * Menu.cs: Fixed attribute
30626         * GroupBox.cs: Fixed attribute
30627         * Label.cs: Fixed attribute
30628         * ColorDialog.cs (RunDialog): Removed TODO attribute
30629         * ComboBox.cs: Fixed attributes
30630         * ListControl.cs: Added missing attributes
30631         * PropertyGrid.cs: Fixed attributes
30632         * Control.cs: Fixed attributes
30633         * ListViewItem.cs: Added TypeConverter attribute
30634         * NotifyIcon.cs: Fixed attributes
30635         * ListView.cs: Fixed attributes
30636         * ButtonBase.cs: Fixed attribute
30637         * ImageList.cs: Added missing attributes
30638         * ContainerControl.cs: Fixed signature
30639         * CheckedListBox.cs: Fixed attribute; added missing attributes
30640         * Panel.cs: Fixed attributes
30641         * PropertyTabChangedEventArgs.cs: Added missing attribute
30642         * PropertyValueChangedEventArgs.cs: Added missing attribute
30643         * Binding.cs: Fixed attribute
30644         * ListViewItemConverter: Implemented ListViewSubItemConverter class
30645         * ListBox.cs: Fixed attribute; added missing attributes;
30646         * ScrollableControl.cs: Added missing attributes
30647         * PictureBox.cs: Added missing attributes; implemented missing property
30648         * DateTimePicker.cs: Added missing attributes
30649         * Theme.cs (ToolWindowCaptionHeight): Fixed type
30650         * MonthCalendar.cs: Fixed attributes
30651         * StatusBarPanel.cs: Added missing attributes
30652         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
30653
30654 2005-02-16  Peter Bartok  <pbartok@novell.com>
30655
30656         * TextBoxBase.cs: The previous method to enforce height yet remember
30657           the requested high was less than ideal, this is an attempt to do
30658           it better.
30659         * Control.cs: Added comment about possible problem
30660         * Copyright: Updated format
30661         * GridItemType.cs: Fixed swapped values
30662
30663 2005-02-15  Jackson Harper  <jackson@ximian.com>
30664
30665         * BaseCollection.cs: Use property so we never access an
30666         uninitialized list. Also initialize the list in the property.
30667
30668 2005-02-15  Peter Bartok  <pbartok@novell.com>
30669
30670         * GroupBox.cs (ProcessMnemonic): Implemented
30671         * Label.cs (ProcessMnemonic): Implemented
30672         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
30673           hotkeys
30674
30675 2005-02-15  Peter Bartok  <pbartok@novell.com>
30676
30677         * RadioButton.cs (ProcessMnemonic): Implemented
30678         * CheckBox.cs (ProcessMnemonic): Implemented
30679         * Control.cs:
30680           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
30681             handling
30682           - Added internal method to allow calling ProcessMnemonic from other
30683             controls
30684         * ContainerControl.cs:
30685           - Started support for handling validation chain handling
30686           - Implemented ProcessMnemonic support
30687           - Added Select() call to Active, to make sure the active control
30688             receives focus
30689         * Form.cs: Setting toplevel flag for Forms (this was lost in the
30690           FormParent rewrite)
30691         * ThemeWin32Classic.cs:
30692           - DrawCheckBox(): Fixed stringformat to show hotkeys
30693           - DrawRadioButton(): Fixed stringformat to show hotkeys
30694         * CommonDialog.cs: Removed WndProc override, not needed
30695
30696 2005-02-14  Peter Bartok  <pbartok@novell.com>
30697
30698         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
30699           missed those in the rewrite
30700
30701 2005-02-14  Miguel de Icaza  <miguel@novell.com>
30702
30703         * NumericUpDown.cs (Increment, ToString): Add.
30704         (DecimalPlaces): implement.
30705         
30706         Add attributes.
30707         
30708         * UpDownBase.cs: Add the designer attributes.
30709
30710 2005-02-13  Peter Bartok  <pbartok@novell.com>
30711
30712         * Panel.cs: Removed border_style, now in Control
30713         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
30714           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
30715
30716 2005-02-13  Peter Bartok  <pbartok@novell.com>
30717
30718         * MouseButtons.cs: Added missing attributes
30719         * XplatUIStructs.cs: Added enumeration for title styles
30720         * LeftRightAlignment.cs: Added missing attributes
30721         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
30722           it compatible with Graphics.FromHwnd()
30723         * SelectedGridItemChangedEventArgs.cs: Fixed property type
30724         * Keys.cs: Added missing attributes
30725         * SelectionRange.cs: Added missing attributes
30726         * SelectionRangeConverter.cs: Added
30727         * XplatUI.cs:
30728           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
30729             ReleaseMenuDC methods
30730           - Renamed ReleaseWindow to UngrabWindow
30731           - Added proper startup notice to allow version identification
30732         * Form.cs:
30733           - Added missing attributes
30734           - Removed FormParent concept
30735         * Label.cs: Removed border_style field, now in Control
30736         * RadioButton.cs: Now properly selects RadioButton when focus is
30737           received
30738         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
30739         * Control.cs:
30740           - Added missing attributes
30741           - Added borderstyle handling
30742           - Removed FormParent concept support
30743           - Fixed calls to XplatUI to match changed APIs
30744           - Fixed bug that would case us to use disposed Graphics objects
30745           - Removed unneeded internal methods
30746           - PerformLayout(): Fixed to handle DockStyle.Fill properly
30747           - SelectNextControl(): Fixed to properly check common parents
30748         * TextBoxBase.cs: Removed border_style field (now in Control)
30749         * MessageBox.cs:
30750           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
30751             fixed calculations for form size
30752           - Added support for localized strings and icons
30753           - Improved form size calculations, added border
30754         * ListView.cs: Removed border_style field (now in Control)
30755         * X11Structs.cs: Moved several structs from X11 driver here
30756         * X11Keyboard.cs: Changed debug message
30757         * Application.cs: Removed FormParent concept support
30758         * CommonDialog.cs:
30759           - Resetting end_modal flag
30760           - Removed FormParent concept support
30761         * NativeWindow.cs: Removed FormParent concept support
30762         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
30763           Client area and Non-Client whole window to allow support for WM_NC
30764           messages
30765         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
30766           prevent using it until it supports Hwnd as per Geoff Norton's request
30767         * ToolBar.cs: Fixed drawing, was not doing proper drawing
30768         * PictureBox.cs: Removed border_style field, now in Control
30769         * XplatUIWin32.cs: Added new driver methods
30770
30771 2005-02-12  Peter Bartok  <pbartok@novell.com>
30772
30773         * OpacityConverter.cs: Implemented
30774         * Hwnd.cs: Internal class to support drivers that need to emulate
30775           client area/non-client area window behaviour
30776
30777 2005-02-11  Peter Bartok  <pbartok@novell.com>
30778
30779         * KeysConverter.cs: Implemented
30780
30781 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
30782
30783         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
30784         * LinkLabel: Added missing attributes
30785         * MainMenu.cs: fixes ToString
30786         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
30787         * ListBox.cs: fixes event position
30788         * TrackBar.cs: adds missing attributes and events
30789         
30790 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
30791
30792         * MenuItem.cs: Use SystemInformation and bug fixes
30793         * MenuAPI.cs: Use SystemInformation and bug fixes
30794
30795 2005-02-09  Jackson Harper  <jackson@ximian.com>
30796
30797         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
30798         their keystate otherwise things like VK_MENU get stuck "on".
30799
30800 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
30801
30802         * ListBox.cs: Fixes AddRange bug
30803         
30804 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
30805
30806         * ProgressBar.cs
30807                 - Add missing attributes
30808                 - Add missing method
30809                 
30810         * CheckedListBox.cs: Added missing attributes
30811                 - Add missing attributes
30812                 - Remove extra method
30813         
30814         * ComboBox.cs: Added missing attributes
30815         * VScrollBar.cs: Added missing attributes
30816         * ScrollBar.cs:  Added missing attributes
30817         * ListBox.cs: Fixes signature, add missing consts
30818         * LinkArea.cs:   Added missing attributes
30819         
30820
30821 2005-02-08  Peter Bartok  <pbartok@novell.com>
30822
30823         * Menu.cs: Added missing attributes
30824         * MainMenu.cs: Added missing attributes
30825         * GroupBox.cs: Added missing attributes
30826         * Label.cs: Added missing attributes
30827         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
30828         * ColorDialog.cs:
30829           - Added Instance and Options properties
30830           - Added missing attributes
30831         * Cursor.cs: Made Serializable
30832         * NotifyIcon: Added missing attributes
30833         * MenuItem.cs: Added missing attributes
30834         * TextBoxBase.cs: Implemented AppendText() and Select() methods
30835         * Panel.cs: Added Missing attributes
30836         * MonthCalendar.cs: Fixed CreateParams
30837
30838 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
30839         
30840         * LinkLabel.cs:
30841                 - Fixes signature
30842                 - Fixes issues with links
30843                 - Adds the class attributes
30844
30845 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
30846         
30847         * ComboBox.cs:
30848                 - Fixes button when no items available in dropdown
30849                 - Fixes repainting problems
30850                 - Adds the class attributes
30851                 
30852 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
30853
30854         * XplatUIOSX.cs: Detect the menu bar and title bar height from
30855         the current theme.  Cache these on startup.
30856
30857 2005-02-07  Jackson Harper  <jackson@ximian.com>
30858
30859         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
30860         the scrollbar buttons when they are depressed.
30861
30862 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
30863
30864         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
30865         Get the display size from the main displayid.  We currently dont
30866         support multiple display configurations.
30867
30868 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
30869
30870         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
30871
30872 2005-02-07  Miguel de Icaza  <miguel@novell.com>
30873
30874         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
30875
30876 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
30877
30878         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
30879
30880 2005-02-04  Jackson Harper  <jackson@ximian.com>
30881
30882         * ThemeWin32Classic.cs: Respect the clipping rect when
30883         drawing. Only fill the intersection of clips and rects so there
30884         isn't a lot of large fills.
30885         * ScrollBar.cs: Pass the correct clipping rect to the theme
30886         engine. Remove some debug code.
30887
30888 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
30889         
30890         * DateTimePicker.cs:
30891                 - Fixed crash on DateTime.Parse, use Constructor instead
30892
30893 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
30894         
30895         * MenuItem.cs:
30896         * MenuAPI.cs:
30897                 - Owner draw support (MeasureItem and DrawItem)
30898
30899 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
30900         
30901         *  Menu.cs:
30902                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
30903                 - Fixes MenuItems.Add range
30904         * MenuItem.cs:
30905                 - MergeMenu and Clone and CloneMenu functions
30906
30907 2005-02-03  Jackson Harper  <jackson@ximian.com>
30908
30909         * ScrollBar.cs: Make abstract
30910         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
30911         is abstract.
30912
30913 2005-02-03  Jackson Harper  <jackson@ximian.com>
30914
30915         * ScrollBar.cs: First part of my scrollbar fixups. This removes
30916         all the unneeded refreshes and uses invalidates with properly
30917         computed rects.
30918
30919 2005-02-03  Peter Bartok  <pbartok@novell.com>
30920
30921         * ComponentModel.cs: Added
30922         * IDataGridEditingService.cs: Added
30923         * Timer.cs: Added missing attributes
30924         * ToolTip.cs: Added missing attributes
30925
30926 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
30927
30928         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
30929
30930 2005-02-03  Peter Bartok  <pbartok@novell.com>
30931
30932         * ListBox.cs: Added missing attributes
30933
30934 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
30935         
30936         * ListBox.cs:
30937                 - Fixes font height after font change
30938                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
30939                 
30940 2005-02-02  Peter Bartok  <pbartok@novell.com>
30941
30942         * HandleData.cs: Introduced static methods to allow class
30943           to be more self-contained and track it's own HandleData objects
30944         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
30945           HandleData to use new static methods
30946
30947 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
30948
30949         * Combobox.cs:
30950                 - Fixes default size and PreferredHeight
30951                 - Missing events
30952                 - ObjectCollection.Insert implementation
30953                 
30954         * ListControl.cs
30955                 - Fixes signature
30956         * ListBox.cs:
30957                 - Several fixes
30958                 - ObjectCollection.Insert implementation
30959                 - No selection after clean
30960                 - Small fixes
30961
30962 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
30963
30964         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
30965
30966 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
30967
30968         * Combobox.cs:
30969                 - Caches ItemHeight calculation for OwnerDrawVariable
30970                 - Handles dropdown properly
30971                 - Fixes several minor bugs
30972
30973 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
30974
30975         * ListBox.cs:
30976                 - Fixes 71946 and 71950
30977                 - Fixes changing Multicolumn on the fly
30978                 - Fixes keyboard navigation on Multicolumn listboxes
30979
30980 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
30981         
30982         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
30983         crash reporter log.
30984
30985 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
30986
30987         * XplatUIOSX.cs: Allow applications to actually exit.
30988
30989 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
30990
30991         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
30992         their parent at creation time rather than lazily later.  Fixes a major
30993         regression we were experiencing.
30994
30995 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
30996
30997         * ThemeWin32Classic.cs: more date time picker painting fixes
30998         * DateTimePicker.cs: more monthcalendar drop down fixes
30999         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
31000
31001 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
31002
31003         * ScrollBar.cs:
31004                 - When moving the thumb going outside the control should stop the moving
31005                 - Adds the firing of missing events
31006                 - Fixes no button show if Size is not specified
31007                 - End / Home keys for keyboard navigation
31008
31009 2005-01-30  Peter Bartok  <pbartok@novell.com>
31010
31011         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
31012           sanity check to prevent theoretical loop
31013         * XplatUIWin32.cs (SetVisible): Removed debug output
31014         * XplatUIX11.cs (SystrayChange): Added sanity check
31015         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
31016         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
31017           behaviour, valid until the X11 client window rewrite is done
31018         * TextBox.cs (ctor): Setting proper default foreground and background
31019           colors
31020
31021 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
31022
31023         * Theme: Added DrawDateTimePicker to interface
31024         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
31025         * DateTimePicker.cs: Created (still needs keys and painting code)
31026         * DateTimePickerFormat.cs: added
31027         * MonthCalendar.cs: fixed CreateParams for popup window mode
31028           
31029 2005-01-29  Peter Bartok  <pbartok@novell.com>
31030
31031         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
31032           this should also the calculations for ligher/darker
31033         * Theme.cs: Fixed defaults for ScrollBar widths/heights
31034
31035 2005-01-29  Peter Bartok  <pbartok@novell.com>
31036
31037         * ArrangeDirection.cs: Added
31038         * ArrangeStartingPositon.cs: Added
31039         * SystemInformation.cs: Implemented
31040         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
31041           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
31042           used by SystemInformation class
31043         * X11Strucs.cs: Added XSizeHints structure
31044         * MenuAPI.cs:
31045           - Fixed CreateParams to make sure the menu window is always visible
31046           - TrackPopupMenu: Added check to make sure we don't draw the
31047             menu offscreen
31048
31049 2005-01-29  Peter Bartok  <pbartok@novell.com>
31050
31051         * HandleData.cs: Added method for altering invalid area
31052         * TextBoxBase.cs: Implemented TextLength
31053
31054 2005-01-28  Peter Bartok  <pbartok@novell.com>
31055
31056         * XplatUIX11.cs: Improvement over last patch, not sending
31057           the WM_PAINT directly anymore, instead we scroll any pending
31058           exposed areas and let the system pick out the WM_PAINT later
31059
31060 2005-01-28  Peter Bartok  <pbartok@novell.com>
31061
31062         * SWF.csproj: Deleted, no longer used. Instead,
31063           Managed.Windows.Forms/SWF.csproj should be used
31064         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
31065           directly, to avoid a potential race condition with the next
31066           scroll
31067
31068 2005-01-28  Peter Bartok  <pbartok@novell.com>
31069
31070         * XplatUI.cs: Made class internal
31071
31072 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
31073
31074         * CheckedListBox.cs:
31075                 - Draw focus
31076                 - Fixed Drawing
31077                 - Missing methods and events
31078
31079 2005-01-27  Peter Bartok  <pbartok@novell.com>
31080
31081         * Application.cs (Run): Don't use form if we don't have one
31082
31083 2005-01-27  Peter Bartok  <pbartok@novell.com>
31084
31085         * TextBoxBase.cs (get_Lines): Fixed index off by one error
31086
31087 2005-01-27  Peter Bartok  <pbartok@novell.com>
31088
31089         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
31090         * GridItem.cs: Added; Patch by Jonathan S. Chambers
31091         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
31092         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
31093         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
31094         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
31095         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
31096         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
31097         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
31098         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
31099         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
31100         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
31101
31102 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
31103
31104         * Combobox.cs:
31105                 - Draw focus on Simple Combobox
31106                 - Fixes drawing issues
31107                 - fixes 71834
31108
31109 2005-01-27  Peter Bartok  <pbartok@novell.com>
31110
31111         * Form.cs:
31112           - Place window in default location, instead of hardcoded 0/0
31113           - Send initial LocationChanged event
31114         * Control.cs:
31115           - UpdateBounds after creation to find out where the WM placed us
31116           - Make sure that if the ParentForm changes location the Form
31117             is notified
31118         * XplatUIX11.cs: XGetGeometry will not return the coords relative
31119             to the root, but to whatever the WM placed around us.
31120             Translate to root coordinates before returning toplevel
31121             coordinates
31122         * XplatUIWin32.cs: Removed debug output
31123         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
31124           flag to GetWindowPos, to allow translation of coordinates on X11
31125
31126 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
31127
31128         * ListBox.cs: connect LostFocus Event
31129
31130 2005-01-27  Peter Bartok  <pbartok@novell.com>
31131
31132         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
31133           XplatUIX11.cs: Extended the Systray API
31134         * Form.cs: Removed debug output
31135         * Application.cs: Fixed focus assignment, always need to call
31136           XplatUI.Activate() since Form.Activate() has rules that may
31137           prevent activation
31138         * NotifyIcon.cs: Should be complete now
31139         * ToolTip.cs: Worked around possible timer bug
31140
31141 2005-01-27  Jackson Harper  <jackson@ximian.com>
31142
31143         * TabControl.cs:
31144         - Only invalidate the effected tabs when the
31145         selected index changes. This reduces drawing and gets rid of some
31146         flicker.
31147         - Only refresh if the tabs need to be shifted, otherwise only
31148         invalidate the slider button.
31149         - On windows the tabs are not filled to right if the slider is
31150         visible.
31151         
31152 2005-01-27  Jackson Harper  <jackson@ximian.com>
31153
31154         * TabControl.cs: Only refresh on mouseup if we are showing the
31155         slider. Also only invalidate the button whose state has changed.
31156
31157 2005-01-26  Peter Bartok  <pbartok@novell.com>
31158
31159         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
31160         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
31161           and SystrayRemove() methods
31162         * XplatUIOSX.cs: Stubbed Systray methods
31163         * XplatUIX11.cs:
31164           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
31165             methods
31166           - Fixed broken XChangeProperty calls (marshalling messed up things)
31167         * X11Structs.cs: Added enums and structs required for Size hinting
31168         * NotifyIcon.cs: Added & implemented
31169
31170 2005-01-26  Jackson Harper  <jackson@ximian.com>
31171
31172         * TabControl.cs: Space vertically layed out tabs properly.
31173
31174 2005-01-26  Peter Bartok  <pbartok@novell.com>
31175
31176         * Form.cs (CreateClientParams): Always set the location to 0,0
31177           since we're a child window.
31178
31179         * Control.cs (SetVisibleCore): Always explicitly setting the location
31180           of a toplevel window, apparently X11 doesn't like to move windows
31181           while they're not mapped.
31182
31183 2005-01-26  Jackson Harper  <jackson@ximian.com>
31184
31185         * TabControl.cs: Implement FillToRight size mode with vertically
31186         rendered tabs.
31187
31188 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
31189
31190         * ControlPaint.cs, ThemeWin32Classic.cs
31191                 - Fixes DrawFocusRectangle
31192
31193 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
31194
31195         * MenuAPI.cs:
31196                 - MenuBar tracking only starts when item is first clicked
31197                 - Fixes menu hidding for multiple subitems
31198                 - Unselect item in MenuBar when item Executed
31199                 - Fixes bug 71495
31200
31201 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
31202
31203         * ListControl.cs:
31204                 - IsInputKey for ListBox
31205         * ListBox.cs:
31206                 - Focus item
31207                 - Shift and Control item selection
31208                 - Implement SelectionMode.MultiExtended
31209                 - Fixes RightToLeft
31210         * ComboBox.cs:
31211                 - IsInputKey implemented
31212                 - Do not generate OnTextChangedEdit on internal txt changes
31213                 
31214 2005-01-23  Peter Bartok  <pbartok@novell.com>
31215
31216         * AccessibleObject.cs: Partially implemented Select()
31217         * MonthCalendar.cs: Added missing attributes and events
31218         * Form.cs: Fixed CreateParams behaviour, now controls derived from
31219           form can properly override CreateParams.
31220         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
31221           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
31222           Control performs Invalidate & Update
31223         * NativeWindow (CreateHandle): Added special handling for Form
31224           and Form.FormParent classes to allow overriding of From.CreateParams
31225         * Control.cs:
31226           - ControlNativeWindow: Renamed 'control' variable to more intuitive
31227             name 'owner'
31228           - ControlNativeWindow: Added Owner property
31229           - Removed usage of Refresh() on property changes, changed into
31230             Invalidate(), we need to wait until the queue is processed for
31231             updates, direct calls might cause problems if not all vars for
31232             Paint are initialized
31233           - Added call to UpdateStyles() when creating the window, to set any
31234             styles that CreateWindow might have ignored.
31235           - Added support for Form CreateParent overrides to UpdateStyles()
31236         * MessageBox.cs: Removed no longer needed FormParent override stuff,
31237           CreateParams are now properly overridable
31238         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
31239           CreateParams are now properly overridable
31240
31241 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
31242
31243         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
31244         OnTextBoxChanged.
31245
31246         Capture LostFocus and OnTextBoxChanged.  The later introduces a
31247         recursive invocation that I have not figured out yet.
31248
31249         Reset the timer when not using (it was accumulating).
31250
31251
31252         (OnTextBoxChanged): Set UserEdit to true here to track whether the
31253         user has made changes that require validation.
31254
31255         Reset changing to avoid loops.
31256
31257 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
31258
31259         * NumericUpDown.cs: Display value at startup.
31260
31261         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
31262         ValidateEditText.
31263
31264         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
31265         filled in.  Added some basic parsing of text.
31266
31267         Still missing the OnXXX method overrides, and figuring out the
31268         events that must be emitted.
31269
31270         * UpDownBase.cs: Handle UserEdit on the Text property.
31271         
31272 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
31273
31274         * ComboBox.cs:
31275           - Fixes IntegralHeight
31276           - ToString method
31277
31278 2005-01-21  Jackson Harper  <jackson@ximian.com>
31279
31280         * TabControl.cs: Set the SelectedIndex property when SelectedTab
31281         is set so that the page visibility is updated and the tabs are
31282         sized correctly.
31283
31284 2005-01-21  Jackson Harper  <jackson@ximian.com>
31285
31286         * TabControl.cs: Use cliping rectangle for blitting. Give the
31287         theme the clipping rect so we can do clipping while
31288         drawing. Remove some debug code.
31289
31290 2005-01-21  Jackson Harper  <jackson@ximian.com>
31291
31292         * TabPage.cs: Add a new method so tab pages can force the tab
31293         control to recalculate the tab page sizes.
31294         * TabControl.cs: UpdateOwner needs to make the tab control recalc
31295         sizes.
31296
31297 2005-01-20  Jackson Harper  <jackson@ximian.com>
31298
31299         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
31300
31301 2005-01-20  Jackson Harper  <jackson@ximian.com>
31302
31303         * TreeView.cs: Set the bounds for nodes properly. They were
31304         getting screwed up when checkboxes were not enabled, but images
31305         were.
31306
31307 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
31308
31309         * ListBox.cs:
31310                 - Owner draw support
31311                 - Fixes
31312                 
31313 2005-01-20  Jackson Harper  <jackson@ximian.com>
31314
31315         * XplatUIStructs.cs: More misc keys
31316         * X11Keyboard.cs: Ignore some control keys.
31317
31318 2005-01-20  Jackson Harper  <jackson@ximian.com>
31319
31320         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
31321         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
31322
31323 2005-01-19  Peter Bartok  <pbartok@novell.com>
31324
31325         * Control.cs: Un-selecting the control when it is loosing focus
31326
31327 2005-01-19  Jackson Harper  <jackson@ximian.com>
31328
31329         * TreeView.cs: Hook up to the text controls leave event so we can
31330         end editing when the users clicks outside the text box.
31331         
31332 2005-01-19  Jackson Harper  <jackson@ximian.com>
31333
31334         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
31335         get set in the conversion array.
31336
31337 2005-01-19  Peter Bartok  <pbartok@novell.com>
31338
31339         * Application.cs (ModalRun): Added a call to CreateControl to ensure
31340           focus is properly set
31341         * Button.cs:
31342           - Added missing attributes
31343           - removed styles, those are already set in the base class
31344         * ButtonBase.cs:
31345           - Added missing attributes
31346           - Added clip window styles
31347         * CheckBox.cs: Added missing attributes
31348         * CommonDialog.cs:
31349           - FormParentWindow.CreateParams: Added required clip styles
31350         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
31351           also filters modifier keys
31352         * MessageBox.cs:
31353           - Added assignment of Accept and Cancel button to enable Enter
31354             and Esc keys in MessageBox dialogs
31355           - FormParentWindow.CreateParams: Added required clip styles
31356         * RadioButton.cs: Added missing attributes
31357         * TextControl.cs: No longer draws selection if control does not
31358           have focus
31359         * TextBoxBase.cs:
31360           - Now draws simple rectangle around test area to make it obvious
31361             there's a control. This is a hack until we properly support borders
31362           - A few simple fixes to support selections better, now erases selected
31363             text when typing, and resets selection when using movement keys
31364
31365 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
31366
31367         * UpDownBase.cs: Added some new properties.
31368
31369         * DomainUpDown.cs: Implement a lot to get my test working.
31370
31371 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
31372
31373         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
31374
31375 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
31376
31377         * OSXStructs (WindowAttributes): Fixed csc complaints
31378
31379 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
31380
31381         * XplayUIOSX.cs:
31382           OSXStructs.cs: Initial refactor to move enums and consts into
31383           OSXStructs and use them in the driver for greater readability.
31384
31385 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
31386
31387         * XplatUIOSX.cs: Initial support for Standard Cursors.
31388         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
31389
31390 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
31391
31392         * ComboBox.cs: ability to change style when the ctrl is already
31393         created, missing methods and events, bug fixes, signature fixes
31394
31395 2005-01-19  Peter Bartok  <pbartok@novell.com>
31396
31397         * Cursors.cs (ctor): Added ctor to fix signature
31398
31399 2005-01-18  Peter Bartok  <pbartok@novell.com>
31400
31401         * Button.cs: Implemented DoubleClick event
31402         * ButtonBase.cs:
31403           - Fixed keyboard handling to behave like MS, where the press of
31404             Spacebar is equivalent to a mousedown, and the key release is
31405             equivalent to mouseup. Now a spacebar push will give the same
31406             visual feedback like a mouse click.
31407           - Added missing attributes
31408           - Added ImeModeChanged event
31409           - Added support for generating DoubleClick event for derived classes
31410         * CheckBox.cs:
31411           - Implemented DoubleClick event
31412           - Added missing attributes
31413         * CommonDialog.cs: Added missing attribute
31414         * ContextMenu.cs: Added missing attributes
31415         * RadioButton.cs:
31416           - AutoChecked buttons do not allow to be unselected when clicked
31417             (otherwise we might end up with no selected buttons in a group)
31418           - Added missing attributes
31419           - Implemented DoubleClickEvent
31420         * ThreadExceptionDialog.cs: Enabled TextBox code
31421
31422 2005-01-18  Peter Bartok  <pbartok@novell.com>
31423
31424         * Form.cs: Removed debug output
31425         * Button.cs: Added support for DoubleClick method
31426
31427 2005-01-18  Peter Bartok  <pbartok@novell.com>
31428
31429         * Form.cs:
31430           - Added method to parent window that allows triggering size
31431             calculations when a menu is added/removed
31432           - set_Menu: Cleaned up mess from early days of Form and Control,
31433             now properly triggers a recalc when a menu is added/removed
31434           - Added case to select form itself as focused form if no child
31435             controls exist
31436           - Added PerformLayout call when showing dialog, to ensure properly
31437             placed controls
31438         * Control.cs:
31439           - Select(): Made internal so Form can access it
31440           - Focus(): Only call Xplat layer if required (avoids loop), and sets
31441             status
31442         * Application.cs (Run): Removed hack and calls PerformLayout instead
31443           to trigger calculation when Form becomes visible
31444
31445 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
31446
31447         * ComboBox.cs: fixes for ownerdraw
31448
31449 2005-01-18  Peter Bartok  <pbartok@novell.com>
31450
31451         * TextControl.cs:
31452           - Sentinel is no longer static, each Document gets it's own, this
31453             avoids locking or alternatively overwrite problems when more
31454             than one text control is used simultaneously.
31455           - Switched to use Hilight and HilightText brushes for text selection
31456
31457         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
31458
31459 2005-01-18  Peter Bartok  <pbartok@novell.com>
31460
31461         * Control.cs:
31462           - Hooked up the following events:
31463                 o ControlAdded
31464                 o ControlRemoved
31465                 o HandleDestroyed
31466                 o ImeModeChanged
31467                 o ParentChanged
31468                 o TabStopChanged
31469                 o Invalidated
31470                 o SystemColorsChanged
31471                 o ParentFontChanged
31472                 o Move
31473           - Removed debug output
31474           - Added a call to the current theme's ResetDefaults when a color change
31475             is detected
31476         * Form.cs: Now setting the proper ImeMode
31477         * Theme.cs: Defined a method to force recreation of cached resources
31478           and rereading of system defaults (ResetDefaults())
31479         * ThemeWin32Classic.cs: Added ResetDefaults() stub
31480
31481 2005-01-17  Peter Bartok  <pbartok@novell.com>
31482
31483         * Control.cs: Added missing attributes
31484
31485 2005-01-17  Jackson Harper  <jackson@ximian.com>
31486
31487         * TreeNode.cs: Implement editing. Add missing properties selected
31488         and visible.
31489         * TreeView.cs: Implement node editing. Also some fixes to use
31490         Invalidate (invalid area) instead of Refresh when selecting.
31491
31492 2005-01-17  Peter Bartok  <pbartok@novell.com>
31493
31494         * Control.cs:
31495           - Implemented InvokeGotFocus() method
31496           - Implemented InvokeLostFocus() method
31497           - Implemented InvokePaint() method
31498           - Implemented InvokePaintBackground() method
31499           - Implemented InvokeClick() method
31500           - Implemented FindForm() method
31501           - Implemented RectangleToClient() method
31502           - Implemented ClientToRectangle() method
31503           - Implemented ResetBackColor() method
31504           - Implemented ResetCursor() method
31505           - Implemented ResetFont() method
31506           - Implemented ResteForeColor() method
31507           - Implemented ResetImeMode() method
31508           - Implemented ResetLeftToRight() method
31509           - Implemented ResetText() method
31510           - Implemented Scale() methods
31511           - Implemented ScaleCore() method
31512           - Implemented Update() method
31513           - Removed unused variables
31514           - Stubbed AccessibilityNotifyClients and
31515             ControlAccessibleObject.NotifyClients() methods (dunno what to do
31516             with those yet)
31517           - Now setting proper default for RightToLeft property
31518           - Fixed bug in SetClientSizeCore that would cause windows to get
31519             really big
31520           - Now sending Click/DoubleClick events
31521           - Now selecting controls when left mouse button is clicked on
31522             selectable control
31523         * AccessibleEvents.cs: Added
31524         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
31525         * XplatUIOSX.cs: Stubbed UpdateWindow() method
31526         * XplatUIWin32.cs: Implemented UpdateWindow() method
31527         * XplatUIX11.cs: Implemented UpdateWindow() method
31528         * Form.cs: Removed stray semicolon causing CS0162 warning
31529         * ThemeWin32Classic.cs: Fixed unused variable warnings
31530         * ScrollableControl.cs: Now calls base method for ScaleCore
31531         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
31532           style to avoid interference with internal click handler (which is
31533           different than standard Control click handling)
31534         * RadioButton.cs:
31535           - Now unchecks all sibling radio buttons when control is
31536             selected (Fixes #68756)
31537           - Removed internal tabstop variable, using the one inherited from
31538             Control
31539
31540 2005-01-17  Jackson Harper  <jackson@ximian.com>
31541
31542         * NavigateEventArgs.cs: Fix base type.
31543         * LinkLabel.cs: Sig fix
31544         
31545 2005-01-17  Jackson Harper  <jackson@ximian.com>
31546
31547         * TreeView.cs: Only invalidate the effected nodes bounds when
31548         selecting nodes.
31549
31550 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
31551
31552         * XplatUIWin32.cs: fixes Win32 marshaling
31553         * XplatUIX11.cs: fixes method signature
31554
31555 2005-01-17  Peter Bartok  <pbartok@novell.com>
31556
31557         * XplatUIX11.cs: Clean up resources when we no longer need them
31558
31559 2005-01-17  Peter Bartok  <pbartok@novell.com>
31560
31561         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
31562           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
31563           and DestroyCursor() methods.
31564         * Cursor.cs: Partially implemented, now supports standard cursors;
31565           still contains some debug code
31566         * Cursors.cs: Implemented class
31567         * Control.cs:
31568           - WndProc(): Added handling of WM_SETCURSOR message, setting the
31569             appropriate cursor
31570           - Implemented Cursor property
31571           - Replaced break; with return; more straightforwar and possibly
31572             faster
31573           - Now properly setting the result for WM_HELP
31574         * X11Structs.cs: Added CursorFontShape enum
31575         * XplatUIStructs.cs:
31576           - Added StdCursor enum (to support DefineStdCursor() method)
31577           - Added HitTest enum (to support sending WM_SETCURSOR message)
31578         * XplatUIX11.cs:
31579           - Now sends the WM_SETCURSOR message
31580           - Implemented new cursor methods
31581         * XplatUIOSX.cs: Stubbed new cursor methods
31582         * XplatUIWin32.cs:
31583           - Implemented new cursor methods
31584           - Added GetSystemMetrics function and associated enumeration
31585
31586 2005-01-15  Peter Bartok  <pbartok@novell.com>
31587
31588         * Control.cs:
31589           - WndProc(): Now handles EnableNotifyMessage
31590           - SelectNextControl(): Fixed bug where if no child or sibling
31591             controls exist we looped endlessly
31592
31593 2005-01-14  Jackson Harper  <jackson@ximian.com>
31594
31595         * TreeView.cs: Recalculate the tab pages when a new one is added
31596         so that the proper bounding rects are created.
31597
31598 2005-01-14  Jackson Harper  <jackson@ximian.com>
31599
31600         * TreeView.cs: Draw a gray box instead of a grip in the lower
31601         right hand corner when there are both horizontal and vertical
31602         scroll bars.
31603
31604 2005-01-14  Jackson Harper  <jackson@ximian.com>
31605
31606         * Control.cs: When erasing backgrounds use FromHwnd instead of
31607         FromHdc when there is a NULL wparam. This occurs on the X driver.
31608         * XplatUIX11.cs: Set the wparam to NULL.
31609
31610 2005-01-13  Jackson Harper  <jackson@ximian.com>
31611
31612         * PictureBox.cs: Implement missing methods (except ToString, need
31613         to test that on windows) and events. When visibility is changed we
31614         need to redraw the image because the buffers are killed. When size
31615         is changed refresh if the sizemode needs it.
31616
31617 2005-01-13  Peter Bartok  <pbartok@novell.com>
31618
31619         * Control.cs (SelectNextControl): Was using wrong method to select
31620           a control
31621
31622 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
31623
31624         * ComboBox.cs: fixes dropstyle
31625
31626 2005-01-13  Peter Bartok  <pbartok@novell.com>
31627
31628         * Form.cs:
31629           - Implemented Select() override
31630           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
31631           - Now sets keyboard focus on startup
31632         * Control.cs (SelectNextControl): Now properly handles directed=true
31633         * TextBoxBase.cs:
31634           - WndProc: Now passes tab key on to base if AcceptTabChar=false
31635           - Added (really bad) focus rectangle (mostly for testing)
31636         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
31637           to enforce redraw on focus changes
31638         * ContainerControl.cs:
31639           - Fixed detection of Shift-Tab key presses
31640           - Fixed traversal with arrow keys
31641         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
31642           gonna keep this or if it's complete yet
31643         
31644 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
31645
31646         * ComboBox.cs: missing properties, fixes
31647
31648 2005-01-13  Peter Bartok  <pbartok@novell.com>
31649
31650         * Panel.cs (ctor): Setting Selectable window style to off
31651         * Splitter.cs (ctor): Setting Selectable window style to off
31652         * GroupBox.cs (ctor): Setting Selectable window style to off
31653         * Label.cs (ctor): Setting Selectable window style to off
31654
31655 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
31656
31657         * UpDownBase.cs (InitTimer): If the timer has been already
31658         created, enable it.
31659
31660         Use a TextBox instead of a Label.
31661
31662 2005-01-12  Jackson Harper  <jackson@ximian.com>
31663
31664         * TreeView.cs: Refresh the tree after sorting the nodes. Always
31665         draw the connecting node lines (when ShowLines is true).
31666         * TreeNode.cs: The nodes index can now be updated. This is used
31667         when a node collection is sorted.
31668         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
31669         insert or an existing unsorted node collection can be sorted.
31670         
31671 2005-01-12  Peter Bartok  <pbartok@novell.com>
31672
31673         * ContainerControl.cs: Implemented ProcessDialogKeys()
31674
31675 2005-01-12  Peter Bartok  <pbartok@novell.com>
31676
31677         * Control.cs:
31678           - Implemented SelectNextControl() method
31679           - Several focus related bug fixes
31680           - Fixed Docking calculations to match MS documentation and
31681             behaviour
31682
31683 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
31684
31685         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
31686         bug fixes
31687
31688 2005-01-12  Peter Bartok  <pbartok@novell.com>
31689
31690         * Control.cs:
31691           - Fixed broken Contains() method
31692           - Implemented GetNextControl() method. Finally. This is the pre-
31693             requisite for focus handling.
31694
31695 2005-01-12  Peter Bartok  <pbartok@novell.com>
31696
31697         * OSXStrucs.cs: Added
31698
31699 2005-01-12  Peter Bartok  <pbartok@novell.com>
31700
31701         * XplatUIWin32.cs:
31702           - Removed PeekMessageFlags
31703           - Implemented SetWindowStyle() method
31704         * XplatUIStructs.cs: Added PeekMessageFlags
31705         * X11Structs: Added missing border_width field to XWindowChanges struct
31706         * XplatUIX11.cs:
31707           - PeekMessage: Now throws exception if flags which are not yet
31708             supported are passed
31709           - Implemented SetWindowStyle() method
31710           - Fixed SetZOrder to handle AfterHwnd properly
31711         * XplatUI.cs: Added SetWindowStyle() method
31712         * XplatUIDriver.cs: Added SetWindowStyle() abstract
31713         * Control.cs:
31714           - Implemented UpdateStyles() method
31715           - Implemented UpdateZOrder() method
31716         * XplatUIOSX.cs: Added SetWindowStyle() stub
31717
31718 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
31719
31720         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
31721         button mouse).
31722
31723
31724 2005-01-11  Jackson Harper  <jackson@ximian.com>
31725
31726         * TreeView.cs: Still need to draw lines to siblings even if out of
31727         the current node is out of the clip.
31728
31729 2005-01-11  Jackson Harper  <jackson@ximian.com>
31730
31731         * TreeView.cs: When setting the hbar/vbar/grip position use
31732         SetBounds so that perform layout is only called once. Also suspend
31733         and resume layout so layout is only done once for all controls.
31734         - Removed some debug fluff
31735         * SizeGrip.cs: Call base implmentation in overriding methods.
31736         - When visibility is changed the drawing buffers are killed so we
31737         need to redraw.
31738
31739 2005-01-11  Jackson Harper  <jackson@ximian.com>
31740
31741         * TreeView.cs: Calculate the open node count while drawing. This
31742         saves us an entire tree traversal for every paint operation. Use
31743         a member var for the open node count so less vars are passed around.
31744
31745 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
31746
31747         * MonthCalendar.cs:
31748         - fixed selection to use mousemove, not mouse polling on timer
31749         * ThemeWin32Classic.cs
31750         - removed redundant unused variable "no_more_content"
31751         
31752 2005-01-11  Peter Bartok  <pbartok@novell.com>
31753
31754         * XplatUIX11.cs (DoEvents): Needs to return when no more events
31755           are pending, so it now calls PeekMessage instead of GetMessage;
31756           implemented a incomplete version of PeekMessage
31757         
31758 2005-01-11  Peter Bartok  <pbartok@novell.com>
31759
31760         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
31761           I18n issues
31762         * TextBoxBase.cs: Added sending of TextChanged event
31763
31764 2005-01-10  Jackson Harper  <jackson@ximian.com>
31765
31766         * TreeView.cs: Try not to draw outside the clipping rectangle on
31767         each node element.
31768
31769 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
31770
31771         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
31772
31773 2005-01-10  Jackson Harper  <jackson@ximian.com>
31774
31775         * TreeView.cs:
31776         - Implement fast scrolling. Now only the newly
31777         exposed nodes are drawn and the old image is moved using the
31778         XplatUI::ScrollWindow method.
31779         - Factor in height of nodes when calculating whether or not the
31780         node is in the clipping rect.
31781
31782 2005-01-10  Jackson Harper  <jackson@ximian.com>
31783
31784         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
31785
31786 2005-01-10  Peter Bartok  <pbartok@novell.com>
31787
31788         * Application.cs: Added temporary hack to resolve all our resize
31789           required issues on startup. This will get fixed properly at
31790           some point in the future
31791
31792 2005-01-10  Jackson Harper  <jackson@ximian.com>
31793
31794         * SizeGrip.cs: New internal class that is used as a sizing
31795         grip control...hence the name.
31796
31797 2005-01-10  Peter Bartok  <pbartok@novell.com>
31798
31799         * Control.cs: Implemented proper TabIndex handling, now assigning
31800           a tabindex when a control is added to a container
31801         * GroupBox.cs (ctor): Now sets the Container style bit, required
31802           for Control.GetNextControl()
31803
31804 2005-01-09  Jackson Harper  <jackson@ximian.com>
31805
31806         * TextBoxBase.cs: Clear window when scrolling (fixes build).
31807
31808 2005-01-09  Peter Bartok <pbartok@novell.com>
31809
31810         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
31811           XplatUIX11.cs: Added ability to control ScrollWindow expose and
31812           an overload for ScrollWindow to allow only scrolling a rectangle
31813
31814 2005-01-09  Peter Bartok <pbartok@novell.com>
31815
31816         * Form.cs:
31817           - Implemented SetDesktopBounds method
31818           - Implemented SetDesktopLocation method
31819
31820 2005-01-08  Jackson Harper  <jackson@ximian.com>
31821
31822         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
31823         the node count has changed, this removes to VScroll::Refresh calls
31824         when drawing.
31825
31826 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
31827
31828         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
31829
31830 2005-01-07  Jackson Harper  <jackson@ximian.com>
31831
31832         * TreeNode.cs: Just update the single node when it is
31833         checked. Don't refresh after toggling, the Expand/Collapse already
31834         handles this.
31835         * TreeView.cs: Respect clipping a little more when drawing. Try
31836         not to redraw things that don't need to be redrawn. Just hide the
31837         scrollbars when they are no longer needed instead of removing
31838         them, so they don't have to be created again and again.
31839         
31840 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
31841
31842         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
31843         coordinates to window space to place the caret properly, FIXED.
31844         Implement GetWindowState & SetWindowState
31845
31846 2005-01-06  Peter Bartok <pbartok@novell.com>
31847
31848         * Form.cs:
31849           - Implemented ClientSize property
31850           - Implemented DesktopBounds property
31851           - Implemented DesktopLocation property
31852           - Implemented IsRestrictedWindow property
31853           - Implemented Size property
31854           - Implemented TopLevel property
31855           - Implemented FormWindowState property
31856         * Control.cs:
31857           - Implemented GetTopLevel() method
31858           - Implemented SetTopLevel() method
31859         * X11Structs.cs (Atom):
31860           - Added AnyPropertyType definition
31861           - Added MapState definiton and updated XWindowAttribute struct
31862         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
31863         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
31864         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
31865         * XplatUIWin32.cs:
31866           - Implemented GetWindowState() and SetWindowState() methods
31867           - Fixed Win32GetWindowLong return type
31868         * XplatUIX11.cs:
31869           - Introduced central function for sending NET_WM messages
31870           - Implemented GetWindowState() and SetWindowState() methods
31871         * TextBoxBase.cs (set_Lines):
31872           - Now uses Foreground color for text added via Text property (Duh!)
31873           - Added code to remember programmatically requested size (fixes
31874             behaviour when Multiline is set after Size)
31875           - Added AutoSize logic
31876
31877 2005-01-06  Jackson Harper  <jackson@ximian.com>
31878
31879         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
31880
31881 2005-01-06  Jackson Harper  <jackson@ximian.com>
31882
31883         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
31884         set to less then 0.
31885
31886 2005-01-06  Jackson Harper  <jackson@ximian.com>
31887
31888         * ScrollableControl.cs: Lazy init the scrollbars.
31889         
31890 2005-01-06  Jackson Harper  <jackson@ximian.com>
31891
31892         * Theme.cs: Speed up getting pens and solid brushes, by using
31893         their ARGB as a hash instead of tostring and not calling Contains.
31894
31895 2005-01-06  Peter Bartok <pbartok@novell.com>
31896
31897         * Form.cs:
31898           - Implemented OnActivated and OnDeactivate event trigger
31899           - Implemented Activate() method
31900           - Fixed ShowDialog() to activate the form that was active before
31901             the dialog was shown
31902         * XplatUIX11.cs:
31903           - Added global active_window var that tracks the currently active
31904             X11 window
31905           - Now always grabs Property changes from the root window to always
31906             catch changes on the active window property
31907           - Added code to PropertyNotify handler to send Active/Inactive
31908             messages when state changes. This puts X11 and Win32 en par on
31909             WM_ACTIVATE notifications (except for double notifications when
31910             the user clicks away from our modal window to another one of our
31911             windows)
31912
31913 2005-01-05  Jackson Harper  <jackson@ximian.com>
31914
31915         * ImageList.cs: Implment ctor
31916
31917 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
31918
31919         * XplatUIOSX.cs: Implement Activate/SetTopmost
31920
31921 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
31922
31923         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
31924
31925 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
31926
31927         * XplatUIOSX.cs: Implement GetActive/SetFocus.
31928
31929 2005-01-05  Peter Bartok <pbartok@novell.com>
31930
31931         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
31932           XplatUIOSX.cs: Added GetActive method to return the currently
31933           active window for the application (or null, if none is active)
31934         * Form.cs:
31935           - Implemented ActiveForm
31936           - Commented out owner assignment for modal dialogs (causes problems
31937             on Win32, since the owner will be disabled)
31938           - Reworked some Active/Focus handling (still incomplete)
31939         * CommonDialog.cs: Commented out owner assignment for modal dialogs
31940           (causes problems on Win32, since the owner will be disabled)
31941         * IWin32Window: Added ComVisible attribute
31942
31943 2005-01-05  Peter Bartok <pbartok@novell.com>
31944
31945         * ToolTip.cs (WndProc): Enable setting focus now that we have the
31946           required XplatUI functions.
31947
31948 2005-01-05  Peter Bartok <pbartok@novell.com>
31949
31950         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
31951           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
31952           to implement focus and activation handling; still incomplete and
31953           with debug output
31954
31955 2005-01-04  Peter Bartok <pbartok@novell.com>
31956
31957         * TextBoxBase.cs: Changed access level for Document property to
31958           match switch to internal for TextControl
31959
31960 2005-01-04  Peter Bartok <pbartok@novell.com>
31961
31962         * AccessibleObject: Added ComVisible attribute
31963
31964 2005-01-04  Jackson Harper  <jackson@ximian.com>
31965
31966         * X11Keyboard.cs: Remove unneeded var.
31967
31968 2005-01-04  Jackson Harper  <jackson@ximian.com>
31969
31970         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
31971         but PAINT.
31972         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
31973         ClientMessage. This makes apps exit cleanly (more often).
31974         
31975 2005-01-04  Jackson Harper  <jackson@ximian.com>
31976
31977         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
31978         handling focus, return correct colors and fonts,
31979         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
31980         handle selection, horizontal scrolling, and mouse interaction.
31981
31982 2005-01-04  Peter Bartok <pbartok@novell.com>
31983
31984         * ICommandExecutor.cs: Added
31985         * IDataGridColumnStyleEditingNotificationService.cs: Added
31986         * IFeatureSupport.cs: Added
31987         * IFileReaderService.cs: Added
31988         * IDataObject.cs: Added ComVisible attribute
31989         * AmbientProperties.cs: Added
31990         * BaseCollection.cs: Added missing attributes
31991         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
31992         * BaseCollection.cs: Added missing attributes
31993         * Binding.cs: Added TypeConverter attribute
31994         * BindingContext.cs: Added DefaultEvent attribute
31995         * BindingsCollection.cs: Added DefaultEvent attribute
31996         * Button.cs: Added DefaultValue attribute
31997         * DragEventArgs.cs: Added ComVisible attribute
31998         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
31999         * KeyEventArgs.cs: Added ComVisible attribute
32000         * KeyPressEventArgs.cs: Added ComVisible attribute
32001         * MouseEventArgs.cs: Added ComVisible attribute
32002         * NavigateEventArgs.cs: Added
32003         * NavigateEventHandler.cs: Added
32004         * FeatureSupport.cs: Added
32005         * OSFeature.cs: Added
32006         * Theme.cs: Added abstract Version property to support OSFeature
32007         * ThemeWin32Classic.cs: Added Version property to
32008           support OSFeature.Themes
32009         * ProgressBar.cs: Removed OnPaintBackground override, not required since
32010           the proper styles to avoid background drawing are set, also doesn't
32011           match MS signature
32012         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
32013         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
32014         * ScrollEventArgs.cs: Added ComVisible attribute
32015         * SplitterEventArgs.cs: Added ComVisible attribute
32016         * AccessibleSelection.cs: Added Flags attribute
32017         * Appearance.cs: Added ComVisible attribute
32018         * Border3DSide.cs: Added ComVisible attribute
32019         * Border3DStyle.cs: Added ComVisible attribute
32020         * BorderStyle.cs: Added ComVisible attribute
32021         * DragAction.cs: Added ComVisible attribute
32022         * ErrorBlinkStyle.cs: Added
32023         * ScrollEventType.cs: Added ComVisible attribute
32024         * AnchorStyles.cs: Added Editor attribute
32025         * DockStyle.cs: Added Editor attribute
32026         * HorizontalAlignment.cs: Added ComVisible attribute
32027         * HelpEventArgs.cs: Added ComVisible attribute
32028         * PaintEventArgs.cs: Added IDisposable
32029
32030 2005-01-04  Peter Bartok <pbartok@novell.com>
32031
32032         * TextControl.cs: Switched Line, LineTag and Document classes to
32033           internal
32034
32035 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
32036
32037         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
32038         Simple mode, fixes, IntegralHeight, etc.
32039
32040 2005-01-04  Peter Bartok <pbartok@novell.com>
32041
32042         * TextBoxBase.cs: Using proper font variable now
32043
32044 2005-01-04  Peter Bartok <pbartok@novell.com>
32045
32046         * Form.cs (ShowDialog): Set parent to owner, if provided
32047         * GroupBox.cs: Removed unused vars
32048         * TextControl.cs:
32049           - Added GetHashCode() for Document and LineTag classes
32050           - Removed unused variables
32051           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
32052             to allow translation between continuous char position and line/pos
32053         * CheckBox.cs: Removed vars that are provided by base class
32054         * RadioButton.cs: Removed vars that are provided by base class, added
32055           new keyword where required
32056         * LinkLabel.cs: Added new keyword where required
32057         * Control.cs (WndProc): Removed unused variable
32058         * TextBoxBase.cs:
32059           - Finished SelectionLength property
32060           - Implemented SelectionStart property
32061           - Implemented Text property
32062           - Removed unused vars
32063         * MessageBox.cs: Added new keyword where required
32064         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
32065           WndProc signature
32066         * MenuAPI.cs: Added new keyword where required
32067         * ButtonBase.cs: Removed vars that are provided by base class, added
32068           new keyword where required
32069         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
32070           argument to double, to allow compiling with csc 2.0 (Atsushi ran
32071           into this)
32072         * Application.cs (Run): Now triggers the ThreadExit event
32073         * CommonDialog.cs: Added new keyword where required; now properly sets
32074           parent (owner) for dialog
32075         * XplatUIX11.cs: Commented out unused vars
32076         * StatusBar.cs: Fixed signature for Text property
32077         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
32078
32079 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
32080
32081         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
32082         TrackBar.cs, MonthCalendar.cs: remove unused vars
32083
32084 2005-01-03  Jackson Harper  <jackson@ximian.com>
32085
32086         * ThemeWin32Classic.cs:
32087         * X11Keyboard.cs: Remove unused vars.
32088
32089 2005-01-03  Peter Bartok  <pbartok@novell.com>
32090
32091         * TextBox.cs:
32092           - set_Text: Tied into TextControl
32093           - set_TextAlignment: Tied into TextControl
32094         * TextControl.cs:
32095           - Added alignment properties and implemented alignment handling
32096             and drawing (still has a bug, not generating proper expose events)
32097           - Added new Line() constructor to allow passing the line alignment
32098           - Fixed selection setting, properly handling end<start now
32099           - Added aligment considerations to RecalculateDocument()
32100         * TextBoxBase.cs:
32101           - Now properly enforces control height for single line controls
32102           - Added support for CharacterCasing
32103           - Added IsInputKey override
32104           - Fixed Keys.Enter logic
32105           - Added SetBoundsCore override
32106           - Fixed mouse selection handling
32107
32108 2005-01-03  Jackson Harper  <jackson@ximian.com>
32109
32110         * TreeView.cs:
32111           - Collapse and uncheck all nodes when CheckBoxes is disabled.
32112           - Checkboxes are always aligned to the bottom of the node,
32113           regardless of item height.
32114           - Use the node bounds to draw the text so we can center it when
32115           the item height is greater then the font height.
32116           - Node::Bounds are only the text part of the node.
32117         * TreeNode.cs: New method to combine collapsing and unchecking all
32118           nodes recursively.
32119
32120 2005-01-02  Jackson Harper  <jackson@ximian.com>
32121
32122         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
32123         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
32124         tree when a check is changed. TODO: Only refresh the checked node.
32125
32126 2004-12-30  Jackson Harper  <jackson@ximian.com>
32127
32128         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
32129         * TreeNode.cs: When collapsing make sure to never collapse the
32130         root node.
32131
32132 2004-12-29  Jackson Harper  <jackson@ximian.com>
32133
32134         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
32135         
32136 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
32137
32138         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
32139
32140 2004-12-28  Peter Bartok  <pbartok@novell.com>
32141
32142         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
32143           not yet assigned
32144
32145 2004-12-28  Peter Bartok  <pbartok@novell.com>
32146
32147         * Control.cs (WndProc): Added WM_HELP handler, now generates
32148           HelpRequested event
32149         * Form.cs: Added HelpButton property and required support code
32150         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
32151
32152 2004-12-28  Peter Bartok  <pbartok@novell.com>
32153
32154         * CommonDialog.cs:
32155           - Made DialogForm.owner variable internal
32156           - Added check to ensure owner form is set before setting
32157             owner properties in CreateParams
32158
32159 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
32160
32161         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
32162           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
32163           GetCursorPos.  Fix major visibility issues.  Rework the windowing
32164           system to support borderless/titleless windows (implements menus).
32165           Fix GetWindowPos.  Implement initial background color support for
32166           views.
32167
32168 2004-12-28  Peter Bartok  <pbartok@novell.com>
32169
32170         * Form.cs (get_CreateParams): Make sure we have an owner before using
32171           the owner variable. Implement proper default if no owner exists
32172
32173 2004-12-28  Peter Bartok  <pbartok@novell.com>
32174
32175         * In preparation for making Managed.Windows.Forms the default build target
32176           for System.Windows.Forms, the following stubbed files were added.
32177           Dialogs are currently being implemented by contributors and are only
32178           short-term place holders.
32179         * ColorDialog.cs: Initial check-in (minmal stub)
32180         * DataGrid.cs: Initial check-in (minimal stub)
32181         * DataGridLineStyle.cs: Initial check-in (minimal stub)
32182         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
32183         * DataGridTableStyle.cs: Initial check-in (minimal stub)
32184         * FontDialog.cs: Initial check-in (minimal stub)
32185         * FileDialog.cs: Initial check-in (minimal stub)
32186         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
32187         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
32188         * OpenFileDialog: Initial check-in (minimal stub)
32189         * IComponentEditorPageSite.cs: Initial check-in
32190         * Splitter.cs: Initial check-in (for Jackson)
32191         * SplitterEventArgs.cs: Initial check-in (for Jackson)
32192         * SplitterEventHandler.cs: Initial check-in (for Jackson)
32193         * TextBox.cs: Initial check-in; still needs some wiring to
32194           TextControl backend
32195         * Form.cs: Implemented ControlBox property
32196         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
32197         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
32198         * TextControl.cs: Added selection functionality; added todo header
32199         * TextBoxBase.cs:
32200           - Implemented Lines property
32201           - Implemented TextHeight property
32202           - Implemented SelectedText property
32203           - Implemented SelectionLength property
32204           - Implemented SelectAll method
32205           - Implemented ToString method
32206           - Removed and cleaned up some debug code
32207           - Implemented (still buggy) mouse text selection
32208
32209 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
32210
32211         * ComboBox.cs: Complete DropDownList implementation, fixes.
32212
32213 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
32214
32215         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
32216         * ComboBoxStyle.cs: ComboBoxStyle enum
32217         * ComboBox.cs: Initial work on ComboBox control
32218
32219 2004-12-21  Peter Bartok  <pbartok@novell.com>
32220
32221         * Control.cs (ctor, CreateParams): Moved setting of is_visible
32222           forward so that anything that creates a window gets the default,
32223           also no longer uses Visible property in CreateParams to avoid
32224           walking up the parent chain and possibly get the wrong visible
32225           status. Fixed IsVisible to no longer walk up to the parent.
32226
32227 2004-12-21  Peter Bartok  <pbartok@novell.com>
32228
32229         * Form.cs (ShowDialog): Unset modality for the proper window
32230  
32231 2004-12-20  Peter Bartok  <pbartok@novell.com>
32232
32233         * CommonDialog.cs: Initial check-in
32234
32235 2004-12-20  Peter Bartok  <pbartok@novell.com>
32236
32237         * Control.cs (Visible): Now uses the parent window instead of the
32238           client area window for the property
32239
32240         * Form.cs
32241           - ShowDialog(): Now uses the proper window for modality
32242           - The default visibility state for the form parent is now false. This
32243             will prevent the user from seeing all the changes to the form and
32244             its controls before the application hits Application.Run()
32245           - Removed some stale commented out code
32246
32247         * NativeWindow.cs:
32248           - Added FindWindow() method to have a method to check for existence
32249             of a window handle
32250           - Added ability to override default exception handling (for example
32251             when debugging with VS.Net; to do this the ExternalExceptionHandler
32252             define must be set
32253           - Removed some useless debug output
32254
32255         * XplatUIX11.cs:
32256           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
32257             not working as expected
32258           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
32259             property to allow switching back to the modal window if focus is
32260             given to another one of our windows (Application Modal)
32261           - Now only sets override_redirect if we create a window
32262             without WS_CAPTION
32263           - Moved EventMask selection before mapping of newly created window
32264             so we can catch the map event as well
32265           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
32266           - Added various Atom related DllImports
32267           - Implemented Exit() method
32268           - .ctor() : No longer shows window if WS_VISIBLE is not defined
32269             in the CreateParams
32270
32271         * MessageBox.cs: Now properly deals with the FormParent window by
32272           providing an override the FormParent CreateParams property to
32273           set as POPUP instead of OVERLAPPED window.
32274
32275 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
32276
32277         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
32278         Minor code cleanup.
32279
32280 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
32281         
32282         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
32283
32284 2004-12-18  Peter Bartok  <pbartok@novell.com>
32285
32286         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
32287           implementing SetModal() method
32288
32289 2004-12-18  Peter Bartok  <pbartok@novell.com>
32290
32291         * X11Structs.cs (XGCValues): Fixed type of function element
32292         * XplatUI.cs: Added ScrollWindow() method
32293         * XplatUIDriver.cs: Added ScrollWindow() abstract
32294         * XplatUIWin32.cs: Implemented ScrollWindow() method
32295         * XplatUIX11.cs: Implemented ScrollWindow() method
32296         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
32297
32298 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
32299
32300         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
32301         Some more keyboard support (INCOMPLETE)
32302
32303 2004-12-17  Peter Bartok  <pbartok@novell.com>
32304
32305         * TextControl.cs:
32306         - Added color attribute to line tags.
32307         - Added color argument to all functions dealing with tags
32308         - Added color argument support to various functions
32309         - Fixed miss-calculation of baseline/shift in certain circumstances
32310
32311         * TextBoxBase.cs: Added new color option to test code
32312
32313 2004-12-17  Jackson Harper  <jackson@ximian.com>
32314
32315         * TreeNode.cs:
32316         * MonthCalendar.cs: Signature fixes
32317
32318 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
32319
32320         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
32321         keyboard event moved it.  Create a new graphics context for each paint resolves this
32322
32323 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
32324
32325         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
32326         Make caret exist and go blink blink.  Initial keyboard support.
32327         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
32328         works.
32329
32330 2004-12-17  Jackson Harper  <jackson@ximian.com>
32331
32332         * XplatUIStructs.cs: Updated set of virtual keycodes.
32333         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
32334
32335 2004-12-17  Jackson Harper  <jackson@ximian.com>
32336
32337         * XplatUIX11.cs: Prune old keyboard code.
32338
32339 2004-12-17  Jackson Harper  <jackson@ximian.com>
32340
32341         * XplatUIX11.cs: When generating mouse wparams get the modifier
32342         keys from the ModifierKeys property.
32343
32344 2004-12-17  Jackson Harper  <jackson@ximian.com>
32345
32346         * X11Keyboard.cs: Send up/down input when generating
32347         messages. Remove some unused vars.
32348
32349 2004-12-17  Jackson Harper  <jackson@ximian.com>
32350
32351         * TabControl.cs:
32352         * TreeView.cs: get rid of warnings.
32353
32354 2004-12-17  Jackson Harper  <jackson@ximian.com>
32355
32356         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
32357
32358 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
32359
32360         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
32361           CheckedListBox.cs: Implementation
32362
32363 2004-12-17  Peter Bartok  <pbartok@novell.com>
32364
32365         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
32366
32367 2004-12-16  Peter Bartok  <pbartok@novell.com>
32368
32369         * TextControl.cs:
32370           - InsertCharAtCaret(): Fixed start pos fixup
32371           - CaretLine_get: No longer derives the line from the tag, the tag
32372             could be stale if lines in the document have been added or deleted
32373           - RebalanceAfterDelete(): Fixed bug in balancing code
32374           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
32375           - Line.Streamline(): Now can also elminate leading empty tags
32376           - DumpTree(): Added a few more tests and prevented exception on
32377             uninitialized data
32378           - Added Debug section for Combining lines
32379           - Delete(): Now copies all remaining properties of a line
32380           
32381         * TextBoxBase.cs:
32382           - Left mousebutton now sets the caret (and middle button still acts
32383             as formatting tester, which must go away soon)
32384           - Added Debug section for Deleting/Combining lines
32385           - Fixed calculations for UpdateView after Combining lines
32386
32387 2004-12-16  Peter Bartok  <pbartok@novell.com>
32388
32389         * TextControl.cs: Now properly aligns text on a baseline, using the
32390           new XplatUI.GetFontMetrics() method. Simplified several calculations
32391         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
32392           defined
32393
32394 2004-12-16  Peter Bartok  <pbartok@novell.com>
32395
32396         * XplatUI.cs: Added GetFontMetrics() method
32397         * XplatUIDriver.cs: Added GetFontMetrics() abstract
32398         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
32399           into libgdiplus, our private GetFontMetrics function
32400         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
32401         * XplatUIWin32.cs: Implemented GetFontMetrics() method
32402
32403 2004-12-16  Jackson Harper  <jackson@ximain.com>
32404
32405         * XplatUIStruct.cs: Add enum for dead keys
32406         * X11Keyboard.cs: Map and unmap dead keys.
32407
32408 2004-12-16  Jackson Harper  <jackson@ximian.com>
32409
32410         * X11Keyboard.cs: Detect and use the num lock mask.
32411
32412 2004-12-16  Peter Bartok  <pbartok@novell.com>
32413
32414         * Control.cs (CreateGraphics): Added check to make sure the
32415           handle of the window exists before calling Graphics.FromHwnd()
32416
32417 2004-12-16  Peter Bartok  <pbartok@novell.com>
32418
32419         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
32420           contains a lot of code that's not supposed to be there for the
32421           real thing, but required for developing/testing the textbox
32422           backend.
32423
32424 2004-12-16  Peter Bartok  <pbartok@novell.com>
32425
32426         * TextControl.cs:
32427         - Fixed Streamline method
32428         - Added FindTag method to Line
32429         - Added DumpTree method for debugging
32430         - Added DecrementLines() method for deleting lines
32431         - Fixed UpdateView to update the cursor to end-of-line on single-line
32432           updates
32433         - Added PositionCaret() method
32434         - Fixed MoveCaret(LineDown) to move into the last line, too
32435         - Added InsertChar overload
32436         - Fixed InsertChar tag offset calculations
32437         - Added DeleteChar() method
32438         - Added Combine() method for folding lines
32439         - Fixed Delete() method, no longer allocates wasted Line object and
32440           now copies all properties when swapping nodes
32441         - Delete() method now updates document line counter
32442
32443 2004-12-15  Jackson Harper  <jackson@ximian.com>
32444
32445         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
32446         * X11Keyboard.cs: Expose the currently selected modifier keys
32447         through a property.
32448
32449 2004-12-15  Peter Bartok  <pbartok@novell.com>
32450
32451         * TextControl.cs: Initial check-in. Still incomplete
32452
32453 2004-12-15  Jackson Harper  <jackson@ximian.com>
32454
32455         * TreeNode.cs:
32456         * TreeView.cs: Fix build on csc (second time today ;-))
32457
32458 2004-12-15  Jackson Harper  <jackson@ximian.com>
32459
32460         * TreeView.cs: Store the treenodes plus/minus box bounds when it
32461         is calculated and use this for click testing.
32462         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
32463
32464 2004-12-15  Jackson Harper  <jackson@ximian.com>
32465
32466         * TreeView.cs: Pass the nodes image index to the image list when
32467         drawing that image.
32468
32469 2004-12-15  Jackson Harper  <jackson@ximian.com>
32470
32471         * X11Keyboard.cs: Set messages hwnd.
32472         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
32473         post_message calls.
32474
32475 2004-12-15  Jackson Harper  <jackson@ximian.com>
32476
32477         * X11Keyboard.cs: Fix to compile with csc.
32478         
32479 2004-12-15  Jackson Harper  <jackson@ximian.com>
32480
32481         * X11Structs.cs: Add key mask values
32482         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
32483         * X11Keyboard.cs: New file - Extrapolates and interpolates key
32484         down/up foo into WM_CHAR foo
32485         * KeyboardLayouts.cs: Common keyboard layouts
32486         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
32487         post messages into the main queue.
32488
32489 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
32490
32491         * Button.cs: implement ProcessMnemonic
32492         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
32493           brushes everytime
32494         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
32495         * ButtonBase.cs: Show HotkeyPrefix (not the &)
32496
32497 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
32498         
32499         * MonthCalendar.cs: Implemented click-hold for next/previous month
32500           and date selection
32501           
32502 2004-12-11  Peter Bartok  <pbartok@novell.com>
32503
32504         * X11Structs.cs:
32505           - Added XKeyboardState (moved from XplatUIX11.cs)
32506           - Added XCreateGC related enums and structures
32507           - Added GXFunction for XSetFunction
32508
32509         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
32510
32511         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
32512           CaretVisible() calls
32513
32514         * ToolTip.cs: Added code to prevent stealing focus from app windows
32515
32516         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
32517           DestroyCaret, SetCaretPos and CaretVisible)
32518
32519         * XplatUIX11.cs:
32520           - Added implementation for caret functions
32521           - Moved hover variables into a struct, to make it a bit easier
32522             on the eyes and to debug
32523           - Removed XKeyboardState (moved to XplatUIX11.cs)
32524           - Moved Keyboard properties into the properties region
32525
32526         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
32527           call to get a graphics context for our control
32528
32529         * XplatUIOSX.cs: Added empty overrides for the new caret functions
32530
32531         * TreeView.cs: Fixed bug. No matter what color was set it would always
32532           return SystemColors.Window
32533
32534         * XplatUIWin32.cs: Implemented caret overrides
32535
32536 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
32537
32538         * ListBox.cs: fire events, implement missing methods and properties,
32539         sorting.
32540
32541 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
32542
32543         * MonthCalendar.cs: invalidation bug fixing
32544         * ThemeWin32Classic.cs: paint fixing
32545
32546 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
32547
32548         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
32549         prepare the CGContextRef there now.
32550
32551 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
32552
32553         * MonthCalendar.cs:
32554           - optimisationL only invalidate areas that have changed
32555         * ThemeWin32Classic.cs:
32556           - only paint parts that intersect with clip_area
32557
32558 2004-12-09  Peter Bartok  <pbartok@novell.com>
32559
32560         * Application.cs: Undid changes from r37004 which cause problems
32561         on X11
32562
32563 2004-12-09  Ravindra  <rkumar@novell.com>
32564
32565         * ToolBar.cs: Added support for displaying ContextMenu
32566         attached to a button on ToolBar.
32567         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
32568         property.
32569
32570 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
32571
32572         * Label.cs: autosize works in text change and removes unnecessary
32573         invalidate
32574
32575 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
32576
32577         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
32578         remove warnings
32579
32580 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
32581
32582         * XplatUIOSX.cs: Added mouse move/click/grab support
32583         Remove some debugging WriteLines not needed anymore.
32584         Add window resizing/positioning.
32585         Fix visibility on reparenting.
32586
32587 2004-12-08  Peter Bartok  <pbartok@novell.com>
32588
32589         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
32590
32591 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
32592
32593         * XplatUIOSX.cs: Initial checkin
32594         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
32595
32596 2004-12-03  Ravindra <rkumar@novell.com>
32597
32598         * ListView.cs: Added some keybindings and fixed scrolling.
32599         ScrollBars listen to ValueChanged event instead of Scroll
32600         Event. This would let us take care of all changes being
32601         done in the scrollbars' values programmatically or manually.
32602         * ListView.cs (CanMultiselect): Added a check for shift key.
32603         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
32604         * ListViewItem.cs (Clone): Fixed. We need to make a copy
32605         of ListViewSubItemCollection as well.
32606
32607 2004-12-06  Peter Bartok <pbartok@novell.com>
32608
32609         * Control.cs (Parent): Added check and exception to prevent
32610         circular parenting
32611
32612 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
32613
32614         * ListBox.cs: implemented clipping, selection single and multiple,
32615         bug fixing
32616
32617 2004-12-03  Ravindra <rkumar@novell.com>
32618
32619         * ListView.cs (ListView_KeyDown):
32620         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
32621         when CTRL key is pressed.
32622         * ListViewItem.cs (Selected): Fixed setting the property.
32623
32624 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
32625
32626         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
32627
32628         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
32629         MinimizeBox, ShowInTaskbar, TopMost properties.
32630
32631         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
32632         will be implemented).
32633
32634 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
32635
32636         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
32637
32638         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
32639         tests.
32640         
32641         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
32642         
32643         * TreeView.cs: BackColor is Colors.Window.
32644
32645 2004-12-01  Jackson Harper  <jackson@ximian.com>
32646
32647         * TreeView.cs: When resizing the tree if the user is making it
32648         smaller we don't get expose events, so we need to handle adding
32649         the horizontal scrollbar in the size changed handler as well as
32650         the expose handler.
32651
32652 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
32653
32654         * DrawItemState.cs: fixes wrong enum values
32655
32656 2004-12-01  Jackson Harper  <jackson@ximian.com>
32657
32658         * TreeView.cs: Resize the hbar as well as the vbar on resize.
32659
32660 2004-12-01  Jackson Harper  <jackson@ximian.com>
32661
32662         * NodeLabelEditEventArgs.cs:
32663         * NodeLabelEditEventHandler.cs:
32664         * OpenTreeNodeEnumerator.cs:
32665         * TreeNode.cs:
32666         * TreeNodeCollection.cs:
32667         * TreeView.cs:
32668         * TreeViewAction.cs:
32669         * TreeViewCancelEventArgs.cs:
32670         * TreeViewCancelEventHandler.cs:
32671         * TreeViewEventArgs.cs:
32672         * TreeViewEventHandler.cs: Initial implementation.
32673
32674 2004-12-01  Ravindra <rkumar@novell.com>
32675
32676         * ListView.cs (CalculateListView): Fixed scrolling related
32677         calculations. Also, removed some debug statements from other
32678         places.
32679         * ListViewItem.cs: Changed access to 'selected' instance variable
32680         from private to internal.
32681         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
32682
32683 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
32684
32685         * ThemeWin32Classic.cs: remove cache of brush and pens for
32686         specific controls and use the global system, fixes scrollbutton
32687         bugs (for small sizes, disabled, etc)
32688         
32689         * ScrollBar.cs: does not show the thumb for very small controls
32690         (as MS) and allow smaller buttons that the regular size
32691
32692 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
32693
32694         * UpDownBase.cs: Add abstract methods for the interface.
32695         Add new virtual methods (need to be hooked up to TextEntry when it
32696         exists).
32697         Add override methods for most features.
32698         Computes the size, forces the height of the text entry.
32699
32700         * NumericUpDown.cs: Put here the current testing code.
32701
32702         * Set eol-style property on all files that do not have mixed line
32703         endings, to minimize the future problems.  There are still a few
32704         files with mixed endings, and someone should choose whether they
32705         want to move it or not.
32706
32707 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
32708
32709         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
32710         System.Colors
32711         
32712 2004-11-30  Ravindra <rkumar@novell.com>
32713
32714         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
32715         drawing and replaced use of SystemColors by theme colors.
32716         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
32717         * ListView.cs (ListViewItemCollection.Add): Throw exception when
32718         same ListViewItem is being added more than once.
32719
32720 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
32721
32722         * MonthCalendar.cs:
32723           - ControlStyles love to make the control not flicker
32724           
32725 2004-11-30  Peter Bartok  <pbartok@novell.com>
32726
32727         * CharacterCasing.cs: Added
32728
32729 2004-11-29  Peter Bartok  <pbartok@novell.com>
32730
32731         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
32732           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
32733           I am removing these files as they conflict with already completed
32734           work. While it is fantastic to get contributions to MWF, I
32735           respectfully ask that everyone please coordinate their contributions
32736           through mono-winforms-list or #mono-winforms at this time. We're
32737           explicitly avoiding stubbing and don't want controls that don't have
32738           their basic functionality implemented in svn. Please also see
32739           http://www.mono-project.com/contributing/winforms.html
32740
32741
32742 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
32743
32744         * Application.cs (ModalRun): Don't hang after exit.
32745
32746         * Theme.cs: New TreeViewDefaultSize property.
32747
32748         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
32749         with less hardcoded SystemColors constant.
32750         Implemented TreeViewDefaultSize.
32751
32752         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
32753         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
32754
32755
32756 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
32757
32758         * MonthCalendar.cs:
32759           - Fix NextMonthDate and PrevMonthDate click moving calendar
32760
32761 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
32762
32763         * MonthCalendar.cs:
32764           - Fix usage of ScrollChange Property when scrolling months
32765
32766 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
32767
32768         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
32769          - Fixes menu destroying
32770          - Support adding and removing items on already created menus
32771
32772 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
32773
32774         * MonthCalendar.cs:
32775           - Re-worked all bolded dates handling to match win32
32776         * ThemeWin32Classic.cs:
32777           - Fixed rendering with bolded dates
32778
32779 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
32780
32781         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
32782         - Horizontal scroolbar
32783         - Multicolumn
32784         - Fixes
32785
32786
32787 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
32788
32789         * MonthCalendar.cs:
32790           - Fix Usage of MaxSelectionCount from SelectionRange
32791           - Fixed Shift + Cursor Selection
32792           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
32793           - Fixed normal cursor selection to be compat with win32
32794           - Fixed Shift + Mouse Click selection
32795
32796 2004-11-24  Peter Bartok <pbartok@novell.com>
32797
32798         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
32799         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
32800         * XplatUIX11.cs:
32801           - CreatedKeyBoardMsg now updates keystate with Alt key
32802           - Added workaround for timer crash to CheckTimers, Jackson will
32803             develop a proper fix and check in later
32804           - Implemented DispatchMessage
32805           - Removed calling the native window proc from GetMessage (call
32806             now moved to DispatchMessage)
32807
32808         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
32809           the keydata (Fixes bug #69831)
32810
32811         * XplatUIWin32.cs:
32812           - (DispatchMessage): Switched to return IntPtr
32813           - Added DllImport for SetFocus
32814
32815 2004-11-24  Ravindra <rkumar@novell.com>
32816
32817         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
32818         background drawing.
32819         * ListViewItem.cs: Fixed various properties, calculations
32820         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
32821         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
32822         and some internal properties. Fixed MouseDown handler and Paint
32823         method.
32824
32825 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
32826
32827         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
32828
32829 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
32830
32831         * ContainerControl.cs: correct accidental check in of local changes
32832
32833 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
32834
32835         * ThemeWin32Classic.cs:
32836                 - Fixed Drawing Last month in grid (sometimes not showing)
32837         * MonthCalendar.cs:
32838                 - Fixed title width calculation bug (makeing title small)
32839
32840 2004-11-23  Peter Bartok <pbartok@novell.com>
32841
32842         * XplatUIX11.cs:
32843           - Added generation of WM_MOUSEHOVER event
32844           - Added missing assignment of async_method atom
32845           - Fixed WM_ERASEBKGND; now only redraws the exposed area
32846
32847 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
32848
32849         * ThemeWin32Classic.cs:
32850                 - Fixed Drawing of today circle when showtodaycircle not set
32851                 - fixed drawing of first and last month in the grid (gay dates)
32852         * MonthCalendar.cs:
32853                 - Fixed Drawing of today circle
32854                 - Fixed drawing of grady dates
32855                 - Fixed HitTest for today link when ShowToday set to false
32856                 - Fixed DefaultSize to obey ShowToday
32857
32858 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
32859
32860         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
32861         * System.Windows.Forms/Theme.cs
32862         * MonthCalendar.cs: added for MonthCalendar
32863         * SelectionRange.cs: added for MonthCalendar
32864         * Day.cs: added for MonthCalendar: added for MonthCalendar
32865         * DateRangeEventArgs.cs: added for MonthCalendar
32866         * DateRangeEventHandler.cs: added for MonthCalendar
32867
32868 2004-11-22  Ravindra <rkumar@novell.com>
32869
32870         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
32871         property.
32872
32873 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
32874
32875         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
32876         event handler.
32877         
32878         * NumericUpDown.cs: Added new implementation.
32879         * UpDownBase.cs: Added new implementation.
32880
32881         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
32882         implementations.
32883         
32884         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
32885         implementations.
32886
32887         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
32888         methods.
32889
32890 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
32891
32892         * Timer.cs  (Dispose): Should call the base dispose when
32893         overriding.
32894
32895 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
32896
32897         * ScrollBar.cs: updates thumb position when max, min or increment
32898         is changed
32899
32900 2004-11-21  Ravindra <rkumar@novell.com>
32901
32902         * ListView.cs: Implemented item selection, activation and
32903         column header style. Fixed properties to do a redraw, if
32904         required. Added support for MouseHover, DoubleClick, KeyDown
32905         and KeyUp event handling and some minor fixes.
32906         * ListViewItem.cs: Fixed constructor.
32907         * ThemeWin32Classic.cs: Improved drawing for ListView.
32908
32909 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
32910
32911         * ThemeWin32Classic.cs: initial listbox drawing code
32912         * DrawMode.cs: new enumerator
32913         * ListControl.cs: stubbed class
32914         * ListBox.cs: initial implementation
32915         * Theme.cs: new methods definitions
32916         * SelectionMode.cs: new enumerator
32917
32918 2004-11-17  Peter Bartok  <pbartok@novell.com>
32919
32920         * XplatUIWin32.cs: Added double-click events to the class style
32921         * Control.cs (WndProc):
32922           - Added handling of click-count to MouseDown/ MouseUp events.
32923           - Added handling of middle and right mouse buttons
32924           - Removed old debug code
32925
32926 2004-11-17  Jackson Harper  <jackson@ximian.com>
32927
32928         * XplatUIX11.cs: Use the new Mono.Unix namespace.
32929
32930 2004-11-17  Ravindra <rkumar@novell.com>
32931
32932         * ListView.cs: Added event handling for MouseMove/Up/Down.
32933         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
32934         * ThemeWin32Classic.cs: We need to clear the graphics context and
32935         draw column header in a proper state.
32936
32937
32938 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
32939
32940         *  Menu.cs: fixes signature
32941
32942 2004-11-16  Peter Bartok  <pbartok@novell.com>
32943
32944         * XplatUIX11.cs (GetMessage): Implemented generation of
32945           double click mouse messages
32946
32947 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
32948
32949         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
32950         not by menu
32951
32952 2004-11-11  Peter Bartok  <pbartok@novell.com>
32953
32954         * HandleData.cs: Added Visible property
32955         * XplatUIX11.cs (IsVisible): Now uses Visible property from
32956           HandleData
32957         * XplatUIX11.cs: Removed old debug leftovers
32958         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
32959         * Control.cs (WndProc): Removed old debug leftovers,
32960           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
32961           needed WM_SIZE handling
32962
32963 2004-11-11  Jackson Harper  <jackson@ximian.com>
32964
32965         * OwnerDrawPropertyBag.cs:
32966         * TreeViewImageIndexConverter.cs: Initial implementation
32967
32968 2004-11-10  Jackson Harper  <jackson@ximian.com>
32969
32970         * ThemeWin32Classic.cs:
32971         * TabControl.cs: instead of moving tabs by the slider pos just
32972         start drawing at the tab that is offset by the slider. This way
32973         scrolling always moves by exactly one tab.
32974
32975 2004-11-10  Jackson Harper  <jackson@ximian.com>
32976
32977         * TabControl.cs: You can only scroll left when the slider has
32978         already ben moved right.
32979         
32980 2004-11-10  Jackson Harper  <jackson@ximian.com>
32981
32982         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
32983         the clip area.
32984         
32985 2004-11-10  Jackson Harper  <jackson@ximian.com>
32986
32987         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
32988         clip area.
32989         
32990 2004-11-09  Jackson Harper  <jackson@ximian.com>
32991
32992         * TabControl.cs (CalcXPos): New helper method so we can determine
32993         the proper place to start drawing vertical tabs.
32994         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
32995         
32996 2004-11-09  Jackson Harper  <jackson@ximian.com>
32997
32998         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
32999         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
33000         and Bottom, left and right are illegal values for this and
33001         multiline is enabled when the alignment is set to left or right.
33002         (DrawTab): Each alignment block should draw the text itself now
33003         because Left requires special love. Also add rendering for Left
33004         aligned tabs.
33005         
33006 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
33007
33008         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
33009         does not destroy the windows, removes debugging messages
33010
33011 2004-11-09  jba  <jba-mono@optusnet.com.au>
33012
33013         * ThemeWin32Classic.cs
33014         (DrawButtonBase): Fix verticle text rect clipping in windows
33015         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
33016         rendering and incorrect text rect clipping
33017         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
33018         rendering and incorrect text rect clipping
33019         
33020 2004-11-08  Jackson Harper  <jackson@ximian.com>
33021
33022         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
33023         bottom when they are bottom aligned so the bottoms of the tabs get
33024         displayed.
33025         * TabControl.cs (DropRow): Move rows up instead of down when the
33026         tab control is bottom aligned.
33027
33028 2004-11-08 13:59  pbartok
33029
33030         * XplatUIX11.cs:
33031           - Added handling for various window styles
33032           - Added handling for popup windows
33033           - Added SetTopmost handling
33034
33035 2004-11-08 13:55  pbartok
33036
33037         * XplatUIWin32.cs:
33038           - Added argument to SetTopmost method
33039           - Fixed broken ClientToScreen function
33040
33041 2004-11-08 13:53  pbartok
33042
33043         * XplatUIStructs.cs:
33044           - Added missing WS_EX styles
33045
33046 2004-11-08 13:53  pbartok
33047
33048         * XplatUI.cs, XplatUIDriver.cs:
33049           - Added argument to SetTopmost
33050
33051 2004-11-08 13:52  pbartok
33052
33053         * X11Structs.cs:
33054           - Added XSetWindowAttributes structure
33055           - Improved XWindowAttributes structure
33056           - Added SetWindowValuemask enum
33057           - Added window creation arguments enum
33058           - Added gravity enum
33059           - Added Motif hints structure
33060           - Added various Motif flags and enums
33061           - Added PropertyMode enum for property functions
33062
33063 2004-11-08 13:50  pbartok
33064
33065         * Form.cs:
33066           - Fixed arguments for updated SetTopmost method
33067
33068 2004-11-08 13:49  pbartok
33069
33070         * ToolTip.cs:
33071           - Fixed arguments for updated SetTopmost function
33072           - Fixed usage of PointToClient
33073
33074 2004-11-08 13:44  pbartok
33075
33076         * MenuAPI.cs:
33077           - Added Clipping of children and siblings
33078
33079 2004-11-08 13:41  pbartok
33080
33081         * MainMenu.cs:
33082           - Removed SetMenuBarWindow call. We do this in Form.cs
33083
33084 2004-11-08 13:40  jackson
33085
33086         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
33087           scrolling jimmi in the correct location with bottom aligned tabs
33088
33089 2004-11-08 13:36  pbartok
33090
33091         * ContainerControl.cs:
33092           - Implemented BindingContext
33093           - Implemented ParentForm
33094
33095 2004-11-08 12:46  jackson
33096
33097         * TabControl.cs: Put bottom rendered tabs in the right location
33098
33099 2004-11-08 07:15  jordi
33100
33101         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
33102           removes dead code
33103
33104 2004-11-05 17:30  jackson
33105
33106         * TabControl.cs: When selected tabs are expanded make sure they
33107           don't go beyond the edges of the tab control
33108
33109 2004-11-05 14:57  jackson
33110
33111         * TabControl.cs: Reset show_slider so if the control is resized to
33112           a size where it is no longer needed it's not displayed anymore
33113
33114 2004-11-05 13:16  jackson
33115
33116         * TabControl.cs: Make tab pages non visible when added to the
33117           control
33118
33119 2004-11-05 12:42  jackson
33120
33121         * TabControl.cs: Implement SizeMode.FillToRight
33122
33123 2004-11-05 12:16  jackson
33124
33125         * Control.cs: Do not call CreateHandle if the handle is already
33126           created
33127
33128 2004-11-05 11:46  jackson
33129
33130         * TabControl.cs: Remove superflous call to CalcTabRows
33131
33132 2004-11-05 09:07  jackson
33133
33134         * XplatUIX11.cs: Update for Mono.Posix changes
33135
33136 2004-11-05 07:00  ravindra
33137
33138         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
33139           scrolling.
33140
33141 2004-11-04 22:47  jba
33142
33143         * ThemeWin32Classic.cs:
33144           - Fix Button rendering for FlatStyle = Flat or Popup
33145           - Fix RadioButton and CheckBox rendering when Appearance = Button
33146             (normal and flatstyle).
33147           - Correct outer rectangle color when drawing focus rectangle
33148           - Adjust button bounds to be 1 px smaller when focused
33149           - Make button not draw sunken 3d border when pushed (windows compat)
33150           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
33151           - Offset the text in RadioButton and Checkbox when being rendered as
33152           a button.
33153           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
33154           radiobuttons
33155           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
33156           - Fixed disabled text rendering for normally rendered radiobuttons
33157
33158 2004-11-04 10:26  jackson
33159
33160         * TabControl.cs: Recalculate tab rows when resizing
33161
33162 2004-11-04 07:47  jordi
33163
33164         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
33165           collection completion, drawing issues, missing features
33166
33167 2004-11-04 05:03  ravindra
33168
33169         * ScrollBar.cs:
33170                 - We need to recalculate the Thumb area when
33171                 LargeChange/maximum/minimum values are changed.
33172           - We set the 'pos' in UpdatePos() method to minimum, if it's less
33173                 than minimum. This is required to handle the case if large_change is
33174                 more than max, and use LargeChange property instead of large_change
33175                 variable.
33176           - We return max+1 when large_change is more than max, like MS does.
33177
33178 2004-11-04 04:29  ravindra
33179
33180         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
33181                 - Changed default value signatures (prefixed all with ListView).
33182                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
33183                 ListView.
33184           - Fixed calculations for ListViewItem and implemented Clone()
33185           method.
33186
33187 2004-11-04 04:26  ravindra
33188
33189         * Theme.cs, ThemeWin32Classic.cs:
33190                 - Changed default ListView values signatures (prefixed all with
33191                 ListView).
33192           - Fixed default size values for VScrollBar and HScrollBar.
33193                 - Fixed DrawListViewItem method.
33194
33195 2004-11-04 04:05  ravindra
33196
33197         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
33198
33199 2004-11-04 04:04  ravindra
33200
33201         * ImageList.cs: Implemented the missing overload for Draw method.
33202
33203 2004-11-03 19:29  jackson
33204
33205         * TabControl.cs: Handle dropping rows on selection properly
33206
33207 2004-11-03 11:59  jackson
33208
33209         * TabControl.cs: remove debug code
33210
33211 2004-11-03 11:52  jackson
33212
33213         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
33214           the scrolly widgerywoo
33215
33216 2004-11-02 13:52  jackson
33217
33218         * TabControl.cs: Resize the tab pages and tabs when the tab control
33219           is resized
33220
33221 2004-11-02 13:40  jackson
33222
33223         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
33224           selected tab to the bottom
33225
33226 2004-11-02 13:39  jackson
33227
33228         * TabPage.cs: Store the tab pages row
33229
33230 2004-11-02 12:33  jordi
33231
33232         * MenuItem.cs: fixes handle creation
33233
33234 2004-11-02 11:42  jackson
33235
33236         * TabControl.cs: signature fix
33237
33238 2004-11-02 08:56  jackson
33239
33240         * TabControl.cs: Calculate whether the tab is on an edge properly.
33241           Remove top secret debugging code
33242
33243 2004-11-01 19:57  jackson
33244
33245         * TabControl.cs: Add click handling, and proper sizing
33246
33247 2004-11-01 19:47  jackson
33248
33249         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
33250           tab controls
33251
33252 2004-11-01 19:39  jackson
33253
33254         * TabPage.cs: add internal property to store the bounds of a tab
33255           page
33256
33257 2004-10-30 04:23  ravindra
33258
33259         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
33260           values.
33261
33262 2004-10-30 04:21  ravindra
33263
33264         * ListView.cs, ListViewItem.cs: Added support for scrolling and
33265           fixed calculations.
33266
33267 2004-10-30 03:06  pbartok
33268
33269         * XplatUIX11.cs:
33270           - Removed extension of DllImported libs
33271
33272 2004-10-29 09:55  jordi
33273
33274         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
33275           navigation, itemcollection completion, menu fixes
33276
33277 2004-10-27 22:58  pbartok
33278
33279         * XplatUIX11.cs:
33280           - Now throws a nice error message when no X display could be opened
33281
33282 2004-10-26 13:51  jordi
33283
33284         * ListView.cs: removes warning
33285
33286 2004-10-26 03:55  ravindra
33287
33288         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
33289           ThemeWin32Classic.cs: Some formatting for my last checkins.
33290
33291 2004-10-26 03:36  ravindra
33292
33293         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
33294           control and default values.
33295
33296 2004-10-26 03:35  ravindra
33297
33298         * Theme.cs: Added some default values for ListView control.
33299
33300 2004-10-26 03:33  ravindra
33301
33302         * ToolBar.cs: ToolBar should use the user specified button size, if
33303           there is any. Added a size_specified flag for the same.
33304
33305 2004-10-26 03:33  ravindra
33306
33307         * ColumnHeader.cs: Added some internal members and calculations for
33308           ColumnHeader.
33309
33310 2004-10-26 03:32  ravindra
33311
33312         * ListViewItem.cs: Calculations for ListViewItem.
33313
33314 2004-10-26 03:31  ravindra
33315
33316         * ListView.cs: Added some internal members and calculations for
33317           ListView.
33318
33319 2004-10-22 13:31  jordi
33320
33321         * MenuAPI.cs: speedup menus drawing
33322
33323 2004-10-22 13:16  jackson
33324
33325         * XplatUIX11.cs: Make sure to update exposed regions when adding an
33326           expose event
33327
33328 2004-10-22 11:49  jackson
33329
33330         * Control.cs: oops
33331
33332 2004-10-22 11:41  jackson
33333
33334         * Control.cs: Check to see if the window should have its background
33335           repainted by X when drawing.
33336
33337 2004-10-22 11:31  jackson
33338
33339         * XplatUIX11.cs: When invalidating areas only use XClearArea if
33340           clear is true, this way we do not get flicker from X repainting the
33341           background
33342
33343 2004-10-22 11:28  jackson
33344
33345         * XEventQueue.cs: Queue properly
33346
33347 2004-10-21 09:38  jackson
33348
33349         * XEventQueue.cs: Fix access modifier
33350
33351 2004-10-21 09:36  jackson
33352
33353         * XEventQueue.cs: Don't loose messages
33354
33355 2004-10-21 09:22  jackson
33356
33357         * XEventQueue.cs: Don't loose messages
33358
33359 2004-10-20 04:15  jordi
33360
33361         * BootMode.cs: enum need it by SystemInfo
33362
33363 2004-10-19 21:58  pbartok
33364
33365         * XplatUIWin32.cs:
33366           - Small sanity check
33367
33368 2004-10-19 21:56  pbartok
33369
33370         * Form.cs:
33371           - Added private FormParentWindow class which acts as the container
33372             for our form and as the non-client area where menus are drawn
33373           - Added/Moved required tie-ins to Jordi's menus
33374           - Fixed/Implemented the FormStartPosition functionality
33375
33376 2004-10-19 21:52  pbartok
33377
33378         * Control.cs:
33379           - Removed unneeded locals
33380           - Added code to all size and location properties to understand and
33381             deal with the parent container of Form
33382
33383 2004-10-19 21:33  pbartok
33384
33385         * Application.cs:
33386           - Fixed to deal with new Form subclasses for menus
33387
33388 2004-10-19 17:48  jackson
33389
33390         * XEventQueue.cs: commit correct version of file
33391
33392 2004-10-19 16:50  jackson
33393
33394         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
33395
33396 2004-10-19 16:15  jordi
33397
33398         * MenuAPI.cs: MenuBarCalcSize returns the height
33399
33400 2004-10-19 08:31  pbartok
33401
33402         * Control.cs:
33403           - Added missing call to PreProcessMessage before calling OnXXXKey
33404           methods
33405
33406 2004-10-19 00:04  ravindra
33407
33408         * ToolTip.cs: Fixed constructor.
33409
33410 2004-10-18 09:31  jordi
33411
33412         * MenuAPI.cs: menuitems in menubars do not have shortcuts
33413
33414 2004-10-18 09:26  jordi
33415
33416         * MenuItem.cs: fixes MenuItem class signature
33417
33418 2004-10-18 08:56  jordi
33419
33420         * MenuAPI.cs: prevents windows from showing in the taskbar
33421
33422 2004-10-18 00:28  ravindra
33423
33424         * ToolTip.cs: Suppressed a warning message.
33425
33426 2004-10-18 00:27  ravindra
33427
33428         * Control.cs: Default value of visible property must be true.
33429
33430 2004-10-17 23:19  pbartok
33431
33432         * ToolTip.cs:
33433           - Complete implementation
33434
33435 2004-10-17 23:19  pbartok
33436
33437         * XplatUIX11.cs:
33438           - Added EnableWindow method
33439           - Added SetModal stub
33440           - Added generation of WM_ACTIVATE message (still needs testing)
33441           - Added SetTopMost stub
33442           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
33443
33444 2004-10-17 23:17  pbartok
33445
33446         * XplatUIWin32.cs:
33447           - Removed VirtualKeys to XplatUIStructs
33448           - Implemented SetTopMost method
33449           - Implemented EnableWindow method
33450           - Bugfix in ScreenToClient()
33451           - Bugfixes in ClientToScreen()
33452
33453 2004-10-17 22:51  pbartok
33454
33455         * XplatUIStructs.cs:
33456           - Added WS_EX styles to WindowStyles enumeration
33457
33458 2004-10-17 22:50  pbartok
33459
33460         * XplatUI.cs, XplatUIDriver.cs:
33461           - Added method for enabling/disabling windows
33462           - Added method for setting window modality
33463           - Added method for setting topmost window
33464
33465 2004-10-17 22:49  pbartok
33466
33467         * ThemeWin32Classic.cs:
33468           - Added ToolTip drawing code
33469
33470 2004-10-17 22:49  pbartok
33471
33472         * Theme.cs:
33473           - Added ToolTip abstracts
33474
33475 2004-10-17 22:47  pbartok
33476
33477         * Form.cs:
33478           - Fixed Form.ControlCollection to handle owner relations
33479           - Added Owner/OwnedForms handling
33480           - Implemented Z-Ordering for owned forms
33481           - Removed unneeded private overload of ShowDialog
33482           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
33483             so I hope)
33484           - Fixed Close(), had wrong default
33485           - Added firing of OnLoad event
33486           - Added some commented out debug code for Ownership handling
33487
33488 2004-10-17 22:16  pbartok
33489
33490         * Control.cs:
33491           - Fixed/implemented flat list of controls
33492
33493 2004-10-17 22:14  pbartok
33494
33495         * Application.cs:
33496           - Added code to simulate modal dialogs on Win32
33497
33498 2004-10-17 16:11  jordi
33499
33500         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
33501           mouse event
33502
33503 2004-10-17 13:39  jordi
33504
33505         * MenuAPI.cs: menu drawing fixes
33506
33507 2004-10-15 09:10  ravindra
33508
33509         * StructFormat.cs: General Enum.
33510
33511 2004-10-15 09:09  ravindra
33512
33513         * SizeGripStyle.cs: Enum for Form.
33514
33515 2004-10-15 09:08  ravindra
33516
33517         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
33518           in Theme for ListView.
33519
33520 2004-10-15 09:06  ravindra
33521
33522         * ColumnHeader.cs: Flushing some formatting changes.
33523
33524 2004-10-15 09:05  ravindra
33525
33526         * ListViewItem.cs: Implemented GetBounds method and fixed coding
33527           style.
33528
33529 2004-10-15 09:03  ravindra
33530
33531         * ListView.cs: Implemented Paint method and fixed coding style.
33532
33533 2004-10-15 07:34  jordi
33534
33535         * MenuAPI.cs: fix for X11
33536
33537 2004-10-15 07:32  ravindra
33538
33539         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
33540                 - Renamed Paint() method to Draw() for clarity. Also, moved
33541                 DrawImage() to OnPaint().
33542
33543 2004-10-15 07:25  ravindra
33544
33545         * CheckBox.cs, RadioButton.cs:
33546                 - Removed Redraw (), we get it from ButtonBase.
33547                 - Implemented Paint (), to do class specific painting.
33548
33549 2004-10-15 07:16  ravindra
33550
33551         * ButtonBase.cs:
33552                 - Redraw () is not virtual now.
33553                 - Added an internal virtual method Paint (), so that
33554                 derived classes can do their painting on their own.
33555                 - Modified OnPaint () to call Paint ().
33556
33557 2004-10-15 06:43  jordi
33558
33559         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
33560           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
33561
33562 2004-10-15 00:30  ravindra
33563
33564         * MessageBox.cs:
33565                 - MessageBox on windows does not have min/max buttons.
33566                 This change in CreateParams fixes this on Windows. We
33567                 still need to implement this windowstyle behavior in
33568                 our X11 driver.
33569
33570 2004-10-14 05:14  ravindra
33571
33572         * ToolBar.cs:
33573                 - Changed Redraw () to do a Refresh () always.
33574                 - Fixed the MouseMove event handling when mouse is pressed,
33575                 ie drag event handling.
33576                 - Replaced the usage of ToolBarButton.Pressed property to
33577                 ToolBarButton.pressed internal variable.
33578
33579 2004-10-14 05:10  ravindra
33580
33581         * ToolBarButton.cs:
33582                 - Added an internal member 'inside' to handle mouse move
33583                 with mouse pressed ie mouse drag event.
33584                 - Changed 'Pressed' property to return true only when
33585                 'inside' and 'pressed' are both true.
33586                 - Some coding style love.
33587
33588 2004-10-14 00:17  ravindra
33589
33590         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
33591           public method.
33592
33593 2004-10-14 00:15  ravindra
33594
33595         * ButtonBase.cs: Redraw () related improvements.
33596
33597 2004-10-14 00:14  ravindra
33598
33599         * MessageBox.cs: Moved InitFormSize () out of Paint method and
33600           removed unnecessary calls to Button.Show () method.
33601
33602 2004-10-13 17:50  pbartok
33603
33604         * XplatUIX11.cs:
33605           - Formatting fix
33606           - Removed destroying of window until we solve the problem of X
33607             destroying the window before us on shutdown
33608
33609 2004-10-13 16:32  pbartok
33610
33611         * ButtonBase.cs:
33612           - Now Redraws on MouseUp for FlatStyle Flat and Popup
33613
33614 2004-10-13 14:18  pbartok
33615
33616         * XplatUIX11.cs:
33617           - Added code to destroy the X window
33618
33619 2004-10-13 14:18  pbartok
33620
33621         * XplatUIWin32.cs:
33622           - Added code to destroy a window
33623
33624 2004-10-13 14:12  pbartok
33625
33626         * ButtonBase.cs:
33627           - Added the Redraw on Resize that got dropped in the last rev
33628
33629 2004-10-13 09:06  pbartok
33630
33631         * ThemeWin32Classic.cs:
33632           - Path from John BouAntoun:
33633             * Fix check rendering (centre correctly for normal style, offset
33634               correctly for FlatStyle).
33635             * Fix border color usage (use backcolor) for FlatStyle.Popup
33636             * Use checkbox.Capture instead of checkbox.is_pressed when
33637               rendering flatstyle states.
33638
33639 2004-10-12 21:48  pbartok
33640
33641         * ThemeWin32Classic.cs:
33642           - Removed all occurences of SystemColors and replaced them with the
33643             matching theme color
33644
33645 2004-10-12 21:41  pbartok
33646
33647         * ThemeWin32Classic.cs:
33648           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
33649             him using the function for flatstyle drawing
33650           - Changed functions to use the new version of CPDrawBorder3D
33651
33652 2004-10-12 21:15  pbartok
33653
33654         * ControlPaint.cs:
33655           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
33656             match MS documentation. They need to return defined colors if the
33657             passed color matches the configured control color. Thanks to John
33658             BouAntoun for pointing this out.
33659
33660 2004-10-12 20:57  pbartok
33661
33662         * Control.cs:
33663           - Fix from John BouAntoun: Raise ForeColorChanged event when text
33664             color is changed
33665
33666 2004-10-12 20:46  pbartok
33667
33668         * CheckBox.cs:
33669           - Fix from John BouAntoun: Now properly sets the Appearance property
33670
33671 2004-10-12 20:45  pbartok
33672
33673         * ThemeWin32Classic.cs:
33674           - Fixes from John BouAntoun: now handles forecolors and backcolors
33675             for flatstyle rendered controls much better; It also fixes normal
33676             checkbox rendering when pushed or disabled.
33677
33678 2004-10-08 02:50  jordi
33679
33680         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
33681           work
33682
33683 2004-10-07 08:56  jordi
33684
33685         * ThemeWin32Classic.cs: Removes deletion of cached brushes
33686
33687 2004-10-06 03:59  jordi
33688
33689         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
33690           XplatUIWin32.cs: removes warnings from compilation
33691
33692 2004-10-05 12:23  jackson
33693
33694         * RadioButton.cs: Fix ctor
33695
33696 2004-10-05 11:10  pbartok
33697
33698         * MessageBox.cs:
33699           - Partial implementation by Benjamin Dasnois
33700
33701 2004-10-05 10:15  jackson
33702
33703         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
33704           by John BouAntoun
33705
33706 2004-10-05 03:07  ravindra
33707
33708         * ToolBar.cs:
33709                 - Removed a private method, Draw ().
33710                 - Fixed the ButtonDropDown event handling.
33711                 - Fixed MouseMove event handling.
33712
33713 2004-10-05 03:04  ravindra
33714
33715         * ThemeWin32Classic.cs:
33716                 - Added DrawListView method and ListViewDefaultSize property.
33717                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
33718                 - Changed DOS style CRLF to Unix format (dos2unix).
33719
33720 2004-10-05 03:03  ravindra
33721
33722         * Theme.cs:
33723                 - Added DrawListView method and ListViewDefaultSize property.
33724
33725 2004-10-05 02:42  ravindra
33726
33727         * ToolBarButton.cs: Added an internal member dd_pressed to handle
33728           clicks on DropDown arrow.
33729
33730 2004-10-04 22:56  jackson
33731
33732         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
33733           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
33734           Control handle the buffers, derived classes should not have to
33735           CreateBuffers themselves.
33736
33737 2004-10-04 21:20  jackson
33738
33739         * StatusBar.cs: The control handles resizing the buffers now.
33740
33741 2004-10-04 21:18  jackson
33742
33743         * Control.cs: When resizing the buffers should be invalidated. This
33744           should be handled in Control not in derived classes.
33745
33746 2004-10-04 14:45  jackson
33747
33748         * TabPage.cs: oops
33749
33750 2004-10-04 02:14  pbartok
33751
33752         * LeftRightAlignment.cs:
33753           - Initial check-in
33754
33755 2004-10-04 01:09  jordi
33756
33757         * ThemeWin32Classic.cs: fixes right button position causing right
33758           button not showing on horizontal scrollbars
33759
33760 2004-10-02 13:12  pbartok
33761
33762         * XplatUIX11.cs:
33763           - Simplified the Invalidate method by using an X call instead of
33764             generating the expose ourselves
33765           - Added an expose when the window background is changed
33766           - Implemented ClientToScreen method
33767
33768 2004-10-02 13:08  pbartok
33769
33770         * XplatUIWin32.cs:
33771           - Added Win32EnableWindow method (test for implementing modal
33772           dialogs)
33773           - Added ClientToScreen method and imports
33774
33775 2004-10-02 13:07  pbartok
33776
33777         * XplatUI.cs, XplatUIDriver.cs:
33778           - Added ClientToScreen coordinate translation method
33779
33780 2004-10-02 13:06  pbartok
33781
33782         * KeyPressEventArgs.cs:
33783           - Fixed access level for constructor
33784
33785 2004-10-02 13:06  pbartok
33786
33787         * NativeWindow.cs:
33788           - Changed access level for the window_collection hash table
33789
33790 2004-10-02 13:05  pbartok
33791
33792         * Form.cs:
33793           - Added KeyPreview property
33794           - Added Menu property (still incomplete, pending Jordi's menu work)
33795           - Implemented ProcessCmdKey
33796           - Implemented ProcessDialogKey
33797           - Implemented ProcessKeyPreview
33798
33799 2004-10-02 13:02  pbartok
33800
33801         * Control.cs:
33802           - Added private method to get the Control object from the window
33803           handle
33804           - Implemented ContextMenu property
33805           - Implemented PointToScreen
33806           - Implemented PreProcessMessage
33807           - Implemented IsInputChar
33808           - Implemented IsInputKey
33809           - Implemented ProcessCmdKey
33810           - Completed ProcessKeyEventArgs
33811           - Fixed message loop to call the proper chain of functions on key
33812           events
33813           - Implemented ProcessDialogChar
33814           - Implemented ProcessDialogKey
33815           - Implemented ProcessKeyMessage
33816           - Implemented ProcessKeyPreview
33817           - Added RaiseDragEvent stub (MS internal method)
33818           - Added RaiseKeyEvent stub (MS internal method)
33819           - Added RaiseMouseEvent stub (MS Internal method)
33820           - Added RaisePaintEvent stub (MS Internal method)
33821           - Added ResetMouseEventArgs stub (MS Internal method)
33822           - Implemented RtlTranslateAlignment
33823           - Implemented RtlTranslateContent
33824           - Implemented RtlTranslateHorizontal
33825           - Implemented RtlTranslateLeftRight
33826           - Added generation of KeyPress event
33827
33828 2004-10-02 05:57  ravindra
33829
33830         * ListViewItem.cs: Added attributes.
33831
33832 2004-10-02 05:32  ravindra
33833
33834         * ListView.cs: Added attributes.
33835
33836 2004-10-01 11:53  jackson
33837
33838         * Form.cs: Implement the Close method so work on MessageBox can
33839           continue.
33840
33841 2004-09-30 14:06  pbartok
33842
33843         * XplatUIX11.cs:
33844           - Bug fixes
33845
33846 2004-09-30 11:34  jackson
33847
33848         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
33849
33850 2004-09-30 07:26  ravindra
33851
33852         * ListViewItemConverter.cs: Converter for ListViewItem.
33853
33854 2004-09-30 07:26  ravindra
33855
33856         * SortOrder.cs: Enum for ListView control.
33857
33858 2004-09-30 07:25  ravindra
33859
33860         * ColumnHeader.cs: Supporting class for ListView control.
33861
33862 2004-09-30 07:24  ravindra
33863
33864         * ListView.cs, ListViewItem.cs: Initial implementation.
33865
33866 2004-09-30 07:20  ravindra
33867
33868         * ItemActivation.cs: Enum for ListView Control.
33869
33870 2004-09-29 20:29  pbartok
33871
33872         * XplatUIX11.cs:
33873           - Added lookup of pixel value for background color; tries to get a
33874             color 'close' to the requested color, it avoids having to create a
33875             colormap.  Depending on the display this could mean the used color
33876             is slightly off the desired color. Might have to change it to a more
33877             resource intensive colormap approach, but it will work as a
33878           workaround to avoid red screens.
33879
33880 2004-09-29 14:27  jackson
33881
33882         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
33883
33884 2004-09-28 12:44  pbartok
33885
33886         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
33887           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
33888           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
33889           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
33890           TrackBar.cs, VScrollBar.cs:
33891           - Streamlined Theme interfaces:
33892             * Each DrawXXX method for a control now is passed the object for
33893               the control to be drawn in order to allow accessing any state the
33894               theme might require
33895
33896             * ControlPaint methods for the theme now have a CP prefix to avoid
33897               name clashes with the Draw methods for controls
33898
33899             * Every control now retrieves it's DefaultSize from the current
33900             theme
33901
33902 2004-09-28 12:17  jackson
33903
33904         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
33905           drawing
33906
33907 2004-09-24 14:57  jackson
33908
33909         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
33910           Gives us a nice little performance boost.
33911
33912 2004-09-24 12:02  jackson
33913
33914         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
33915           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
33916           Control and supporting classes. Initial checkin
33917
33918 2004-09-23 13:08  jackson
33919
33920         * Form.cs: Temp build fixage
33921
33922 2004-09-23 01:39  ravindra
33923
33924         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
33925           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
33926           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
33927           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
33928           EventHandlers needed by ListView Control.
33929
33930 2004-09-22 14:12  pbartok
33931
33932         * ScrollableControl.cs:
33933           - Implemented DockPadding property
33934           - Implemented AutoScroll property
33935           - Implemented AutoScrollMargin property
33936           - Implemented AutoScrollMinSize property
33937           - Implemented AutoScrollPosition property
33938           - Implemented DisplayRectangle property (still incomplete)
33939           - Implemented CreateParams property
33940           - Implemented HScroll property
33941           - Implemented VScroll property
33942           - Implemented OnVisibleChanged property
33943
33944 2004-09-22 14:09  pbartok
33945
33946         * Form.cs:
33947           - Added Form.ControllCollection class
33948           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
33949             RemoveOwnedForm (still incomplete, missing on-top and common
33950             minimize/maximize behaviour)
33951           - Added StartPosition property (still incomplete, does not use when
33952             creating the form)
33953           - Added ShowDialog() methods (still incomplete, missing forcing the
33954             dialog modal)
33955
33956 2004-09-22 14:05  pbartok
33957
33958         * Application.cs:
33959           - Added message loop for modal dialogs
33960
33961 2004-09-22 14:02  pbartok
33962
33963         * GroupBox.cs:
33964           - Fixed wrong types for events
33965
33966 2004-09-22 14:00  pbartok
33967
33968         * Shortcut.cs, FormWindowState.cs:
33969           - Fixed wrong values
33970
33971 2004-09-22 12:01  jackson
33972
33973         * Control.cs: Text is never null
33974
33975 2004-09-20 22:14  pbartok
33976
33977         * XplatUIWin32.cs:
33978           - Fixed accessibility level for Idle handler
33979
33980 2004-09-20 18:54  jackson
33981
33982         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
33983           XplatUIX11.cs: New message loop that uses poll so we don't get a
33984           busy loop
33985
33986 2004-09-17 10:43  pbartok
33987
33988         * ScrollBar.cs:
33989           - Fixed behaviour of arrow buttons. Now properly behaves like
33990             Buttons (and like Microsoft's scrollbar arrow buttons)
33991
33992 2004-09-17 10:14  pbartok
33993
33994         * ScrollBar.cs:
33995           - Added missing release of keyboard/mouse capture
33996
33997 2004-09-17 06:18  jordi
33998
33999         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
34000           Theme.cs: Very early menu support
34001
34002 2004-09-16 17:45  pbartok
34003
34004         * XplatUIWin32.cs:
34005           - Fixed sending a window to the front
34006           - Added overload for SetWindowPos to avoid casting
34007
34008 2004-09-16 17:44  pbartok
34009
34010         * Control.cs:
34011           - Added SendToBack and BringToFront methods
34012
34013 2004-09-16 07:00  ravindra
34014
34015         * Copyright: Added Novell URL.
34016
34017 2004-09-16 07:00  ravindra
34018
34019         * ToolBar.cs: Invalidate should be done before redrawing.
34020
34021 2004-09-15 21:19  ravindra
34022
34023         * ColumnHeaderStyle.cs: Enum for ListView Control.
34024
34025 2004-09-15 21:18  ravindra
34026
34027         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
34028           ListView Control.
34029
34030 2004-09-13 18:26  jackson
34031
34032         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
34033           properly
34034
34035 2004-09-13 18:13  jackson
34036
34037         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
34038           a second thread and post messages into the main threads message
34039           queue. This makes timing much more consistent. Both win2K and XP
34040           have a minimum timer value of 15 milliseconds, so we now do this
34041           too.
34042
34043 2004-09-13 15:18  pbartok
34044
34045         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
34046           XplatUIX11.cs:
34047           - Added Z-Ordering methods
34048
34049 2004-09-13 10:56  pbartok
34050
34051         * Form.cs:
34052           - Fixed #region names
34053           - Moved properties and methods into their proper #regions
34054
34055 2004-09-13 10:51  pbartok
34056
34057         * Form.cs:
34058           - Added Accept and CancelButton properties
34059           - Added ProcessDialogKey() method
34060
34061 2004-09-13 08:18  pbartok
34062
34063         * IWindowTarget.cs:
34064           - Initial check-in
34065
34066 2004-09-10 21:50  pbartok
34067
34068         * Control.cs:
34069           - Added DoDragDrop() [incomplete]
34070           - Properly implemented 'Visible' handling
34071           - Added SetVisibleCore()
34072           - Implemented FindChildAtPoint()
34073           - Implemented GetContainerControl()
34074           - Implemented Hide()
34075
34076 2004-09-10 19:28  pbartok
34077
34078         * Control.cs:
34079           - Moved methods into their appropriate #regions
34080           - Reordered methods within regions alphabetically
34081
34082 2004-09-10 18:57  pbartok
34083
34084         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
34085           - Added method to retrieve text from window
34086
34087 2004-09-10 18:56  pbartok
34088
34089         * Control.cs:
34090           - Moved some internal functions into the internal region
34091           - Implemented FontHeight
34092           - Implemented RenderRightToLeft
34093           - Implemented ResizeRedraw
34094           - Implemented ShowFocusCues
34095           - Implemented ShowKeyboardCues
34096           - Implemented FromChildHandle
34097           - Implemented FromHandle
34098           - Implemented IsMnemonic
34099           - Implemented ReflectMessage
34100           - All public and protected Static Methods are now complete
34101
34102 2004-09-10 16:54  pbartok
34103
34104         * Control.cs:
34105           - Implemented remaining missing public instance properties
34106           - Alphabetized some out of order properties
34107
34108 2004-09-10 05:51  ravindra
34109
34110         * PictureBox.cs: Added a check for null image.
34111
34112 2004-09-10 00:59  jordi
34113
34114         * GroupBox.cs: remove cvs tag
34115
34116 2004-09-09 05:25  ravindra
34117
34118         * ToolBar.cs: Make redraw accessible from ToolBarButton.
34119
34120 2004-09-09 05:23  ravindra
34121
34122         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
34123           parent redraw.
34124
34125 2004-09-09 02:28  pbartok
34126
34127         * ThemeWin32Classic.cs:
34128           - Improve disabled string look
34129
34130 2004-09-09 01:15  jordi
34131
34132         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
34133           args and handler
34134
34135 2004-09-08 23:56  ravindra
34136
34137         * ItemBoundsPortion.cs: It's enum, not a class!
34138
34139 2004-09-08 23:47  ravindra
34140
34141         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
34142           Enums for Form.
34143
34144 2004-09-08 21:13  ravindra
34145
34146         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
34147           ListView control.
34148
34149 2004-09-08 21:03  ravindra
34150
34151         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
34152           avoid crash.
34153
34154 2004-09-08 21:01  ravindra
34155
34156         * ScrollableControl.cs: Removed unreachable code.
34157
34158 2004-09-08 06:45  jordi
34159
34160         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
34161
34162 2004-09-08 01:00  jackson
34163
34164         * XplatUIX11.cs: Only run the timers when updating the message
34165           queue. This effectively gives X messages a higher priority then
34166           timer messages. Timers still need love though
34167
34168 2004-09-07 14:01  jackson
34169
34170         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
34171           this for us and the handle is no longer valid.
34172
34173 2004-09-07 13:59  jackson
34174
34175         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
34176           loop that manages to not crash. TODO: Add poll and cleanup timers
34177
34178 2004-09-07 11:12  jordi
34179
34180         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
34181
34182 2004-09-07 03:40  jordi
34183
34184         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
34185           fixes, methods, multiple links
34186
34187 2004-09-06 06:55  jordi
34188
34189         * Control.cs: Caches ClientRectangle rectangle value
34190
34191 2004-09-05 02:03  jordi
34192
34193         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
34194           certain situations
34195
34196 2004-09-04 11:10  jordi
34197
34198         * Label.cs: Refresh when font changed
34199
34200 2004-09-02 16:24  pbartok
34201
34202         * Control.cs:
34203           - Added sanity check to creation of double buffer bitmap
34204
34205 2004-09-02 16:24  pbartok
34206
34207         * ButtonBase.cs:
34208           - Fixed selection of text color
34209           - Fixed handling of resize event; now properly recreates double
34210             buffering bitmap
34211           - Added missing assignment of TextAlignment
34212           - Added proper default for TextAlignment
34213
34214 2004-09-02 14:26  pbartok
34215
34216         * RadioButton.cs:
34217           - Added missing RadioButton.RadioButtonAccessibleObject class
34218
34219 2004-09-02 14:26  pbartok
34220
34221         * Control.cs:
34222           - Added missing Control.ControlAccessibleObject class
34223           - Started to implement Select()ion mechanisms, still very incomplete
34224
34225 2004-09-02 14:25  pbartok
34226
34227         * AccessibleObject.cs:
34228           - Added missing methods
34229
34230 2004-09-02 14:23  pbartok
34231
34232         * AccessibleNavigation.cs, AccessibleSelection.cs:
34233           - Initial check-in
34234
34235 2004-09-02 10:32  jordi
34236
34237         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
34238           pool for pens, brushes, and hatchbruses
34239
34240 2004-09-01 15:30  jackson
34241
34242         * StatusBar.cs: Fix typo
34243
34244 2004-09-01 14:44  pbartok
34245
34246         * RadioButton.cs:
34247           - Fixed state
34248
34249 2004-09-01 14:39  pbartok
34250
34251         * Button.cs, RadioButton.cs:
34252           - Functional initial check-in
34253
34254 2004-09-01 14:01  pbartok
34255
34256         * CheckBox.cs:
34257           - Added missing default
34258           - Added missing region mark
34259
34260 2004-09-01 09:10  jordi
34261
34262         * Label.cs: fixes method signatures, new methods, events, fixes
34263           autosize
34264
34265 2004-09-01 07:19  jordi
34266
34267         * Control.cs: Init string variables with an empty object
34268
34269 2004-09-01 04:20  jordi
34270
34271         * Control.cs: fires OnFontChanged event
34272
34273 2004-08-31 20:07  pbartok
34274
34275         * ButtonBase.cs:
34276           - Enabled display of strings
34277
34278 2004-08-31 20:05  pbartok
34279
34280         * Form.cs:
34281           - Added (partial) implementation of DialogResult; rest needs to be
34282             implemented when the modal loop code is done
34283
34284 2004-08-31 19:55  pbartok
34285
34286         * CheckBox.cs:
34287           - Fixed to match the removal of the needs_redraw concept
34288
34289 2004-08-31 19:55  pbartok
34290
34291         * ButtonBase.cs:
34292           - Removed the rather odd split between 'needs redraw' and redrawing
34293           - Now handles the events that require regeneration (ambient
34294             properties and size)
34295
34296 2004-08-31 19:41  pbartok
34297
34298         * Control.cs:
34299           - Added firing of BackColorChanged event
34300           - Added TopLevelControl property
34301           - Fixed handling of WM_ERASEBKGRND message
34302
34303 2004-08-31 12:49  pbartok
34304
34305         * ButtonBase.cs:
34306           - Removed debug
34307           - Minor fixes
34308
34309 2004-08-31 12:48  pbartok
34310
34311         * CheckBox.cs:
34312           - Finished (famous last words)
34313
34314 2004-08-31 04:35  jordi
34315
34316         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
34317           scrolling bugs, adds new methods
34318
34319 2004-08-30 14:42  pbartok
34320
34321         * CheckBox.cs:
34322           - Implemented CheckBox drawing code
34323
34324 2004-08-30 14:42  pbartok
34325
34326         * ButtonBase.cs:
34327           - Made Redraw() and CheckRedraw() virtual
34328           - Improved mouse up/down/move logic to properly track buttons
34329
34330 2004-08-30 09:44  pbartok
34331
34332         * CheckBox.cs:
34333           - Updated to fix broken build. Not complete yet.
34334
34335 2004-08-30 09:28  pbartok
34336
34337         * CheckState.cs:
34338           - Initial checkin
34339
34340 2004-08-30 09:17  pbartok
34341
34342         * Appearance.cs:
34343           - Initial check-in
34344
34345 2004-08-27 16:12  ravindra
34346
34347         * ToolBarButton.cs: Added TypeConverter attribute.
34348
34349 2004-08-27 16:07  ravindra
34350
34351         * ImageIndexConverter.cs: Implemented.
34352
34353 2004-08-27 14:17  pbartok
34354
34355         * Control.cs:
34356           - Removed unneeded stack vars
34357           - First attempt to fix sizing issues when layout is suspended
34358
34359 2004-08-25 15:35  jordi
34360
34361         * ScrollBar.cs: more fixes to scrollbar
34362
34363 2004-08-25 14:04  ravindra
34364
34365         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
34366           Added the missing divider code and grip for ToolBar Control.
34367
34368 2004-08-25 13:20  pbartok
34369
34370         * Control.cs:
34371           - Control now properly passes the ambient background color to child
34372             controls
34373
34374 2004-08-25 13:20  jordi
34375
34376         * ScrollBar.cs: small bug fix regarding bar position
34377
34378 2004-08-25 12:33  pbartok
34379
34380         * Timer.cs:
34381           - Now only calls SetTimer or KillTimer if the enabled state has
34382           changed
34383
34384 2004-08-25 12:33  pbartok
34385
34386         * XplatUIWin32.cs:
34387           - Fixed timer handling, now seems to work
34388           - Improved error message for window creation
34389
34390 2004-08-25 12:32  pbartok
34391
34392         * Control.cs:
34393           - Fixed generation of MouseUp message
34394
34395 2004-08-25 12:29  jordi
34396
34397         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
34398           and fixes for progressbar
34399
34400 2004-08-24 18:43  ravindra
34401
34402         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
34403           in ToolBar control.
34404
34405 2004-08-24 17:15  pbartok
34406
34407         * Panel.cs:
34408           - Added #region
34409           - Added missing events
34410           - Alphabetized
34411
34412 2004-08-24 17:14  pbartok
34413
34414         * StatusBar.cs, PictureBox.cs:
34415           - Now uses Control's CreateParams
34416
34417 2004-08-24 16:36  pbartok
34418
34419         * XplatUIX11.cs:
34420           - Fixed background color handling
34421           - Fixed sending of enter/leave events on a grab
34422
34423 2004-08-24 16:35  pbartok
34424
34425         * X11Structs.cs:
34426           - Refined definitions for CrossingEvent
34427
34428 2004-08-24 12:37  jordi
34429
34430         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
34431           formmating, methods signature, and adds missing events
34432
34433 2004-08-24 12:24  jordi
34434
34435         * Control.cs: fire OnEnabledChanged event
34436
34437 2004-08-24 11:17  pbartok
34438
34439         * XplatUIWin32.cs:
34440           - Implemented SetTimer() and KillTimer()
34441
34442 2004-08-24 11:16  pbartok
34443
34444         * XplatUIX11.cs:
34445           - Now uses Remove instead of Add to kill the timer
34446
34447 2004-08-24 10:16  jackson
34448
34449         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
34450           picture boxes in the theme now. Draw picture box borders and obey
34451           sizing modes
34452
34453 2004-08-24 05:49  jackson
34454
34455         * Timer.cs: Remove top secret debugging code
34456
34457 2004-08-24 05:34  jackson
34458
34459         * PictureBox.cs: Temp hack to make picture boxes draw their full
34460           image
34461
34462 2004-08-24 05:29  jackson
34463
34464         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
34465           XplatUIX11.cs: Move timers to the driver level. On X they are
34466           queued by the driver and checked on idle.
34467
34468 2004-08-24 01:07  jackson
34469
34470         * XplatUIX11.cs: Use a queue for async messages instead of passing
34471           them as ClientMessages since that was totally broken. Also simply
34472           check for events and return an idle message if none are found. This
34473           gives us an idle handler, and prevents deadlocking when no messages
34474           are in the queue.
34475
34476 2004-08-23 18:19  ravindra
34477
34478         * XplatUIWin32.cs: Removed the unwanted destructor.
34479
34480 2004-08-23 17:27  pbartok
34481
34482         * ButtonBase.cs:
34483           - Finishing touches. Works now, just needs some optimizations.
34484
34485 2004-08-23 16:53  jordi
34486
34487         * ScrollBar.cs: small fix
34488
34489 2004-08-23 16:45  pbartok
34490
34491         * Application.cs:
34492           - Removed debug output
34493           - Simplifications
34494
34495 2004-08-23 16:43  jordi
34496
34497         * ScrollBar.cs: [no log message]
34498
34499 2004-08-23 16:10  pbartok
34500
34501         * Form.cs:
34502           - Fixed handling of WM_CLOSE message
34503           - Removed debug output
34504
34505 2004-08-23 16:09  pbartok
34506
34507         * Application.cs:
34508           - Added handling of Idle event
34509           - Added handling of form closing
34510           - Fixed reporting of MessageLoop property
34511           - Removed some unneeded code, should provide a bit of a speedup
34512
34513 2004-08-23 15:22  pbartok
34514
34515         * Control.cs:
34516           - Added InitLayout() method
34517           - Added code to properly perform layout when Anchor or Dock property
34518             is changed
34519           - Changed 'interpretation' of ResumeLayout. MS seems to have a
34520             LAMESPEC, tried to do it in a way that makes sense
34521
34522 2004-08-23 14:10  jordi
34523
34524         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
34525           properties and methods
34526
34527 2004-08-23 13:55  pbartok
34528
34529         * Control.cs:
34530           - Properly fixed Jordi's last fix
34531           - Now uses Cursor's Position property instead of calling XplatUI
34532           directly
34533
34534 2004-08-23 13:44  jordi
34535
34536         * PaintEventHandler.cs: Adding missing attribute
34537
34538 2004-08-23 13:39  pbartok
34539
34540         * Cursor.cs:
34541           - Implemented Position property
34542
34543 2004-08-23 13:39  pbartok
34544
34545         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
34546           - Added method to move mouse cursor
34547
34548 2004-08-23 13:39  pbartok
34549
34550         * XplatUIX11.cs:
34551           - Fixed setting of background color
34552           - Added method to move mouse cursor
34553
34554 2004-08-23 13:16  jordi
34555
34556         * Control.cs: avoids null exception
34557
34558 2004-08-22 17:46  jackson
34559
34560         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
34561           PictureBox
34562
34563 2004-08-22 17:40  jackson
34564
34565         * XplatUIX11.cs: Add some missing locks
34566
34567 2004-08-22 15:10  pbartok
34568
34569         * Control.cs, Form.cs:
34570           - Removed OverlappedWindow style from Control, instead it's default
34571             now is child
34572           - Made form windows OverlappedWindow by default
34573
34574 2004-08-22 13:34  jackson
34575
34576         * ScrollBar.cs: Update the position through the Value property so
34577           the OnValueChanged event is raised.
34578
34579 2004-08-22 12:04  pbartok
34580
34581         * SWF.csproj:
34582           - Added Cursor.cs and UserControl.cs
34583
34584 2004-08-22 12:03  pbartok
34585
34586         * Cursor.cs:
34587           - Started implementation, not usable yet
34588
34589 2004-08-22 12:00  pbartok
34590
34591         * UserControl.cs:
34592           - Implemented UserControl (complete)
34593
34594 2004-08-21 19:20  ravindra
34595
34596         * ToolBar.cs: Correcting the formatting mess of VS.NET.
34597
34598 2004-08-21 18:49  ravindra
34599
34600         * ToolBar.cs: Probably this completes the missing attributes in
34601           toolbar control.
34602
34603 2004-08-21 18:03  ravindra
34604
34605         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
34606           Fixed toolbar control signatures.
34607
34608 2004-08-21 16:32  pbartok
34609
34610         * LinkLabel.cs:
34611           - Signature Fixes
34612
34613 2004-08-21 16:30  pbartok
34614
34615         * Label.cs:
34616           - Signature fixes
34617
34618 2004-08-21 16:19  pbartok
34619
34620         * Control.cs, Label.cs:
34621           - Signature fixes
34622
34623 2004-08-21 15:57  pbartok
34624
34625         * ButtonBase.cs:
34626           - Added loads of debug output for development
34627           - Fixed typo in method name
34628
34629 2004-08-21 15:52  pbartok
34630
34631         * ToolBarButtonClickEventArgs.cs:
34632           - Added missing base class
34633
34634 2004-08-21 14:53  pbartok
34635
34636         * Control.cs:
34637           - Updated to match new GrabWindow signature
34638
34639 2004-08-21 14:51  pbartok
34640
34641         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
34642           - Added method to get default display size
34643
34644 2004-08-21 14:23  pbartok
34645
34646         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
34647           - Added method to query current grab state
34648           - Added argument to allow confining a grab to a window
34649
34650 2004-08-21 14:22  pbartok
34651
34652         * Keys.cs:
34653           - Added [Flags] attribute so that modifiers can be used in bitwise
34654           ops
34655
34656 2004-08-21 14:21  pbartok
34657
34658         * TrackBar.cs, ScrollBar.cs:
34659           - Replaced direct XplatUI calls with their Control counterpart
34660
34661 2004-08-21 13:32  pbartok
34662
34663         * Control.cs:
34664           - Implemented Created property
34665
34666 2004-08-21 13:28  pbartok
34667
34668         * Control.cs:
34669           - Implemented ContainsFocus
34670
34671 2004-08-21 13:26  pbartok
34672
34673         * Control.cs:
34674           - Implemented CausesValidation
34675
34676 2004-08-21 13:21  pbartok
34677
34678         * Control.cs:
34679           - Implemented CanFocus
34680           - Implemented CanSelect
34681           - Implemented Capture
34682
34683 2004-08-21 12:35  pbartok
34684
34685         * XplatUIWin32.cs:
34686           - Fixed bug with Async message handling
34687           - Implemented getting the ModifierKeys
34688
34689 2004-08-21 12:32  jackson
34690
34691         * AsyncMethodResult.cs: Make sure we have the mutex before we
34692           release it. Fixes BeginInvoke on windows
34693
34694 2004-08-21 11:31  pbartok
34695
34696         * XplatUIWin32.cs, XplatUIX11.cs:
34697           - Drivers now return proper mouse state
34698
34699 2004-08-21 10:54  jackson
34700
34701         * Control.cs: Implement EndInvoke
34702
34703 2004-08-21 10:48  jackson
34704
34705         * Timer.cs: Remove unneeded finalizer
34706
34707 2004-08-20 19:52  ravindra
34708
34709         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
34710           in mouse event handling in the ToolBar control.
34711
34712 2004-08-20 19:50  ravindra
34713
34714         * ImageList.cs: Changed draw method to use the arguments passed in
34715           to draw the image.
34716
34717 2004-08-20 18:58  pbartok
34718
34719         * XplatUIStructs.cs:
34720           - Added private message for async communication
34721
34722 2004-08-20 17:38  ravindra
34723
34724         * Control.cs: Made RightToLeft property virtual and removed a
34725           Console.WriteLine.
34726
34727 2004-08-20 14:39  jordi
34728
34729         * ThemeGtk.cs: use style_attach
34730
34731 2004-08-20 14:39  pbartok
34732
34733         * XplatUIWin32.cs:
34734           - Added jackson's Async code from X11 to Win32
34735
34736 2004-08-20 14:09  pbartok
34737
34738         * SWF.csproj:
34739           - Added all new files
34740
34741 2004-08-20 14:09  pbartok
34742
34743         * Control.cs:
34744           - Added call to set window background color
34745
34746 2004-08-20 14:03  pbartok
34747
34748         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
34749           - Added method for setting the window background
34750
34751 2004-08-20 14:02  pbartok
34752
34753         * XplatUIWin32.cs:
34754           - Added method for setting the background color
34755           - Added handling for erasing the window background
34756
34757 2004-08-20 13:45  jordi
34758
34759         * TrackBar.cs: fixes timer, new properties and methods
34760
34761 2004-08-20 13:34  jackson
34762
34763         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
34764           correct thread
34765
34766 2004-08-20 13:22  jackson
34767
34768         * Timer.cs: Timer Tick events are now handed through Controls Async
34769           mechanism so the callbacks are executed in the same thread as X
34770
34771 2004-08-20 13:19  jackson
34772
34773         * XplatUIDriver.cs: Expose functionality to send async messages
34774           through the driver
34775
34776 2004-08-20 13:18  jackson
34777
34778         * Control.cs: Implement Begininvoke
34779
34780 2004-08-20 13:14  jackson
34781
34782         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
34783           messages through the driver
34784
34785 2004-08-20 13:12  jackson
34786
34787         * XplatUIX11.cs: Lock before all X operations. Also added Async
34788           method functionality through XSendEvent
34789
34790 2004-08-20 13:11  jackson
34791
34792         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
34793           This will screw up on 64 bit systems)
34794
34795 2004-08-20 13:10  jackson
34796
34797         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
34798           Async messages through X/Win32
34799
34800 2004-08-19 19:39  pbartok
34801
34802         * XplatUIX11.cs:
34803           - Updated code to match new HandleData.DeviceContext type
34804
34805 2004-08-19 19:38  pbartok
34806
34807         * HandleData.cs:
34808           - Made DeviceContext a generic object to allow usage from various
34809           drivers
34810           - Added support for queueing Windows messages
34811
34812 2004-08-19 19:37  pbartok
34813
34814         * XplatUIWin32.cs:
34815           - Added generation of MouseEnter, MouseLeave and MouseHover events
34816           - Added cleanup on EndPaint
34817
34818 2004-08-19 19:17  pbartok
34819
34820         * Control.cs:
34821           - Added handling of WM_MOUSEHOVER
34822           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
34823           code
34824
34825 2004-08-19 18:55  jordi
34826
34827         * ThemeGtk.cs: fixes button order
34828
34829 2004-08-19 18:12  jordi
34830
34831         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
34832
34833 2004-08-19 17:09  pbartok
34834
34835         * Control.cs:
34836           - Added Right property
34837           - Added RightToLeft property
34838
34839 2004-08-19 16:27  jordi
34840
34841         * ThemeGtk.cs: experimental GTK theme support
34842
34843 2004-08-19 16:26  jordi
34844
34845         * ITheme.cs, Theme.cs: move themes from an interface to a class
34846
34847 2004-08-19 16:25  jordi
34848
34849         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
34850           theme enhancaments
34851
34852 2004-08-19 16:04  pbartok
34853
34854         * XplatUIX11.cs:
34855           - Added colormap basics
34856           - Added a way to re-initialize with a different display handle
34857           - Fixed setting of the window background color
34858           - Added various X11 imports related to colors and colormaps
34859
34860 2004-08-19 15:51  pbartok
34861
34862         * X11Structs.cs:
34863           - Removed packing hints (Paolo suggested this a while back)
34864           - fixed colormap type
34865           - Added default Atom types
34866           - Added Screen and color structs and enums
34867
34868 2004-08-19 15:39  pbartok
34869
34870         * ImageList.cs:
34871           - Added missing Draw() method
34872           - Added missing RecreateHandle event
34873
34874 2004-08-19 15:30  pbartok
34875
34876         * Form.cs:
34877           - Added handling of WM_CLOSE
34878
34879 2004-08-18 13:16  jordi
34880
34881         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
34882           a table
34883
34884 2004-08-18 09:56  jordi
34885
34886         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
34887
34888 2004-08-17 15:31  ravindra
34889
34890         * SWF.csproj: Updated project.
34891
34892 2004-08-17 15:25  pbartok
34893
34894         * Control.cs:
34895           - Drawing improvement; don't call UpdateBounds if we are not visible
34896             (or have been minimized)
34897
34898 2004-08-17 15:24  pbartok
34899
34900         * XplatUIWin32.cs:
34901           - Finished IsVisible
34902           - Added Win32GetWindowPlacement
34903
34904 2004-08-17 15:08  jackson
34905
34906         * Panel.cs: Initial checkin of the Panel
34907
34908 2004-08-17 14:25  pbartok
34909
34910         * Control.cs:
34911           - Fixed broken handling of default window sizes
34912
34913 2004-08-17 13:29  jackson
34914
34915         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
34916           has a large startup time.
34917
34918 2004-08-17 10:25  jackson
34919
34920         * HandleData.cs: union areas properly
34921
34922 2004-08-17 10:12  jackson
34923
34924         * HandleData.cs: union areas properly
34925
34926 2004-08-16 20:00  ravindra
34927
34928         * ToolBar.cs, ToolBarButton.cs: Added attributes.
34929
34930 2004-08-16 18:48  ravindra
34931
34932         * ToolBar.cs: Added attributes.
34933
34934 2004-08-16 17:17  ravindra
34935
34936         * SWF.csproj: Updated project.
34937
34938 2004-08-16 17:16  jackson
34939
34940         * XplatUIX11.cs: Check for more expose events before sending a
34941           WM_PAINT so they can all be grouped together. This makes dragging a
34942           window across another window redraw in a sane way.
34943
34944 2004-08-16 15:47  pbartok
34945
34946         * Control.cs:
34947           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
34948             support OnMouseEnter/Leave()
34949           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
34950             exposure handling
34951
34952 2004-08-16 15:46  pbartok
34953
34954         * XplatUIStructs.cs, XplatUIX11.cs:
34955           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
34956           OnMouseEnter/Leave()
34957
34958 2004-08-16 15:34  jackson
34959
34960         * XplatUIX11.cs: Group multiple expose events in HandleData, make
34961           sure messages get the message field set to WM_NULL if they are not
34962           handled.
34963
34964 2004-08-16 15:24  jackson
34965
34966         * HandleData.cs: HandleData is used for storing message information
34967           for window handles
34968
34969 2004-08-15 17:23  ravindra
34970
34971         * ColorDepth.cs: Added attribute.
34972
34973 2004-08-15 17:23  ravindra
34974
34975         * SWF.csproj: Updated project for ToolBar Control.
34976
34977 2004-08-15 17:20  ravindra
34978
34979         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
34980           control and also dos2unix format.
34981
34982 2004-08-15 17:13  ravindra
34983
34984         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
34985           ToolBarButtonClickEventArgs.cs,
34986           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
34987           ToolBarTextAlign.cs: First Implementation of ToolBar control.
34988
34989 2004-08-15 15:31  pbartok
34990
34991         * ButtonBase.cs:
34992           - First (mostly) working version
34993
34994 2004-08-13 16:15  pbartok
34995
34996         * Control.cs:
34997           - Fixed Anchor default
34998
34999 2004-08-13 15:43  pbartok
35000
35001         * Control.cs:
35002           - Changed GetCursorPos signature
35003
35004 2004-08-13 15:42  pbartok
35005
35006         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
35007           - Changed signature for GetCursorPos
35008
35009 2004-08-13 15:25  pbartok
35010
35011         * XplatUIX11.cs:
35012           - Cleanup
35013           - Fixed resizing/exposure handling
35014
35015 2004-08-13 15:22  jordi
35016
35017         * ThemeWin32Classic.cs: removes redundant code and fixes issues
35018           with tickposition
35019
35020 2004-08-13 14:55  jordi
35021
35022         * TrackBar.cs: change from wndproc to events
35023
35024 2004-08-13 13:00  jordi
35025
35026         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
35027           XplatUIX11.cs: implements PointToClient (ScreenToClient)
35028
35029 2004-08-13 12:53  pbartok
35030
35031         * XplatUIWin32.cs:
35032           - Changed GetWindowPos to also provide client area size
35033           - Fixed broken prototypes for several win32 functions
35034
35035 2004-08-13 12:53  pbartok
35036
35037         * XplatUI.cs, XplatUIDriver.cs:
35038           - Changed GetWindowPos to also provide client area size
35039
35040 2004-08-13 12:52  pbartok
35041
35042         * XplatUIX11.cs:
35043           - Added generation of WM_POSCHANGED
35044           - Changed GetWindowPos to also provide client area size
35045
35046 2004-08-13 12:52  pbartok
35047
35048         * Control.cs:
35049           - Added Dispose() and destructor
35050           - Fixed resizing and bounds calculation
35051           - Fixed Layout
35052           - Added memory savings for invisible windows
35053
35054 2004-08-13 12:46  jordi
35055
35056         * TrackBar.cs: adds timer and grap window
35057
35058 2004-08-13 10:25  jackson
35059
35060         * Timer.cs: SWF Timer
35061
35062 2004-08-12 16:59  pbartok
35063
35064         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
35065           - Implemented method to get current mouse position
35066
35067 2004-08-12 14:29  jordi
35068
35069         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
35070           enhancement, fix mouse problems, highli thumb, etc
35071
35072 2004-08-12 13:31  pbartok
35073
35074         * Control.cs:
35075           - Fixed Anchoring bugs
35076
35077 2004-08-12 13:01  jackson
35078
35079         * StatusBar.cs: Don't forget things
35080
35081 2004-08-12 12:54  jackson
35082
35083         * ThemeWin32Classic.cs: Handle owner draw status bars
35084
35085 2004-08-12 12:54  jackson
35086
35087         * StatusBar.cs: Implement missing properties, events, and methods.
35088           Handle mouse clicking
35089
35090 2004-08-12 10:19  jackson
35091
35092         * StatusBarPanelClickEventArgs.cs,
35093           StatusBarPanelClickEventHandler.cs: Classes for handling status
35094           bar panel click events
35095
35096 2004-08-12 10:10  jackson
35097
35098         * Control.cs: Add missing properties
35099
35100 2004-08-12 09:46  pbartok
35101
35102         * BindingsManagerBase.cs:
35103           - Name changed to BindingManagerBase.cs
35104
35105 2004-08-12 09:25  jordi
35106
35107         * ScrollableControl.cs: calls ctrlbase instead of exeception
35108
35109 2004-08-11 16:28  pbartok
35110
35111         * InputLanguageChangingEventArgs.cs:
35112           - Never check in before compiling. Fixes the last check-in
35113
35114 2004-08-11 16:26  pbartok
35115
35116         * InputLanguageChangingEventArgs.cs:
35117           - More signature fixes
35118
35119 2004-08-11 16:20  pbartok
35120
35121         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
35122           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
35123           ImageListStreamer.cs, InputLanguage.cs,
35124           InputLanguageChangedEventArgs.cs,
35125           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
35126           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
35127           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
35128           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
35129           - Signature fixes
35130
35131 2004-08-11 16:16  pbartok
35132
35133         * Application.cs:
35134           - Fixed Signature
35135           - Added .Net 1.1 method
35136
35137 2004-08-11 15:25  pbartok
35138
35139         * SWF.csproj:
35140           - Fixed BindingManagerBase.cs filename
35141
35142 2004-08-11 15:22  pbartok
35143
35144         * BindingManagerBase.cs:
35145           - Was checked in with wrong filename
35146
35147 2004-08-11 14:50  pbartok
35148
35149         * SWF.csproj:
35150           - Updated
35151
35152 2004-08-11 13:41  jordi
35153
35154         * XplatUIWin32.cs: Fixes ClientRect
35155
35156 2004-08-11 13:19  pbartok
35157
35158         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
35159           XplatUIX11.cs:
35160           - We had SetWindowPos and MoveWindow to set window positions and
35161             size, removed MoveWindow. We have GetWindowPos, so it made sense to
35162             keep SetWindowPos as matching counterpart
35163           - Added some X11 sanity checking
35164
35165 2004-08-11 12:59  pbartok
35166
35167         * Control.cs:
35168           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
35169             (It seems that SetBounds is just a front for SetBoundsCore and
35170              SetBoundsCore updates the underlying window system and
35171              UpdateBounds is responsible for updating the variables associated
35172              with the Control and sending the events)
35173           - Major cleanup of Size handling; we now have two sizes, client_size
35174             and bounds. Bounds defines the window with decorations, client_size
35175             without them.
35176
35177 2004-08-11 12:55  pbartok
35178
35179         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
35180           - Added method to calculate difference between decorated window and
35181             raw client area
35182
35183 2004-08-11 12:54  pbartok
35184
35185         * Label.cs:
35186           - Forcing redraw on resize
35187
35188 2004-08-11 11:43  pbartok
35189
35190         * ImageList.cs:
35191           - Removed disposing of the actual images when the list is disposed
35192
35193 2004-08-11 09:13  pbartok
35194
35195         * Control.cs:
35196           - Now properly reparents windows
35197
35198 2004-08-11 08:37  pbartok
35199
35200         * Control.cs:
35201           - Duh!
35202
35203 2004-08-11 07:47  pbartok
35204
35205         * Control.cs:
35206           - Rewrote the collection stuff. Might not be as fast now, not
35207             keeping the number of children around and accessible directly, but
35208             it's more straightforward
35209
35210 2004-08-11 07:44  pbartok
35211
35212         * AccessibleObject.cs:
35213           - Fixed to match ControlCollection rewrite
35214
35215 2004-08-11 07:43  pbartok
35216
35217         * ImageList.cs:
35218           - Added missing creation of the collection list
35219
35220 2004-08-10 20:08  jackson
35221
35222         * StatusBar.cs: Get the paint message from WndProc
35223
35224 2004-08-10 19:31  jackson
35225
35226         * ThemeWin32Classic.cs: Create Brushes as little as possible
35227
35228 2004-08-10 19:20  jackson
35229
35230         * UICues.cs: Add Flags attribute
35231
35232 2004-08-10 19:19  jackson
35233
35234         * StatusBarPanel.cs: Signature cleanup
35235
35236 2004-08-10 19:10  jackson
35237
35238         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
35239           Initial implementation of status bar item drawing
35240
35241 2004-08-10 17:27  jordi
35242
35243         * TrackBar.cs: add missing methods, properties, and restructure to
35244           hide extra ones
35245
35246 2004-08-10 16:24  jackson
35247
35248         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
35249           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
35250           attribute
35251
35252 2004-08-10 13:21  jordi
35253
35254         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
35255           enhancements and standarize on win colors defaults
35256
35257 2004-08-10 12:52  jackson
35258
35259         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
35260           ThemeWin32Classic.cs: Implement DrawItem functionality
35261
35262 2004-08-10 12:47  jordi
35263
35264         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
35265
35266 2004-08-10 12:32  jordi
35267
35268         * Control.cs: throw ontextchange event
35269
35270 2004-08-10 11:43  pbartok
35271
35272         * Control.cs:
35273           - Added more to the still unfinished Dock/Anchor layout code
35274
35275 2004-08-10 11:39  pbartok
35276
35277         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
35278           - Added GetWindowPos method
35279
35280 2004-08-10 11:36  pbartok
35281
35282         * XplatUIWin32.cs:
35283           - Implemented several methods
35284
35285 2004-08-10 09:47  jackson
35286
35287         * TrackBar.cs: Allow control to handle buffering
35288
35289 2004-08-10 09:41  jackson
35290
35291         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
35292
35293 2004-08-10 09:24  jackson
35294
35295         * Label.cs, LinkLabel.cs: Let Control handle buffering.
35296
35297 2004-08-10 09:09  jackson
35298
35299         * StatusBar.cs: Let Control handle all the buffering.
35300
35301 2004-08-10 09:08  jackson
35302
35303         * Control.cs: Control will now handle the buffering code, so each
35304           control does not have to implement this.
35305
35306 2004-08-10 08:34  jackson
35307
35308         * XplatUIDriver.cs: Use default colors from the theme
35309
35310 2004-08-09 17:12  pbartok
35311
35312         * ImageList.cs:
35313           - Fixed several bugs Ravindra pointed out
35314
35315 2004-08-09 16:11  pbartok
35316
35317         * Control.cs:
35318           - Added incomplete dock layout code
35319           - Added support for mouse wheel
35320
35321 2004-08-09 16:09  pbartok
35322
35323         * XplatUIX11.cs:
35324           - Added handling for middle and right mousebutton
35325           - Added handling for mouse wheel
35326           - Added handling for key state and mouse state and position
35327           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
35328           messages
35329
35330 2004-08-09 15:40  jackson
35331
35332         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
35333           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
35334           checkin
35335
35336 2004-08-09 15:37  jackson
35337
35338         * StatusBar.cs: Initial implementation of StatusBar
35339
35340 2004-08-09 15:36  jackson
35341
35342         * ITheme.cs: Add support for drawing status bar and getting status
35343           bar item sizes
35344
35345 2004-08-09 15:35  pbartok
35346
35347         * MouseButtons.cs:
35348           - Fixed values
35349
35350 2004-08-09 15:34  jackson
35351
35352         * ThemeWin32Classic.cs: Add support for drawing status bar and get
35353           status bar item sizes
35354
35355 2004-08-09 15:21  jackson
35356
35357         * ThemeWin32Classic.cs: Use known colors for default control
35358           colours
35359
35360 2004-08-09 15:12  jackson
35361
35362         * ThemeWin32Classic.cs: Make the default font static, it is static
35363           in control so this doesn't change functionality and creating fonts
35364           is sloooooow.
35365
35366 2004-08-09 14:56  pbartok
35367
35368         * X11Structs.cs:
35369           - Added GrabMode enum
35370
35371 2004-08-09 14:55  pbartok
35372
35373         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
35374           - Removed Run method, was only required for initial development
35375
35376 2004-08-09 14:51  pbartok
35377
35378         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
35379           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
35380           capture
35381
35382 2004-08-09 13:48  pbartok
35383
35384         * XplatUIX11.cs:
35385           - Fixed default sizing for child windows
35386
35387 2004-08-09 12:56  pbartok
35388
35389         * XplatUIX11.cs:
35390           - Added generation of WM_DESTROY message
35391           - Added handling of window manager induced shutdown
35392
35393 2004-08-09 11:31  jackson
35394
35395         * ThemeWin32Classic.cs: New names for control properties
35396
35397 2004-08-09 11:25  jackson
35398
35399         * Control.cs: Use new color names
35400
35401 2004-08-09 11:02  jackson
35402
35403         * XplatUI.cs: Get default window properties from the theme
35404
35405 2004-08-09 11:01  jackson
35406
35407         * ITheme.cs: The theme engine now controls default window
35408           properties
35409
35410 2004-08-09 11:00  jackson
35411
35412         * ThemeWin32Classic.cs: Add default window color properties
35413
35414 2004-08-09 10:17  jackson
35415
35416         * ThemeWin32Classic.cs: Use correct default back color
35417
35418 2004-08-09 10:05  jackson
35419
35420         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
35421           the theme now.
35422
35423 2004-08-09 09:56  jackson
35424
35425         * XplatUI.cs: Remove defaults, these are handled by the theme now.
35426
35427 2004-08-09 09:54  jackson
35428
35429         * Control.cs: Get default properties from the theme.
35430
35431 2004-08-09 09:53  jackson
35432
35433         * ITheme.cs: Themes now handle default control properties
35434
35435 2004-08-09 09:53  jackson
35436
35437         * ThemeWin32Classic.cs: Themes now handle default control
35438           properties so coloring will be consistent
35439
35440 2004-08-08 16:54  jordi
35441
35442         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
35443
35444 2004-08-08 15:08  jordi
35445
35446         * XplatUIX11.cs: fixes keyboard crash
35447
35448 2004-08-08 13:47  jordi
35449
35450         * Label.cs: add cvs header info
35451
35452 2004-08-08 12:09  jackson
35453
35454         * ThemeWin32Classic.cs: Add pen_buttonface
35455
35456 2004-08-08 11:52  jordi
35457
35458         * Label.cs, LinkLabel.cs: [no log message]
35459
35460 2004-08-08 11:34  jordi
35461
35462         * ThemeWin32Classic.cs: Use Windows Standard Colours
35463
35464 2004-08-07 17:32  jordi
35465
35466         * TrackBar.cs: throw exceptions of invalid enums values
35467
35468 2004-08-07 17:31  jordi
35469
35470         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
35471           draw method name
35472
35473 2004-08-07 16:56  jackson
35474
35475         * HorizontalAlignment.cs: Initial checkin
35476
35477 2004-08-07 13:16  jordi
35478
35479         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
35480           methods
35481
35482 2004-08-07 13:05  jordi
35483
35484         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
35485           GetSysColor defines
35486
35487 2004-08-06 18:01  pbartok
35488
35489         * ThemeWin32Classic.cs:
35490           - Fixed some rounding issues with float/int
35491
35492 2004-08-06 18:00  jackson
35493
35494         * DockStyle.cs, AnchorStyles.cs:
35495
35496                   Add flags and serializable attributes.
35497
35498 2004-08-06 17:46  pbartok
35499
35500         * XplatUIX11.cs:
35501           - Implemented GetParent
35502
35503 2004-08-06 17:18  pbartok
35504
35505         * TrackBar.cs:
35506           - Fixed some rounding issues with float/int
35507
35508 2004-08-06 17:17  pbartok
35509
35510         * X11Structs.cs, XplatUIX11.cs:
35511           - Fixed Refresh and Invalidate
35512
35513 2004-08-06 15:30  pbartok
35514
35515         * Control.cs, X11Structs.cs, XplatUIX11.cs:
35516           - Fixed recursive loop when resizing
35517           - Improved/fixed redrawing on expose messages
35518
35519 2004-08-06 09:53  jordi
35520
35521         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
35522           keyboard navigation
35523
35524 2004-08-06 08:02  pbartok
35525
35526         * X11Structs.cs, XplatUIX11.cs:
35527           - Fixed reparenting
35528           - Fixed window border creation
35529
35530 2004-08-05 15:38  pbartok
35531
35532         * XplatUIX11.cs:
35533           - Attempted fix for reparenting problems
35534
35535 2004-08-04 15:14  pbartok
35536
35537         * Control.cs:
35538           - Fixed Invalidation bug (calculated wrong client area)
35539           - Added ClientSize setter
35540
35541 2004-08-04 15:13  pbartok
35542
35543         * Form.cs:
35544           - Added AutoScale properties
35545
35546 2004-08-04 15:13  pbartok
35547
35548         * SWF.csproj:
35549           - Added latest files
35550
35551 2004-08-04 14:11  pbartok
35552
35553         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
35554           XplatUIX11.cs:
35555           - Added Invalidate handling
35556
35557 2004-08-03 17:09  jordi
35558
35559         * XplatUIDriver.cs: fixes spelling mistake
35560
35561 2004-07-27 09:53  jordi
35562
35563         * TrackBar.cs: fixes trackbar events, def classname, methods
35564           signature
35565
35566 2004-07-27 09:29  jordi
35567
35568         * ScrollBar.cs: fixes scrollbar events
35569
35570 2004-07-27 04:38  jordi
35571
35572         * Control.cs: changes to be able to run winforms samples
35573
35574 2004-07-26 11:42  jordi
35575
35576         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
35577           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
35578
35579 2004-07-26 05:41  jordi
35580
35581         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
35582           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
35583           implementation
35584
35585 2004-07-22 09:22  jordi
35586
35587         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
35588           check link overlapping, implement events, and fixes
35589
35590 2004-07-21 10:28  jordi
35591
35592         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
35593
35594 2004-07-21 10:19  jordi
35595
35596         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
35597           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
35598           LinkLabelLinkClickedEventArgs.cs,
35599           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
35600           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
35601           implementation
35602
35603 2004-07-19 13:09  jordi
35604
35605         * Control.cs, Label.cs: label control re-written: added missing
35606           functionlity, events, and properties
35607
35608 2004-07-19 10:49  jordi
35609
35610         * Control.cs: fixes SetBounds logic
35611
35612 2004-07-19 01:29  jordi
35613
35614         * Control.cs: Call RefreshWindow only if the window has created
35615
35616 2004-07-15 14:05  pbartok
35617
35618         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
35619           - Implemented ImageList and ImageList.ImageCollection classes
35620           - Added ColorDepth enumeration
35621           - Updated SWF VS.Net project
35622
35623 2004-07-15 11:06  jordi
35624
35625         * XplatUIStructs.cs: added MsgButons enum
35626
35627 2004-07-15 11:03  jordi
35628
35629         * Control.cs: added basic mouse handeling events
35630
35631 2004-07-15 03:38  jordi
35632
35633         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
35634           Vertical TrackBar control implementation
35635
35636 2004-07-13 09:33  jordi
35637
35638         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
35639
35640 2004-07-13 09:31  jordi
35641
35642         * Control.cs, Form.cs: commit: new properties and fixes form size
35643           problems
35644
35645 2004-07-09 14:13  miguel
35646
35647         * ProgressBar.cs: Spelling
35648
35649 2004-07-09 11:25  pbartok
35650
35651         * ProgressBar.cs:
35652           - Removed usage of Rectangle for drawing. Miguel pointed out it's
35653           faster
35654
35655 2004-07-09 11:17  miguel
35656
35657         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
35658
35659                 * ProgressBar.cs: Fixed spelling for `block'
35660
35661                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
35662                 style guidelines.
35663
35664                 Avoid using the += on rect.X, that exposed a bug in the compiler.
35665
35666 2004-07-08 23:21  pbartok
35667
35668         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
35669           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
35670           BaseCollection.cs, Binding.cs, BindingContext.cs,
35671           BindingMemberInfo.cs, BindingsCollection.cs,
35672           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
35673           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
35674           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
35675           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
35676           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
35677           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
35678           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
35679           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
35680           FrameStyle.cs, GiveFeedbackEventArgs.cs,
35681           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
35682           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
35683           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
35684           InputLanguageChangedEventArgs.cs,
35685           InputLanguageChangedEventHandler.cs,
35686           InputLanguageChangingEventArgs.cs,
35687           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
35688           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
35689           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
35690           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
35691           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
35692           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
35693           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
35694           QueryAccessibilityHelpEventArgs.cs,
35695           QueryAccessibilityHelpEventHandler.cs,
35696           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
35697           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
35698           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
35699           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
35700           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
35701           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
35702           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
35703           XplatUIX11.cs, lang.cs:
35704           - Initial check-in
35705
35706