* SendKeys.cs: Fix Send() behaviour, clear keys after sending,
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2
3         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
4         check for keywords in alternate casing, close bug #80049.
5
6 2006-12-19  Chris Toshok  <toshok@ximian.com>
7
8         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
9         methods (which all do nothing).
10
11         * IDropTarget.cs: add the 4 missing methods.
12
13 2006-12-19  Chris Toshok  <toshok@ximian.com>
14
15         * TableLayoutRowStyleCollection.cs: corcompare work.
16         
17         * TableLayoutSettings.cs: same.
18
19         * TableLayoutStyle.cs: same.
20
21         * TableLayoutColumnStyleCollection.cs: same.
22
23 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
24
25         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
26         TableLayoutPanel I've had in my local tree for way too long.
27
28 2006-12-19  Miguel de Icaza  <miguel@novell.com>
29
30         * TableLayoutSettings.cs: Finish the public API (still needs all
31         the logic to update on changes). 
32
33         * TableLayoutPanelCellPosition.cs: new file.
34         
35         * TableLayoutRowStyleCollection.cs,
36         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
37         TableLayoutSettings.cs: Track the final 2.0 table api.
38
39 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
40
41         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
42         and Image List 2.0 members for ColummnHeader.
43         * ListView.cs: Add key-related 2.0 methods for
44         ColumnHeaderCollection.
45
46 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
47
48         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
49         ArgumentNullException if items argument is null. Ignore null item in
50         arrays. Removed extra tabs.
51
52 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
53
54         * MonthCalendar.cs: Fixed InvalidCastException.
55
56 2006-12-19  Jackson Harper  <jackson@ximian.com>
57
58         * TextControl.cs: Don't increment the position here.
59         - When calculating char positions only add in the line break size
60         for hard line breaks.
61
62 2006-12-19  Andreia Gaita  <avidigal@novell.org>
63
64         * SendKeys.cs: Changed some things to match ms.net behaviour
65         when parsing shifted capital letters.
66         
67         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
68         Add window handle as parameter to SendInput. X11 needs the 
69         window handle, and the handle being passed      to it in the keys 
70         queue is the active control handle (which windows needs), not 
71         the window handle.
72         
73         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
74         to support SendKeys on X.       
75         
76         * X11Keyboard: Implement helper method to lookup a linux keycode
77         given the virtual keycode. Added table of keycode-2-virtualkey
78         values to support this.
79
80 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
81
82         * ListView.cs: Add support for SelectedIndexCollection
83         and SelectedItemCollection 2.0 methods. Implement support
84         for ImageKey too.
85         * ListViewItem.cs: Add support for ListViewSubItemCollection
86         2.0 methods. Also, fix an incorrect behavior of AddRange method
87         (it shouldn't call Clear).
88         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
89
90 2006-12-19  Jackson Harper  <jackson@ximian.com>
91
92         * RichTextBox.cs: 
93         * TextBoxBase.cs: New args for FormatText
94         * TextControl.cs: Rewrote the main drawing method, this version
95         feels a little easier to understand and debug to me.  Hopefully it
96         does to others also
97         - Fix FormatText to OR in the new formating values.  Added
98         FormatSpecified param, basically this works in the same way as
99         BoundsSpecified in Control.
100         - Set the caret properties when the caret is positioned.
101         - When wrapping text make sure that we calculate the width of the
102         last character
103         - when calculating alignments we might have wrapped down to the
104         next line, so don't search for an individual tag, search for the
105         end of the line
106         - We need to invalidate the selection area when we replace the
107         selection.
108         
109 2006-12-19  Daniel Nauck  <dna@mono-project.de>
110
111         * Application.cs: add Restart () 2.0 support
112
113 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
114
115         * MenuItem.cs: Invalidate menu item rectangle after change Enable
116         property. Fixes #80268.
117         
118 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
119
120         * MenuAPI.cs: Dont trigger select event when closes top menu
121         item. Fixes #80270.
122
123 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
124
125         * MenuAPI.cs: When you click on menuitem only trigger onselect
126         event for top menu itens. Fixes #80271.
127         
128 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
129
130         * MdiWindowManager.cs: Make IconicBounds depend on
131         the bottom of MdiClient, not the top (fixes #80267)
132         
133 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
134
135         * MdiClient.cs: Added missing 2.0 attribute
136
137 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
138
139         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
140         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
141
142 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
143
144         * MenuAPI.cs: Fix click when menuitem is not popup,
145         this regression was caused by last commit (#80272).
146
147 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
148
149         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
150         fire click event or close menu. Fixes #80272.
151
152 2006-12-17  Daniel Nauck  <dna@mono-project.de>
153
154         * ListViewHitTestInfo.cs: add
155
156 2006-12-17  Daniel Nauck  <dna@mono-project.de>
157
158         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
159         * FlatButtonAppearance.cs: add
160         * DockingAttribute.cs: add
161
162 2006-12-17  Chris Toshok  <toshok@ximian.com>
163
164         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
165         and rebind our columns when it does - this way, if you make
166         changes to the DataTable (or set the Table attribute on a DataView
167         after setting it as the DataGrid's DataSource, the changes are
168         made visible.)  Fixes bug #80107.
169
170 2006-12-17  Daniel Nauck  <dna@mono-project.de>
171
172         * ListViewGroup.cs: add internal Location property for layouting.
173         * Theme.cs: add abstract ListViewGroupHeight function.
174         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
175
176 2006-12-16  Andreia Gaita  <avidigal@novell.com>
177
178         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
179         Added reset of selected index to 0 when adding first tab page.
180         Fixes #80264
181         
182         * NumericUpDown.cs: Fix NET_2_0 check
183
184 2006-12-16  Daniel Nauck  <dna@mono-project.de>
185
186         * ListViewGroup.cs: fixed DefaultValueAttribute value
187
188 2006-12-16  Daniel Nauck  <dna@mono-project.de>
189
190         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
191
192 2006-12-15  Miguel de Icaza  <miguel@novell.com>
193
194         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
195         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
196         ScrollableControl.cs: Add a handful of methods that are
197         overwritten in 2.0 
198
199 2006-12-15  Chris Toshok  <toshok@ximian.com>
200
201         * XplatUIWin32.cs: initial implementation of the Reversible
202         drawing functions.  there are some problems.  DrawReversibleFrame
203         doesn't seem to work at all for Dashed FrameStyle, and in the
204         Thick case there are drawing errors at the corners (we probably
205         need to bind Rectangle instead of doing moveto/lineto's.)
206
207 2006-12-16  Andreia Gaita  <avidigal@novell.com>
208         
209         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
210         to send blocks of key messages. Send accumulates keys to send with Flush, 
211         while SendWait sends all keys immediately.
212                 
213         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
214         XplatUIX11.cs,  XplatUIX11-new.cs:
215         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
216         to Win32 SendInput.
217         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
218         
219         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
220         testing for ms.net on this class is very tricky, as the tests run too fast 
221         to allow the hook to release, essentially freezing the keyboard and the 
222         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
223         category :p
224
225 2006-12-16  Daniel Nauck  <dna@mono-project.de>
226
227         * Padding.cs: fixed serialization compability to MS ("_var" field names),
228                         added missing attributes.
229  
230 2006-12-15  Daniel Nauck  <dna@mono-project.de>
231
232         * ListViewGroup.cs: Added missing attributes.
233         * ListViewGroupCollection.cs: Added missing attributes.
234
235 2006-12-15  Daniel Nauck  <dna@mono-project.de>
236
237         * ListViewItem.cs: fixed ListViewSubItem text property.
238
239 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
240         
241         * Control.cs: Added missing 2.0 attributes
242         
243 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
244         
245         * MdiClient.cs: Added missing 2.0 attribute.
246         * MonthCalendar.cs: Added some missing 2.0 attributes 
247         and properties.
248         
249 2006-12-15  Daniel Nauck  <dna@mono-project.de>
250
251         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
252
253 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
254
255         * MainMenu.cs: Add the new 2.0 constructor to help out people
256         using the MainMenu in VS2005.
257
258 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
259         
260         * MdiChildContext.cs: Removed it, no longer used.
261         * MdiClient.cs: Added missing 2.0 attributes.
262         
263 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
264         
265         * InternalWindowManager.cs: Fix a NullRef with previous 
266         changes for toolwindows.
267         
268 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
269
270         * Control.cs: 
271         - Added AfterTopMostControl to allow for certain controls 
272         to always stay on top when normal controls are brought to 
273         front.
274         
275         * XplatUIWin32.cs: 
276         - (DrawInversibleRectangle): Get window rectangle from Win32 
277         in stead of from control, since Win32 doesn't calculate
278         screen coords correctly from control's Location if it 
279         have docked siblings.
280         
281         * MdiWindowManager.cs:
282         - Correct the control menu popup location when clicked on
283         the maximized form icon. (fixes #80223.1)
284         - Don't show moving rectangle if mouse hasn't moved from
285         the original clicked point.
286         - Removed FormGotFocus handler (not used).
287         - Calculate the control buttons location from the main
288         window's size and not client size (fixes #79770).
289         - Form is now closed when the form icon is double-clicked
290         (fixes #79775). 
291         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
292         
293         * InternalWindowManager.cs:
294         - Moved some MDI-only methods to MdiWindowManager.
295         - Removed unused properties and methods.
296         - Unified method naming for methods handling wm messages.
297         - Moved all message handling to seperate methods for
298         each message.
299         
300         * ThemeWin32Classic.cs:
301         - DrawManagedWindowDecorations now draws the title bar 
302         with a gradient brush.
303         - Add a CPDrawButtonInternal that allows us to specify
304         light, normal and dark colors for the buttons (control 
305         buttons for MDI children were drawn with the same light
306         color as the background, therefore loosing the 3D effect).
307         
308         * SizeGrip.cs:
309         - Add a CapturedControl property that is used to 
310         determine the control to resize (defaults to parent). 
311         Needed for MdiClient, since its SizeGrip's parent is
312         MdiClient, but the control to resize is the main form.
313         
314         * MdiClient.cs:
315         - Set SizeGrip's CapturedControl to the main form in order
316         to resize the main form and not the MdiClient.
317         - Override AfterTopMostControl to leave the scrollbars 
318         always on top.
319
320 2006-12-15  Daniel Nauck  <dna@mono-project.de>
321
322         * ListView.cs: fixed ListViewItemCollection AddRange and
323                         implemented ListViewItemCollection AddRange 2.0 support.
324
325 2006-12-15  Daniel Nauck  <dna@mono-project.de>
326
327         * ListViewGroup.cs: Add.
328         * ListViewGroupCollection.cs: Add
329         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
330         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
331                                 stub for ImageKey 2.0 support.
332
333 2006-12-14  Mike Kestner  <mkestner@novell.com>
334
335         * ListView.cs: add text padding to the autocalculation for columns
336         of width -2.  Fixes #80207.
337  
338 2006-12-14  Mike Kestner  <mkestner@novell.com>
339
340         * ListView.cs: add some index guarding for partial row navigation 
341         logic.  Fixes #80250.
342
343 2006-12-14  Mike Kestner  <mkestner@novell.com>
344
345         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
346         are added or inserted to the collection.  Fixes #81099.
347
348 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
349
350         * MenuAPI.cs: Closes menu when right click out side of popup
351         it fix problem in ContextMenu and MainMenu. Fixes #80252.
352
353 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
354
355         * ListViewItem.cs: Fix dumb error.
356
357         * ListView.cs: Add Find and ContainsKey methods in 
358         ListViewItemCollection, and also return true for IsReadOnly
359         and IsFixedSize (changes for 2.0). 
360
361 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
362
363         * Control.cs: Allow Region to be set to null.
364
365 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
366
367         * MdiWindowManager.cs: Remove unused (commented out) code.
368         * Form.cs: When the MdiChild is maximized, the form needs 
369         WM_NCMOUSELEAVE, so request it.
370         * InternalWindowManager.cs: 
371         - Added tooltips to control buttons.
372         - Removed duplicated control button handling code.
373         - Removed unused (commented out) code.
374         
375 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
376
377         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
378         was used because we must set cursor without trigger ChangeCursor event
379         and without change Cursor control property. Fixes #79963.
380
381 2006-12-12  Andreia Gaita  <avidigal@novell.com>
382         
383         * Control.cs: Check if Region setter value is null, and ignore
384
385 2006-12-12  Jackson Harper  <jackson@ximian.com>
386
387         * TextControl.cs: We were almost always drawing one more line then
388         needed, since the GetLineByPixel will return the last line found
389         at that pixel. In most cases though, we were invalidating up to
390         the junction between two lines.
391         - Improve debug code.
392
393 2006-12-12  Chris Toshok  <toshok@ximian.com>
394
395         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
396         and FillReversibleRectangle.
397
398         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
399         and FillReversibleRectangle.
400
401         * XplatUIWin32.cs: add stubs which do nothing for
402         DrawReversibleFrame, DrawReversibleLine, and
403         FillReversibleRectangle.
404
405         * XplatUIOSX.cs: add stubs which raise NIE for
406         DrawReversibleFrame, DrawReversibleLine, and
407         FillReversibleRectangle.
408
409         * XplatUIX11.cs: add working implementation for
410         DrawReversibleFrame, DrawReversibleLine, and
411         FillReversibleRectangle.
412         
413         * ControlPaint.cs: implement DrawReversibleFrame,
414         DrawReversibleLine, and FillReversibleRectangle, by calling into
415         the appropriate XplatUI method.
416
417 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
418
419         * Form.cs: Make MdiClient have the focus even if it's
420         not selectable, since it should receive WM_KEY* and WM_MOUSE 
421         messages. Fixes #79907.
422         
423 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
424
425         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
426         queried after the window is created.
427         
428         * XplatUIX11.cs: Added SendParentNotify to implement 
429         WM_PARENTNOTIFY logic. Fixes #79965.
430         
431         * Control.cs: Added MakeParam.
432         
433 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
434
435         * MdiClient.cs: Resume Layout before setting window
436         states (fixes #80201).
437
438 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
439
440         * MenuAPI.cs: Deselect a menu item after performing
441         the click (fixes #80197).
442
443 2006-12-11  Jackson Harper  <jackson@ximian.com>
444
445         * TextBoxBase.cs: We need to cap this value, since Maximum -
446         ViewPortHeight can be less than zero.
447         - Only do selection with the left mouse button.
448         * TextBox.cs: Don't tell the world that we have a context menu.
449         * Control.cs: New method so that we can control whether or not the
450         context menu is visible outside MWF.
451
452 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
453
454         * ToolBarButton.cs: Fix text positon. 
455
456 2006-12-11  Miguel de Icaza  <miguel@novell.com>
457
458         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
459
460         * Control.cs (DoubleBuffered): Add implementation.
461
462         * Application.cs (OpenForms): Add.
463
464 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
465
466         * Form.cs: Use opacity instead of Opactiy to determine if we need
467         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
468
469 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
470
471         * Control.cs: Fix NRE if Control.Site was set to null.
472
473 2006-12-11  Chris Toshok  <toshok@ximian.com>
474
475         * Control.cs: ControlCollection.Remove should return if the arg is
476         null, and ControlCollection.SetChildIndex should raise a ANE.
477
478 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
479
480         * Control.cs: Verify value set for Dock property. Code formatting
481         updates.
482
483 2006-12-11  Jackson Harper  <jackson@ximian.com>
484
485         * TextControl.cs: Draw the caret and the selection when a flag is
486         set on the owner.
487         * TextBoxBase.cs: We want to draw the caret and the selection for
488         TextBox but not for TextBoxBase.
489         - If the window is resized and scrolling is no longer needed (the
490         whole doc is visible) set the scroll position to zero.
491         - The default SelectWord (the one TextBox uses) should move the
492         caret to the end of the word.
493         - SelectAll moves the caret to the end of the selection.
494         * TextBox.cs: We don't selectall on focus, we just do it when the
495         control is created.
496         
497 2006-12-11  Mike Kestner  <mkestner@novell.com>
498
499         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
500
501 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
502
503         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
504         2.0 support.
505         * ListViewItem.cs: Add Name 2.0 property.
506
507 2006-12-11  Andreia Gaita  <avidigal@novell.com>
508
509         * TabControl.cs: Set visibility on selected or default tab 
510         when tabcontrol handle is created, so that it's contents
511         actually show up (duh). Fixes #80193
512         Don't redraw the control if there is no handle created, as
513         the selected index might be completely invalid. Added some tests
514         to check for this.
515
516 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
517
518         * ToolBar.cs: Uses maximun width and height of all buttons as 
519         button rectangle when ButtonSize specified, it looks strange but
520         is what happens in Win32. Fixes #80189.
521
522 2006-12-11  Jackson Harper  <jackson@ximian.com>
523
524         * TextControl.cs: Need to track undo levels ourself, since
525         compound actions will mess them up.
526
527 2006-12-10  Andreia Gaita  <avidigal@novell.com>
528
529         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
530         SelectedIndex value is changed (even if it's not valid).
531         Reset SelectedIndex to 0 when the handle is created and if
532         the current index is invalid.
533         Fixes SelectdeIndex unit tests and #80128
534
535 2006-12-08  Chris Toshok  <toshok@ximian.com>
536
537         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
538         calls EndEdit, it needs to be called before we set current_cell to
539         its new value.  Otherwise, we end up committing the value in the
540         textbox to the new cell as well.  Fixes bug #80160.
541
542 2006-12-08  Chris Toshok  <toshok@ximian.com>
543
544         * Form.cs (set_CancelButton): if the button's DialogResult is
545         None, set it to Cancel.  Fixes bug 80180.
546
547 2006-12-08  Jackson Harper  <jackson@ximian.com>
548
549         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
550         to watch ourselves when setting the canvas size and setting the
551         scrollbar values.
552
553 2006-12-08  Chris Toshok  <toshok@ximian.com>
554
555         * DataGrid.cs: comment out the two MakeTransparent calls for the
556         time being so people using trunk (and not 1.2.2) on windows can
557         actually use the datagrid.  This deals with bug #80151.
558
559 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
560
561         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
562         Graphics.DrawImage (image, int, int, int, int) overload instead
563         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
564         the dpi difference and was blurring images it drew.
565         [Fixes bug #79960]
566
567 2006-12-08  Chris Toshok  <toshok@ximian.com>
568
569         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
570         rowcnt is 0 (such as with an empty datasource), and make sure we
571         initialize not_usedarea.Y to cells.Y, so we don't draw over the
572         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
573
574 2006-12-08  Chris Toshok  <toshok@ximian.com>
575
576         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
577         grid.
578
579 2006-12-08  Chris Toshok  <toshok@ximian.com>
580
581         [ Fixes bug #80167 ]
582         
583         * ThemeWin32Classic.cs: don't draw the image if the button's flat
584         style is FlatStyle.System.
585
586         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
587         ButtonBase.flat_style private, and switch uses of it to the public
588         property.
589         
590 2006-12-08  Chris Toshok  <toshok@ximian.com>
591
592         [ Fixes bug #80121 ]
593         
594         * ThemeWin32Classic.cs: center the caption text in the datagrid
595         when we draw it.
596
597         * DataGrid.cs: lessen the amount we add to the caption height from
598         6 to 2.  6 was making it huge.
599
600 2006-12-08  Andreia Gaita  <avidigal@novell.com>
601
602         * UpDownBase: Handle MouseWheel call directly instead of capturing
603         the inner textbox's OnMouseWheel. Fixes #80166
604
605 2006-12-08  Jackson Harper  <jackson@ximian.com>
606
607         * TextControl.cs: We need to invalidate the textbox when we empty
608         it (how had this not been discovered before?)
609
610 2006-12-08  Jackson Harper  <jackson@ximian.com>
611
612         * TextBoxBase.cs: Reworked the mouse down code so I could get it
613         to behave like MS, we now ignore the eventargs.Click and just
614         track state ourself, which we were already doing anyways.
615         - Constrain the double click handler to the double click size.
616         
617 2006-12-08  Chris Toshok  <toshok@ximian.com>
618
619         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
620         direction if that scrollbar isn't shown.  fixes bug #80158.
621
622 2006-12-08  Andreia Gaita  <avidigal@novell.com>
623
624         * NumericUpDown.cs: Update value on getter. Fixes #79950
625
626 2006-12-08  Chris Toshok  <toshok@ximian.com>
627
628         * MenuItem.cs: add back in the event cloning code.  I didn't know
629         how to do it in the face of the EventHandlerList work i'd done
630         last week.  Fixes bug #80183.
631
632 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
633
634         * Control.cs: Add an invalidate to the BackgroundImage setter.
635         [Fixes 80184]
636
637 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
638
639         * ToolStrip*: Add some small properties reported by MoMA, fix event
640         firing and default properties based off of unit tests, and add some
641         attributes based off of the class status page.
642
643 2006-12-07  Jackson Harper  <jackson@ximian.com>
644
645         * TextBoxBase.cs: Take HideSelection into account when determining
646         whether or not to show the selection.
647         * RichTextBox.cs: After inserting the RTF into the document move
648         the cursor to the beginning of the document.
649
650 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
651
652         * Control.cs: Remove static ArrayList "controls" which maintained
653         a reference to every control created.
654         * Application.cs: Create a static FormCollection to maintain a reference
655         to every form created.  Use it in places that formerly enumerated through
656         the controls one looking for forms.
657         * Form.cs: Add and remove self from above FormCollection.
658
659 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
660
661         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
662           not libgdk (though it makes me wonder why I didn't have any
663           problems)
664
665 2006-12-07  Chris Toshok  <toshok@ximian.com>
666
667         [ you had to know this was coming after that last commit...]
668         
669         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
670         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
671         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
672         XCopyArea).
673
674 2006-12-07  Chris Toshok  <toshok@ximian.com>
675
676         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
677         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
678         all the behavior we need for double buffering.
679
680         * XplatUIDriver.cs: implement the 3 double buffer methods using a
681         client side Bitmap, just like the old Control-based double buffer
682         code did.  The methods are virtual, so each XplatUI driver
683         subclass can replace the implementation to use a faster, platform
684         specific approach.
685
686         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
687         double buffer code, and clean things up a bit in the process.
688
689 2006-12-06  Chris Toshok  <toshok@ximian.com>
690
691         * Control.cs: reindent WndProc.
692
693 2006-12-06  Chris Toshok  <toshok@ximian.com>
694
695         [ I wanna be like BenM when I grow up ]
696         
697         * Hwnd.cs: create a single static Graphics object on the static
698         Bitmap we create.  use this for our text measurements.
699
700         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
701         This was causing us to allocate a backbuffer for every control,
702         even when it wasn't flagged as double buffered.  Instead use the
703         single graphics instance.  This might have implications for
704         multithreaded applications.  If we run into problems we can switch
705         to creating 1 Graphics per control, on the static Hwnd bitmap.
706
707         this change nets us a 7M savings in private dirty mappings when
708         running FormsTest.exe.
709
710 2006-12-06  Chris Toshok  <toshok@ximian.com>
711
712         * ListView.cs: the BackgroundImage override is just to set
713         attributes.  chain up to base.BackgroundImage.
714
715         * RichTextBox.cs: same.
716
717         * ToolBar.cs: same, but we need to also redraw the toolbar when it
718         changes, so instead a handler for BackgroundImageChanged.
719         
720         * Control.cs: make background_image private.
721
722 2006-12-06  Chris Toshok  <toshok@ximian.com>
723
724         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
725         sure we even need this assignment, but roll with it for now.
726
727         * Control.cs: make the cursor field private.
728
729 2006-12-06  Chris Toshok  <toshok@ximian.com>
730
731         * Form.cs: we don't need to explicitly set ImeMode to
732         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
733         behavior in the face of ImeMode.Inherit.
734
735         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
736         change the ctor's assignment to use ImeMode instead of ime_mode.
737
738         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
739         ImeModeInherit.  Only check for the parent's imemode (and return
740         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
741         This fixes the button unit test, which sets both ImeMode and
742         DefaultImeMode to ImeMode.Disable.
743
744         also make the ime_mode field private.
745
746 2006-12-06  Chris Toshok  <toshok@ximian.com>
747
748         * Control.cs: make control_style private.
749
750         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
751         setting the styles to true, then setting them to false instead of
752         reverting to their previous values.
753
754         also, call SetStyle on the scrollbars instead of using
755         control_style directly.
756
757 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
758
759         * FormCollection.cs: Implement. [2.0]
760
761 2006-12-06  Chris Toshok  <toshok@ximian.com>
762
763         * Control.cs: make tab_stop private.
764
765         * Label.cs: set TabStop, not tab_stop.  reformat some event
766         add/remove methods to make them more compact.
767
768 2006-12-06  Chris Toshok  <toshok@ximian.com>
769
770         * RadioButton.cs: fix TabStop handling.
771
772 2006-12-06  Chris Toshok  <toshok@ximian.com>
773
774         * TextBox.cs: remove the explicit assignments to has_focus.
775         Control does that.
776
777         * ButtonBase.cs: remove the assignment to has_focus.  Control will
778         manage that.
779         
780 2006-12-06  Chris Toshok  <toshok@ximian.com>
781
782         * ButtonBase.cs: remove all uses of is_enabled from this code.
783         it's always true when any of the code containing the checks is
784         executed.
785
786 2006-12-06  Chris Toshok  <toshok@ximian.com>
787
788         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
789         with different semantics (some are present in both 1.1 and 2.0
790         profiles) so that we match MS's behavior in our unit tests.
791
792 2006-12-06  Jackson Harper  <jackson@ximian.com>
793
794         * TextControl.cs: Make this operation undoable.
795         * TextBoxBase.cs: Factor the border width into the preferred
796         height.
797         - implement Modified as per the spec.
798
799 2006-12-06  Chris Toshok  <toshok@ximian.com>
800
801         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
802
803 2006-12-06  Chris Toshok  <toshok@ximian.com>
804
805         * Control.cs: make right_to_left and context_menu fields private.
806
807 2006-12-06  Chris Toshok  <toshok@ximian.com>
808
809         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
810         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
811         Control.child_controls private.  switch all uses over to
812         Control.Controls.
813
814 2006-12-06  Chris Toshok  <toshok@ximian.com>
815
816         * System.Windows.Forms/GroupBox.cs,
817         System.Windows.Forms/AccessibleObject.cs,
818         System.Windows.Forms/ErrorProvider.cs,
819         System.Windows.Forms/Control.cs,
820         System.Windows.Forms/UpDownBase.cs,
821         System.Windows.Forms/ScrollBar.cs,
822         System.Windows.Forms/DateTimePicker.cs,
823         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
824         System.Windows.Forms/ToolTip.cs,
825         System.Windows.Forms/RadioButton.cs,
826         System.Windows.Forms/LinkLabel.cs,
827         System.Windows.Forms/Splitter.cs,
828         System.Windows.Forms/TextBoxBase.cs,
829         System.Windows.Forms/ToolStripTextBox.cs,
830         System.Windows.Forms/ContainerControl.cs,
831         System.Windows.Forms/ThemeWin32Classic.cs,
832         System.Windows.Forms/SizeGrip.cs,
833         System.Windows.Forms/ToolStripDropDown.cs,
834         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
835         private.  switch all uses over to Control.Parent.
836
837 2006-12-06  Chris Toshok  <toshok@ximian.com>
838
839         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
840         Control does this before calling emitting these events.
841
842         * TabControl.cs: same.
843
844         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
845         Control.client_rect.
846
847         * ButtonBase.cs: use the ClientSize property instead of the
848         client_size field.
849
850         * ScrollableControl.cs: same.
851
852         * Control.cs: another pass at making properties private.  also,
853         move the initialization of tab_stop to the ctor.
854
855 2006-12-05  Andreia Gaita <avidigal@novell.com>
856
857         * TabControl.cs: Let the selected index be set freely if the 
858         control handle is not yet created.
859
860 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
861
862         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
863         internal until I can rewrite DefaultLayout.
864         * ToolStrip.cs: Fix build error and some general cleaning.
865         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
866         Fix build errors caused by making some of Control's fields private.
867
868 2006-12-05  Jackson Harper  <jackson@ximian.com>
869
870         * TextControl.cs: Redo Insert a little so that it use IndexOf
871         instead of Split, this prevents it from messing up on things like
872         \n\n\n. Also more effecient since the split array doesn't need to
873         be created.
874         * TextBoxBase.cs: AppendText doesnt handle multiline and non
875         multiline text differently, this is the first of many fixes that
876         will make multiline/non-multiline the same thing as far as the
877         TextBoxBase is concerned.
878         - Don't split the text and insert lines, this can lose some line
879         endings (like is the last line a soft or hard break). Instead use
880         the new Insert.
881         - Fix an off by one when combining all the lines in the Text
882         getter.
883         - Remove separate multiline handling from the Text getter/setter.
884
885 2006-12-05  Chris Toshok  <toshok@ximian.com>
886
887         * ButtonBase.cs: a few changes:
888
889         - don't reinitialize internal Control fields in the ctor when they
890         have the same values as Control sets them.
891
892         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
893         this before calling those methods.
894
895         - we don't need to call Refresh for anything.  use Invalidate
896         instead.
897
898         - OnEnabledChanged doesn't need to redraw at all - Control.cs
899         calls Refresh in its OnEnabledChanged.
900         
901         - several of the events we were registered for in the ctor to
902         redraw ourselves already include calls to Invalidate in the
903         property setters that raise the events.  remove the extra
904         invalidation.
905
906         - reformat a switch statement that was 83274658 columns wide.
907         
908 2006-12-05  Mike Kestner  <mkestner@novell.com>
909
910         * ComboBox.cs: fix a unit test regression from a TextBox
911         SelectionLength return of -1 when there's no selection.  
912
913 2006-12-05  Chris Toshok  <toshok@ximian.com>
914
915         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
916         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
917         cleaning up some of the internal Control fields being used by
918         subclasses.
919
920 2006-12-05  Mike Kestner  <mkestner@novell.com>
921
922         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
923         listbox after AddImplicit calls since it defaults to hidden. Add a 
924         hack to preserve requested heights across DropDownStyle changes.
925
926 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
927
928         * PropertyGrid.cs: Hide FindFirstItem method from public API.
929
930 2006-12-05  Chris Toshok  <toshok@ximian.com>
931
932         * DataGridView.cs: fix compiler warnings.
933
934         * PrintControllerWithStatusDialog.cs: same.
935
936         * ToolBar.cs: same.
937
938         * FolderBrowserDialog.cs: same.
939
940         * Splitter.cs: same.
941
942         * DataGridViewComboBoxCell.cs: same.
943
944         * XplatUIWin32.cs: same.
945
946         * PictureBox.cs: same.
947
948         * Win32DnD.cs: same.
949
950         * PageSetupDialog.cs: same.
951
952         * FileDialog.cs: same.
953
954         * PrintDialog.cs: same.
955
956         * DataGridTextBoxColumn.cs: same.
957
958         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
959
960 2006-12-05  Chris Toshok  <toshok@ximian.com>
961
962         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
963         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
964         System.ComponentModel.EventHandlerList work.
965
966 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
967
968         * DrawTreeNodeEventArgs.cs: Added.
969
970 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
971         
972         * InternalWindowManager.cs: Remove an unused field.
973         
974 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
975
976         * InternalWindowManager.cs:
977         - Save the point where the title bar is clicked.
978         
979         * MdiWindowManager.cs:
980         - Only allow moving of the window as long as the 
981         clicked point on the title bar does not get out of
982         MdiClient's rectangle. Fixes #79982.
983         
984         * MdiClient.cs:
985         - Added Horizontal/VerticalScrollbarVisible.
986         - Simplified the scrollbar sizing algorithm.
987         - Cache the difference in scrolled value in
988         H/VBarValueChanged and move the calculation out
989         of the for loop.
990
991 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
992
993         * Control.cs: Make the Console.WriteLine in WndProc 
994         write more info.
995
996 2006-12-05  Chris Toshok  <toshok@ximian.com>
997
998         * ToolStripManager.cs, ToolStripButton.cs,
999         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
1000         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
1001         ToolStripSplitButton.cs, ToolStripSeparator.cs,
1002         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
1003         ToolStripProgressBar.cs, ToolStripContainer.cs,
1004         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
1005         to using System.ComponentModel.EventHandlerList.
1006
1007 2006-12-04  Chris Toshok  <toshok@ximian.com>
1008
1009         * LinkLabel.cs: fix up compiler warnings.
1010
1011         * TableLayoutSettings.cs: same.
1012
1013         * TreeView.cs: same.
1014
1015         * ToolBar.cs: same.
1016
1017         * TabControl.cs: same.
1018
1019         * RichTextBox.cs: same.
1020
1021         * ListViewItem.cs: same.
1022
1023         * PropertyGrid.cs: same.
1024
1025         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
1026
1027         * ToolTip.cs same.
1028
1029         * TextRenderer.cs: fix up compiler warnings.
1030
1031         * Label.cs: same.
1032
1033         * Form.cs: corcompare fixes.
1034
1035         * PictureBox.cs: fix up compiler warnings.
1036
1037         * ImageListStreamer.cs: same.
1038
1039         * TrackBar.cs: corcompare fix.
1040
1041         * Control.cs: fix up compiler warnings.
1042
1043         * SplitterPanel.cs: same.
1044
1045         * NumericTextBox.cs: same.
1046
1047         * ImageList.cs: same.
1048
1049         * StatusStrip.cs: same.
1050
1051         * ProgressBar.cs: corcompare fix.
1052
1053         * ToolStripButton.cs: fix up compiler warnings.
1054
1055         * ToolStripStatusLabel.cs: same.
1056
1057         * ToolStripSplitButton.cs: same.
1058
1059         * ToolStripSeparator.cs: same.
1060
1061         * ToolStripProgressBar.cs: same.
1062
1063         * ToolStripDropDownMenu.cs: same
1064
1065         * ToolStripDropDown.cs: same.
1066
1067         * ToolStripDropDownButton.cs: same.
1068
1069         * ToolStrip.cs: same.
1070
1071         * ToolStripControlHost.cs: same.
1072
1073         * ToolStripContentPanel.cs: same.
1074
1075         * ToolStripDropDown.cs: same.
1076
1077         * ToolStripContainer.cs: same.
1078
1079         * ToolStripPanel.cs: same, and add "new" where we need it to work
1080         with the new ArrangedElementCollection.
1081
1082         * ToolStripItemCollection.cs: add "new" where we need it to work
1083         with the new ArrangedElementCollection.
1084
1085 2006-12-04  Andreia Gaita <avidigal@novell.com>
1086
1087         * TabControl.cs: Fix default tab selection to after TabControl
1088         gets focus and not before. Fixes #80128
1089
1090 2006-12-04  Chris Toshok  <toshok@ximian.com>
1091
1092         * DataGridTableStyle.cs: remove the gross calling of
1093         datagrid.Refresh from here.  It's a broken idea and it doesn't
1094         work anyway.
1095
1096         * DataGrid.cs: instead, just register/unregister from the
1097         DataGridTableStyle events in CurrentTableStyle.  we play it
1098         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
1099         even though some would most likely not require it.  Fixes bug
1100         #80115 (and one portion of #80117 as a side effect).
1101
1102 2006-12-04  Chris Toshok  <toshok@ximian.com>
1103
1104         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
1105         so the textbox (if any) goes away.  Fixes bug #80117.
1106
1107 2006-12-04  Chris Toshok  <toshok@ximian.com>
1108
1109         * DataGridColumnStyle.cs: set the column's readonly property
1110         initially based on the property descriptor's IsReadOnly.  Fixes
1111         bug #80044.
1112
1113 2006-12-04  Chris Toshok  <toshok@ximian.com>
1114
1115         * ComboBox.cs: wrap the dropdown style changing work in
1116         SuspendLayout/ResumeLayout.  Fixes bug #79968.
1117
1118 2006-12-04  Jackson Harper  <jackson@ximian.com>
1119
1120         * TextBoxBase.cs: Fix off by one, since these are one-based.
1121         * TextBox.cs: Select all the text when we get focus.  The TextBox
1122         does this but the RTB does not.
1123
1124 2006-12-04  Chris Toshok  <toshok@ximian.com>
1125
1126         * DataGridTextBoxColumn.cs: remove some spew.
1127
1128         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
1129         but some part of me is saying "it shouldn't be here.."  At any
1130         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
1131         setting the value.
1132
1133 2006-12-04  Chris Toshok  <toshok@ximian.com>
1134
1135         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
1136         to reassign the propertydescriptor.
1137
1138 2006-12-04  Jackson Harper  <jackson@ximian.com>
1139
1140         * TextBoxBase.cs:
1141         * TextControl.cs: Remove some unused variables.  Maybe this will
1142         patch things up between mike and I.
1143         - don't split lines less then one char wide, if the viewport is
1144         that small text won't be visible anyways.
1145         
1146 2006-12-04  Jackson Harper  <jackson@ximian.com>
1147
1148         * TextBoxBase.cs: Default selection length is -1, need to do some
1149         more testing on windows to see when this is used for the property.
1150         - Redid the Lines [] property to that we properly remove soft line
1151         breaks
1152         - added support for preserving carriage returns
1153         -  CanUndo is not a variable like 'is undo enabled' it just returns
1154         true if there is undo operations available.
1155         - AppendText doesn't need to grab the last tag itself anymore,
1156         this happens automatically when we move the cursor.
1157         * TextControl.cs: Add CompoundActions to the undo class. This
1158         allows combining the other operations into one big option.  ie a
1159         paste will combine { delete old, insert new, move cursor }
1160         - Add InsertString undo operation
1161         - New method for deleting multiline text
1162         - Add carriage returns to lines. So we can preserve carriage
1163         returns when text is 'roundtripped'
1164
1165 2006-12-04  Chris Toshok  <toshok@ximian.com>
1166
1167         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
1168         minimum 0.  Fixes the scrollbar exception in bug #80136.
1169
1170 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1171
1172         * MdiClient.cs: 
1173         * MdiWindowManager: Removed unused fields and methods.
1174         
1175 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1176         
1177         * StatusBar.cs: Update all panels when a AutoSize=Contents
1178         panel needs updating.
1179         
1180         * StatusBarPanel.cs: Remove twidth and only use initialize.
1181         Fixes #80031.
1182                 
1183 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1184
1185         * Form.cs: When a form's MdiParent is set add it directly
1186         on top of the z-order in stead of relying on MdiClient's
1187         ActivateChild to do it. Fixes #80135.
1188         
1189         * MdiClient.cs: 
1190         - Remove original_order, mdi_child_list is already doing
1191         the same thing.
1192         - Create mdi_child_list on construction in
1193         stead of first use (avoids a few null checks).
1194
1195         * MenuItem.cs: Use an already existing list of mdi children
1196         to get the correct order of children and remove the other
1197         redundant list.
1198
1199 2006-12-04  Chris Toshok  <toshok@ximian.com>
1200
1201         * PropertyGridView.cs: cached_splitter_location is only used in
1202         !DOUBLEBUFFER code.
1203
1204         * PropertyGrid.cs: implement the ComComponentNameChanged event
1205         using Events, hoping that would fix the warning.  Looks like a
1206         compiler bug instead (#80144).
1207
1208         * PropertyManager.cs: remove unused method.
1209
1210 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
1211
1212         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
1213         include parentesis to fix expression evaluation. Fixes #79634.
1214
1215 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
1216         
1217         * MenuAPI.cs:
1218         - Changes to fix behavior in Menu control, some reported in #80097
1219         and other detected during behavior refactory like a select event
1220         problems.
1221         - Remove unneded "if's" conditions.
1222         - Created an internal to flag when popup is active in control, we need 
1223         it because in .NET you can have menu active but without popup active
1224         when you active menu using popup without visible items.
1225         - Mimic win32 behavior for Select and Popup events.  
1226         - Dont open popup menu when you dont have visible subitems.
1227         - Do nothing when click on disabled menu item.
1228         - Some small changes to follow the coding style guidelines.
1229         - Unselect menu only when another control gives focus. Fixes #80097.
1230         - Remove unused code.
1231         
1232         * MenuItem.cs: internal VisibleItems method to check if menu
1233         theres visible subitems, it will be usefull to fix some 
1234         behavior in Menu control.
1235         
1236 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1237         
1238         * Timer.cs: Tag property for 2.0 profile.
1239         
1240 2006-12-01  Chris Toshok  <toshok@ximian.com>
1241
1242         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
1243         
1244         * Win32DnD.cs: comment out some unused fields.
1245
1246         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
1247         some unused properties/methods.
1248
1249         * XplatUIX11.cs: fix MousePosition so we override the base class's
1250         property instead of conflicting with it.
1251
1252         * PictureBox.cs: comment out some unused fields
1253
1254         * OSXStructs.cs: make some struct fields public.
1255
1256         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
1257         MousePosition so we override the base class's property instead of
1258         conflicting with it.
1259
1260         * X11Dnd.cs: comment out some unused fields
1261
1262         * X11DesktopColors.cs: fix some struct field visibility to quiet
1263         the compiler.
1264
1265         * X11Dnd.cs: remove some debug code.
1266
1267         * ThemeClearlooks.cs: comment out unused field.
1268
1269         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
1270
1271         * ThemeGtk.cs: comment out some unused pinvokes.
1272
1273         * Timer.cs: remove some unused fields.
1274
1275         * ThemeClearlooks.cs: comment out unused field.
1276
1277         * UpDownBase.cs: comment out unused field.
1278
1279         * DataObject.cs: comment out unused field.
1280
1281         * DataGridBoolColumn.cs: reomve unused field.
1282
1283         * DataGrid.cs: remove unused field.
1284
1285         * Cursor.cs: remove old ToBitmap code.
1286
1287         * ControlPaint.cs: remove unused method.
1288
1289         * ScrollBar.cs: remove unused fields.
1290
1291         * ComboBox.cs: remove unused field, and chain up to
1292         AccessibleObject ctor.
1293
1294         * ListBox.cs: remove unused field.
1295
1296         * ButtonBase.cs: wrap a couple fields in NET_2_0.
1297
1298         * GridEntry.cs: remove unused fields.
1299
1300         * Binding.cs: remove unused fields.
1301
1302         * AxHost.cs: remove unused method.
1303
1304         * ContainerControl.cs: remove unused field.
1305
1306         * ScrollableControl.cs: remove unused fields.
1307
1308 2006-12-01  Chris Toshok  <toshok@ximian.com>
1309
1310         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
1311         the Where/WhereString stuff.  it's easy enough to CWL
1312         Environment.StackTrace.
1313
1314         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
1315         unused private fields.
1316
1317 2006-12-01  Jackson Harper  <jackson@ximian.com>
1318
1319         * TextControl.cs: Do not update the view while inserting multiline
1320         text. If we update the view we might wrap lines, before entering
1321         the new lines, which causes the new line insertion calculations to
1322         be totally fubared.
1323         - Remove an old TODO
1324         - Make debug output a little nicer
1325         
1326 2006-12-01  Chris Toshok  <toshok@ximian.com>
1327
1328         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
1329
1330 2006-12-01  Chris Toshok  <toshok@ximian.com>
1331
1332         [ fix the majority of the CS0108 warnings we've been suppressing ]
1333         
1334         * TreeView.cs: mark BackgroundImageChanged as 'new'.
1335
1336         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
1337         to "LayoutToolBar" to quiet mcs.
1338         
1339         * TabControl.cs: mark our ControlCollection class as 'new'.
1340
1341         * TextBoxBase.cs: mark some events as 'new'.
1342
1343         * Splitter.cs: TabStop is 'new'.
1344
1345         * ControlBindingsCollection.cs: mark a few methods as new since
1346         they change the visibility from protected to public.
1347
1348         * RadioButton.cs: DoubleClick -> base class, and remove unused
1349         HaveDoubleClick.
1350
1351         * MonthCalendar.cs: ImeMode property -> base class, and mark many
1352         events as new.
1353
1354         * NumericUpDown.cs: TextChanged -> base class.
1355
1356         * CheckedListBox.cs: mark our ObjectCollection class as new to
1357         quiet mcs.
1358
1359         * FolderBrowserDialog.cs: make HelpRequest event new and have it
1360         muck with the base class.
1361
1362         * StatusBar.cs: fix some mcs warnings about Update being the same
1363         name as a base class method.
1364
1365         * RichTextBox.cs: mark some events as new, and make them do things
1366         to the base class impl.
1367
1368         * UserControl.cs: mark TextChanged as new, and have it manipulate
1369         base.TextChanged.
1370
1371         * UpDownBase.cs: mark some things new.
1372
1373         * CheckBox.cs: mark DoubleClick "new", and add some text about
1374         what we need to look at.
1375
1376         * Panel.cs: make the events "new", and manipulate the base
1377         version.  these are just here for attributes.
1378
1379         * AccessibleObject.cs: make owner private.
1380
1381         * Control.cs: deal with AccessibleObject.owner being private.
1382         cache our own copy if we need it.
1383
1384         * Button.cs: add "new" to the DoubleClickEvent.
1385
1386         * ListBox.cs: no need to track our own has_focus here.  let
1387         Control.has_focus do it for us.  Also some other work to clear up
1388         warnings about not overriding base class methods of the same name.
1389         
1390         * ComboBox.cs: clear up some warnings about not override base
1391         class methods of the same name.
1392
1393 2006-12-01  Chris Toshok  <toshok@ximian.com>
1394
1395         * Form.cs: flag a few things as "new" to quiet some of the mcs
1396         warnings.
1397
1398         * AxHost.cs: same.
1399
1400         * PrintPreviewDialog.cs: same.
1401
1402         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
1403         now DGV isn't so horrible on the class status page.  also, move
1404         all events to using System.ComponentModel.EventHandlerList.  my
1405         wrists hurt.
1406
1407 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1408
1409         * MdiWindowManager.cs:
1410         - Set form to active mdi child if shown,
1411         and update the active mdi child to the next 
1412         remaining child in the z-order if the form is hidden.
1413
1414         * Form.cs: 
1415         - Track if the form has been visible and if its 
1416         visibility is beeing changed, so that the MdiClient
1417         can properly decide the ActiveMdiChild. The MdiClient 
1418         cannot track this since the form can change visibility 
1419         before MdiClient is created.
1420
1421         * MdiClient.cs:
1422         - Don't activate anything of the parent form is changing
1423         its visibility.
1424         - Rework ActiveMdiChild to only return visible mdi 
1425         children and take into account several other corner 
1426         cases.
1427
1428 2006-12-01  Chris Toshok  <toshok@ximian.com>
1429
1430         * IBindableComponent.cs: new 2.0 interface.
1431
1432 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
1433
1434         * DataGrid.cs: Font for caption area is bold by default.
1435
1436 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
1437
1438         * Menu.cs: Tag property for 2.0.
1439         
1440 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1441
1442         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
1443         
1444 2006-12-01  Chris Toshok  <toshok@ximian.com>
1445
1446         * TreeView.cs: doh, the Begin* events should be
1447         TreeViewCancelEventHandler.
1448
1449 2006-12-01  Chris Toshok  <toshok@ximian.com>
1450
1451         * Form.cs: Form.ControlCollection already stores off the
1452         form_owner field.  don't access the base class's internal "owner"
1453         field.
1454
1455         * Control.cs: make all the fields in Control.ControlCollection
1456         private.  there's no need for any internal fields here.
1457
1458 2006-12-01  Chris Toshok  <toshok@ximian.com>
1459
1460         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
1461         OnHandleCreated.  Fixes bug #80109.
1462
1463 2006-12-01  Chris Toshok  <toshok@ximian.com>
1464
1465         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
1466         SplitContainer.cs, Control.cs, StatusStrip.cs,
1467         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
1468         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
1469         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
1470         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
1471         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
1472         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
1473         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
1474         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
1475         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
1476         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
1477
1478         do most of the work to convert our code over to use
1479         System.ComponentModel.Component.Events for
1480         adding/removing/dispatching events.
1481
1482
1483 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1484
1485         * DataGridView.cs: Fix an ArgumentNullException reported 
1486         twice today in IRC.
1487
1488 2006-11-30  Mike Kestner  <mkestner@novell.com>
1489
1490         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
1491         grabbed listbox.  Fixes #80036 and #80101.
1492
1493 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1494
1495         * Message.cs: Changed ToString() to match MS.
1496         
1497 2006-11-30  Jackson Harper  <jackson@ximian.com>
1498
1499         * TextBoxBase.cs: You can still change the selected text on a read
1500         only textbox.
1501         * TextControl.cs: Lower magic number for wrap calculations. This
1502         lets text get closer to the right (far) edge.
1503
1504 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1505
1506         * Control.cs: Tweak 2.0 layout properties.
1507         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
1508         * TextRenderer.cs: Add a new overload.
1509         * ToolStrip*: Huge amount of changes and new features.
1510
1511 2006-11-30  Mike Kestner  <mkestner@novell.com>
1512
1513         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
1514         scroll range correct.  Fixes #79994.
1515
1516 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1517
1518         * MdiWindowManager.cs: Update main form's text when
1519         a form is closed. (fixes #80038)
1520         
1521 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
1522
1523         * ToolBar.cs:
1524         - Fix an regression in ButtonSize.
1525         - Get ImeMode default value change to "Disable".
1526         - Get ShowTooltips default value change to true, default value is 
1527         "false" but after make a test in .NET we get "true" result as default.
1528         
1529 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
1530
1531         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
1532
1533 2006-11-29  Chris Toshok  <toshok@ximian.com>
1534
1535         * XplatUIWin32.cs (GetWindowTransparency): check return value of
1536         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
1537         SetWindowTransparency hasn't been called.
1538
1539 2006-11-29  Chris Toshok  <toshok@ximian.com>
1540
1541         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
1542         if it's supported.
1543         (set_AllowTransparency): reorder things a little so that the
1544         WS_EX_LAYERED style is removed properly.
1545
1546 2006-11-29  Chris Toshok  <toshok@ximian.com>
1547
1548         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
1549         
1550         * Form.cs: only call the XplatUI transparency method (get/set) if
1551         SupportsTransparency says it's supported. Otherwise fallback to
1552         doing nothing (in the set case) or returning the instance field we
1553         cache (in the get case).
1554
1555         * XplatUIStructs.cs: add TransparencySupport flag enum.
1556         
1557         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
1558         change to SupportsTransparency.
1559
1560         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
1561         TransparencySupport.None from SupportsTransparency.
1562
1563         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
1564         TransparencySupport.Set from SupportsTransparency.
1565
1566         * XplatUIWin32.cs: implement GetWindowTransparency calling
1567         GetLayeredWindowAttributes, and implement SupportsTransparency by
1568         checking whether or not both
1569         GetWindowTransparency/SetWindowTransparency are available
1570         entrypoints.  We need to do this since SetWindowTransparency is
1571         available as of win2k, but GetWindowTransparency requires winxp.
1572         yay win32 api.
1573
1574         * XplatUI.cs: Add GetWindowTransparency, and change
1575         SupportsTransparency to allow for either/both Get/Set.
1576
1577 2006-11-29  Chris Toshok  <toshok@ximian.com>
1578
1579         * DataGrid.cs: keep from going into an infinite loop redrawing a
1580         datagrid that has no datasource.  Fixes bug #80033.
1581
1582 2006-11-29  Chris Toshok  <toshok@ximian.com>
1583
1584         * MenuItem.cs: fix the NRE when we assign text (and therefore call
1585         Invalidate) before the mainmenu has been assigned to a control.
1586
1587 2006-11-29  Chris Toshok  <toshok@ximian.com>
1588
1589         * DataGrid.cs: detect when we should be double the double click
1590         row/column autosize stuff, although that codepath has yet to be
1591         written.  part of the work for bug #79891.
1592
1593 2006-11-29  Chris Toshok  <toshok@ximian.com>
1594
1595         * Binding.cs (SetControl): fix unit test.
1596
1597 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1598
1599         * PageSetupDialog.cs: Validate the margins and set them in
1600         PageSettings. 
1601         * NumericTextBox.cs: New class to mimic the behavior of the
1602         textboxes used in the printing dialogs.
1603
1604 2006-11-29  Andreia Gaita  <avidigal@novell.com>
1605         
1606         * Form.cs: Revert previous change (remove call UpdateBounds
1607         from form constructor), because it messes with the handle creation
1608         order, and that one needs lots and lots of love.
1609         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
1610         for valid printer and throw InvalidPrinterException if document
1611         is set but printer not valid), adding a MonoTODO. Once 
1612         handle creation is done properly, we can put this back in.
1613
1614 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1615
1616         * MenuItem.cs: Create a invalidate method for menu item, to be
1617         calling from set text, it make text changes to imadiate update
1618         on screen. Fixes #80013. 
1619         
1620 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1621
1622         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
1623         fixes bug #80070 and some other problem on toolbar buttons
1624         layout.
1625
1626 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1627
1628         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
1629         with dotted brush.      Fixes #79564
1630         
1631 2006-11-28  Andreia Gaita  <avidigal@novell.com>
1632
1633         * Form.cs: Removed call to UpdateBounds on Form
1634         constructor, it was causing a call to CreateHandle
1635         before it was supposed to.
1636         * PrintControllerWithStatusDialog: Applied patch
1637         by Chris Toshok to hide controller when there are
1638         no printers available.
1639         PrintDialog.cs: initialize printer settings to 
1640         null - correct DefaultValues test #5
1641         * PrintPreviewControl.cs: Move PrintController
1642         initialization to GeneratePreview
1643         * PrintPreviewDialog.cs: 
1644         - Remove Preview generation     from Document_set(). It is 
1645         called on OnPaint
1646         - Throw InvalidPrinterException on CreateHandle if
1647         a Document is set but there are no printers or 
1648         printer is not valid.
1649         * ThemeWin32Classic: don't paint PrintPreviewControl
1650         if there is nothing to paint    
1651
1652 2006-11-28  Miguel de Icaza  <miguel@novell.com>
1653
1654         * Form.cs: Add another popular method.
1655
1656         * TabPage.cs: ditto.
1657
1658 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1659
1660         * MenuItem.cs: Fixed a warning.
1661         * InternalWindowManager: Fixed a warning.
1662
1663 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1664
1665         * MenuItem.cs:
1666         - When cloning a menu also clone MdiList and clone the 
1667           window menu items properly (as the forms and menuitems
1668           are kept in an internal hashtable, these need updating 
1669           as well)
1670         - Rewrote the window menu code, menu items are added in the
1671           order the forms were added to their parent, and they are
1672           updated every time the window menu is shown (before the
1673           list was only generated once, in the current order of the
1674           forms, and would never be updated). A checkmark is shown
1675           next to the item corresponding to the active mdi child.
1676
1677 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1678
1679         * XplatUIStructs.cs: 
1680         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
1681         
1682         * XplatUIWin32.cs: 
1683         - Added TME_NONCLIENT to TMEFlags.
1684         - Handles WM_NCMOUSEMOVE in GetMessage to 
1685           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
1686
1687         * MdiWindowManager:
1688         - Now merges mdi child menu to parent menu when maximized.
1689         - Recalculate NC areas of both mdi child and mdi parent. 
1690           Fixes #79757 (4).
1691           on window state and size changes.Fixes #79844 (3).
1692         - Handle WM_NCCALCSIZE to properly calculate borders.
1693
1694         * Form.cs:
1695         - Add/remove to the mdi containers list of mdi children 
1696           in the order they are added.
1697         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
1698           to the maximized mdi child.
1699         
1700         * InternalWindowManager.cs:
1701         - Only execute a click on the control buttons on the mouse up,
1702           not on the mouse down. Show the state of the button 
1703           (was only showing Normal state, never Pressed state). The
1704           pressed button now follows the mouse (if you click the Close 
1705           button and move the mouse over the Maximize button, the 
1706           Maximize button will be shown as pressed). Since Win32 does
1707           not generate WM_NCLBUTTONUP if you release the button outside
1708           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
1709           it as a mouse up.
1710         
1711         * ThemeWin32Classic.cs:
1712         - Draw a missing border around mdi child forms. Fixes #79844 (2).
1713
1714         * MdiClient.cs:
1715         - Added a list of forms which contains the order the forms are
1716           added to the mdi parent.
1717         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
1718         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
1719         - If the active form changes set the scrollbars to the top
1720           of the Z order, otherwise the form could hide them.
1721         - Scrollbars are now sized according to ClientSize, not 
1722           to Size, and they take into account the other scrollbar
1723           to determine maximum.
1724         
1725 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
1726         
1727         * XplatUI.cs:
1728         * XplatUIDriver.cs:
1729         * XplatUIX11.cs:
1730         * XplatUIWin32.cs:
1731         * XplatUIOSX.cs:
1732         - Added RequestAdditionalWM_NCMessages for windows to 
1733           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
1734           Currently only implemented in XplatUIWin32.
1735
1736 2006-11-27  Chris Toshok  <toshok@ximian.com>
1737
1738         * Hwnd.cs: only add the hwnd to the windows hash in
1739         set_WholeWindow and set_ClientWindow if whole_window/client_window
1740         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
1741
1742 2006-11-27  Mike Kestner  <mkestner@novell.com>
1743
1744         * ComboBox.cs: remove redundant OnDropDown call.  It is called
1745         from the ComboListBox.ShowWindow code. Fixes #79969.
1746
1747 2006-11-27  Chris Toshok  <toshok@ximian.com>
1748
1749         * Hwnd.cs: remove the setters for ExposePending and
1750         NCExposePending - noone uses them.
1751
1752 2006-11-27  Jackson Harper  <jackson@ximian.com>
1753
1754         * TextControl.cs: new param for ReplaceSelection which determines
1755         whether we select the new selection, or set the cursor to the end
1756         of the new selection.
1757         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
1758         pasting, select the new text.
1759         * RichTextBox.cs: Use new param for ReplaceSelection.
1760
1761 2006-11-27  Jackson Harper  <jackson@ximian.com>
1762
1763         * TextBoxBase.cs: Set the selection to the caret after the caret
1764         is moved, otherwise they get out of sync.
1765
1766 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1767
1768         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
1769         it fixes #80015
1770
1771 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1772
1773         * ThemeWin32Classic.cs: 
1774         - Fix toolbar drop down arrow position.
1775         - Fix drop down appearance when ToolBar.Appearance is normal,
1776         it fixes #80018.
1777         
1778 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
1779
1780         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
1781         * Control.cs: Same.
1782         * UpDownBase.cs: Same.
1783         * ButtonBase.cs: Same.
1784         * ScrollBar.cs: Same.
1785         * TrackBar.cs: Same.
1786         * PictureBox.cs: Same.
1787         * UserControl.cs: Same.
1788         * Label.cs: Same.
1789         * ListControl.cs: Same.
1790         * TextBoxBase.cs: Same.
1791         * ListView.cs: Same.
1792         * RichTextBox.cs: Same.
1793         * TreeView.cs: Same.
1794
1795 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
1796
1797         * PrintDialog.cs:
1798         - Text label for where 
1799         - Text label comment was not shown
1800
1801 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
1802
1803         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
1804
1805 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1806
1807         * InternalWindowManager.cs: 
1808         - Handle WM_PARENTNOTIFY to activate the form
1809         if any child control is clicked.
1810         - The form is only sizable if not minimized.
1811
1812         * MdiWindowManager.cs:
1813         - Save the IconicBounds if the form is moved.
1814         - Rework SetWindowState, now the window bounds 
1815         are stored only if the old window state is Normal.
1816         
1817         * MdiClient.cs:
1818         - In SetWindowStates store the old window state if 
1819         the window is maximized and restore window state if
1820         the window looses focus.
1821         - Don't handle any scrollbar value changes if 
1822         initializing the scroll bars. Fixes #79771.
1823         - Reworked ArrangeIconicWindows. Current algorithm
1824         tests bounds agains all other minimized windows, if
1825         any intersections create new bounds (going left to 
1826         right, bottom to top) and then test again. When 
1827         successful the bounds are saved and never computed
1828         again. Fixes #79774.
1829
1830 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1831
1832         * InternalWindowManager.cs: Added HandleTitleBarUp.
1833
1834 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1835
1836         * NumericUpDown.cs: In .NET 1.1, user entered text is still
1837         hexadecimal in ParseUserEdit.
1838
1839         
1840 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1841
1842         * MdiWindowManager.cs: 
1843         - Handle a click on the form's icon to show the 
1844         system menu (when maximized). Fixes #79775.
1845         - Change the existing click handler for the form's
1846         icon when not maximized to show on MouseUp.
1847         Fixes #79776.
1848
1849         * Form.cs: In OnResize only layout the mdi child's
1850         parent if it actually has a parent. Might not if
1851         the window is closing.
1852
1853
1854 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1855
1856         * MdiClient.cs: Ignore active MDI client for text of parent, if
1857         child has no text set.
1858
1859 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1860
1861         * ToolBar.cs: Fixed ToString to match MS.
1862
1863 2006-11-22  Andreia Gaita  <avidigal@novell.com>
1864
1865         * NumericUpDown: 
1866         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
1867         update inner values on set. Fixes #79966.
1868         - Override OnLostFocus to update value on NET 2. Fixes #79950.
1869         - Fix hexadecimal parsing.
1870         
1871         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
1872         parent. Fixes #79957
1873
1874 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1875
1876         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
1877         the actual size has to be queried, since if height /
1878         width is negative Win32 changes it to 0. 
1879         Fixes #79999 on Windows.
1880         
1881         * XplatUIX11.cs: Set height / width to 0 if negative
1882         in SetWindowPos. Fixes #79999 on Linux.
1883         
1884 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1885
1886         * ThemeWin32Classic.cs: Fix text redenring when button is
1887         pressed.
1888
1889 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1890
1891         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
1892         and later navigate by mouse. Fixes #79528.
1893
1894 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1895
1896         * ToolBar.cs: Set default value for TabStop to false in
1897         constructor, it fixes remaining behavior of bug #79863.
1898
1899 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1900
1901         * MdiWindowManager.cs:
1902         * InternalWindowManager.cs:
1903         - Moved a few methods specific to Mdi from 
1904         InternalWindowManager to MdiWindowManager.
1905         Fixes #79996.
1906         
1907 2006-11-21  Chris Toshok  <toshok@ximian.com>
1908
1909         * XplatUIOSX.cs: stub out InvalidateNC.
1910
1911         * XplatUIWin32.cs: implement InvalidateNC using the call I found
1912         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
1913
1914         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
1915
1916         * XplatUIDriver.cs: add InvalidateNC abstract method.
1917
1918         * XplatUI.cs: add InvalidateNC.
1919
1920 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1921
1922         * ToolBar.cs: Invalidate complete button area when pressed status 
1923         was changed.
1924         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
1925         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
1926         by 1 when button is pressed.
1927
1928 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1929
1930         * ToolButton.cs: Invalidate middle of DropDown button when
1931         ToolBar theres DropDownArrows.
1932         * ThemeWin32Classic.cs: Change position of DropDown arrow and
1933         fix DropDown drawing operations.
1934
1935 2006-11-20  Chris Toshok  <toshok@ximian.com>
1936
1937         * NativeWindow.cs: fix the formatting of functions ('{' on the
1938         following line), and enable the thread exception dialog.
1939
1940         * Application.cs: remove the duplicate exception catching from
1941         here.
1942
1943 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1944
1945         * Toolbar.cs: Triggers button click event when click on icon
1946         of dropdown ToolBarButton. Fixes #79912.
1947         
1948 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1949
1950         * Theme.cs:
1951         * ThemeWin32Classic.cs:
1952         - Added a property WindowBorderFont to enable themeing
1953           of mdi child windows' Text.
1954           
1955 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1956
1957         * InternalWindowManager.cs:
1958         * Form.cs:
1959         * MdiClient.cs:
1960         * MdiWindowManager.cs: 
1961         - If mdi child is maximized, set mdi parent's
1962           text to "Parent - [Child]". Fixes #79770.
1963         - If there is any maximized mdi child windows, only the active 
1964           window (and any new windows) is maximized, the rest are normal.
1965         - On a WindowState change only save mdi child's window bounds 
1966           if the old window state was normal. Fixes #79774.
1967         - The scroll bars are now calculated on hopefully all
1968           necessary events. Fixed #79771 / #79844->6 / #79906.
1969         - MdiClient.SizeScrollBars() now takes into account docked 
1970           controls in the parent when calculating available space.
1971         - InternalWindowManager now always repaints the entire title
1972           area. Fixes #79844->1/4/5.
1973         - Added RequestNCRecalc on mdi child windowstate changes.
1974           Fixes #79772.
1975
1976 2006-11-20  Mike Kestner  <mkestner@novell.com>
1977
1978         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
1979         in the MouseUp handler of the listbox and move the return handling
1980         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
1981
1982 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1983
1984         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
1985
1986 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
1987
1988         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
1989           working in 1.2.x anymore. So, updated.
1990
1991 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
1992
1993         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
1994         NumberGroupSeparator of current culture instead of assuming en-US.
1995         Fixed bug #79967.
1996
1997 2006-11-17  Mike Kestner  <mkestner@novell.com>
1998
1999         * Control.cs: Add the concept of implicit bounds setting so that
2000         dock/undock round trips preserve explicitly set size/locations.
2001         Fixes #79313.
2002
2003 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
2004
2005         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
2006           can't handle those filters. (Fixes bug #79961)
2007
2008 2006-11-17  Chris Toshok  <toshok@ximian.com>
2009
2010         [ fixes the exit/crashes associated with #79835.  it's clearly
2011         suboptimal though, we need to figure out a better way to solve
2012         this. ]
2013         
2014         * PrintPreviewControl.cs: deal with the new invalid printer
2015         exceptions.
2016
2017         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
2018         and return false (so CommonDialog.ShowDialog doesn't actually show
2019         the form.)
2020
2021         * PrintDialog.cs: enable/disable the Ok button depending on
2022         whether or not the printer is valid.
2023
2024         * CommonDialog.cs (ShowDialog): only actually show the form if
2025         RunDialog returns true.
2026
2027 2006-11-17  Jackson Harper  <jackson@ximian.com>
2028
2029         * TextControl.cs: When soft splitting a line, mark it as a soft
2030         split line. Also carry over the current line break to the next
2031         line.
2032
2033 2006-11-17  Chris Toshok  <toshok@ximian.com>
2034
2035         * XplatUIX11.cs: when scrolling a window with an invalid area, we
2036         only want to shift the part of the invalid area that overlaps the
2037         area we're scrolling.  we also don't want to clear the invalid
2038         area unless the invalid area was entirely contained within the
2039         scrolling area.
2040
2041 2006-11-16  Chris Toshok  <toshok@ximian.com>
2042
2043         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
2044         also make sure to free the memory returned by XGetWindowProperty
2045         in GetText().
2046
2047         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
2048
2049 2006-11-16  Chris Toshok  <toshok@ximian.com>
2050
2051         * XplatUI.cs: add a new super secret way to get at the totally
2052         unsupported X11 backend.
2053
2054 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
2055
2056         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
2057
2058 2006-11-16  Jackson Harper  <jackson@ximian.com>
2059
2060         * TreeView.cs: Allow more explicit setting of top node position
2061         for scrollbars. Slower algo, but more accurate.
2062         - CollapseAll should maintain the current top node.
2063         * TextBoxBase.cs: When positioning the caret, use the line, pos
2064         method, since the x, y method does not grab the correct tag, and
2065         the caret height never gets set correctly. (Maybe I should just do
2066         away with the caret having its own height, and always use the
2067         carets current tag for height).
2068
2069 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
2070
2071         [Fixes 79778, 79923]
2072
2073         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
2074         Parent to the FosterParent instead.
2075
2076 2006-11-16  Jackson Harper  <jackson@ximian.com>
2077
2078         * TreeView.cs: Need to recalc the topnode when we expand or
2079         collapse. The scrolling methods can't handle this on their own,
2080         since they use differences between the last scroll position, and
2081         those difference get completely messed up since we are expanding
2082         nodes.  This problem should probably be fixed in the scrolling
2083         methods, so they can figure out exactly where they are, but this
2084         will slow things down a little.
2085         * ThemeWin32Classic.cs: Special case for groupboxes with empty
2086         strings, makes nunit-gui look a lot nicer.
2087
2088 2006-11-16  Chris Toshok  <toshok@ximian.com>
2089
2090         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
2091         the broken multithreaded event handling we have in here.  File
2092         this entry under "Why we should move to the new X11 backend".
2093
2094         Any thread can make it into UpdateMessageQueue, which gets events
2095         from the X socket - some of which could belong to hwnds being
2096         managed by a different thread.  We can also have multiple threads
2097         in UpdateMessageQueue at the same time, with each one reading from
2098         the X socket.  This leads to many problems, with the following
2099         solutions:
2100
2101         We can't use hwnd.Queue.Enqueue anywhere in here and must use
2102         EnqueueLocked.
2103
2104         The MotionNotify compression we do can't work across threads
2105         (without locking the entire queue, perhaps) since we call
2106         hwnd.Queue.Peek, so we just punt and don't compress motion events
2107         unless the owning thread is the one which got the X event.
2108
2109         ConfigureNotify is another fun one, since it modifies the hwnd's
2110         bounds and then enqueues the event.  We add a lock to Hwnd which
2111         is held when setting configure_pending to true (and enqueuing the
2112         event).
2113
2114         There is a race wrt the wake socket.  we need to make sure that
2115         only 1 thread is waiting on that socket, or else a thread could
2116         sleep waiting for data that never comes.  It's difficult (but not
2117         impossible) to make happen, because it seems to require something
2118         like the following:
2119
2120             1. Thread 1 polls on wake_receive
2121         
2122             2. poll returns saying there's data to be read on
2123                wake_receive.
2124         
2125             3. Thread 2 polls on wake_receive and immediately returns
2126                saying there's data to be read.
2127
2128             4. Thread 2 reads the wakeup byte from wake_receive
2129
2130             5. Thread 1 attempts to read the wakeup byte from
2131                wake_receive.
2132
2133             6. Thread 2 exits (due to a form closing, perhaps).
2134
2135             7. Thread 1 blocks forever.
2136         
2137         Fun, eh?
2138
2139         Fixing the Expose handling isn't done yet, and the races inherent
2140         in that piece of code are responsible for the drawing mistakes you
2141         see when generating expose events in a MT app (like NPlot).  This
2142         one is the likely to be the hardest to bandaid, and it doesn't
2143         appear to cause anything but drawing problems.  The other issues
2144         caused apps to exit or hang.
2145
2146         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
2147         called from a different thread than the one that should be calling
2148         these functions.
2149
2150         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
2151
2152 2006-11-15  Chris Toshok  <toshok@ximian.com>
2153
2154         * Application.cs: null out the context's MainForm when we exit
2155         RunLoop.  Fixes a newly checked in unit test as well as the last
2156         ODE from bug #79933.
2157
2158 2006-11-15  Chris Toshok  <toshok@ximian.com>
2159
2160         * Form.cs (set_Owner): allow a null value so we can clear the
2161         form's owner.
2162         (Dispose): set all our owned_form's Owner properties to null, and
2163         clear the owned_forms collection.
2164         (WM_CLOSE): clean up this a little bit.. still not right though.
2165
2166         * ApplicationContext.cs: OnMainFormClosed should only call
2167         ExitThreadCore if the main form isn't recreating.  Fixes unit
2168         test.
2169
2170 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2171
2172         [Fixes 78346]
2173
2174         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
2175
2176 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2177
2178         [Fixes 79433]
2179
2180         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
2181         keep popup window types from stealing focus from the main form
2182         on Windows.
2183
2184         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
2185
2186         * MenuAPI.cs: Set above flag to true.
2187
2188 2006-11-15  Chris Toshok  <toshok@ximian.com>
2189
2190         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
2191         the button being released is not in wParam.
2192
2193 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2194
2195         * Form.cs: Add the released button to MouseEventArgs.Button
2196         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
2197         on Win32.
2198
2199 2006-11-15  Chris Toshok  <toshok@ximian.com>
2200
2201         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
2202         GetText().  untested because it's unused in our implementation.
2203         Control.Text always caches the text, even if
2204         ControlStyles.CacheText is not set.
2205
2206         fixes bug #79939.
2207
2208 2006-11-15  Chris Toshok  <toshok@ximian.com>
2209
2210         [ fixes #79933 ]
2211         
2212         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
2213         message.  no hiding, no disposing.
2214
2215         in the WM_CLOSE handler, hide the form if it's modal.
2216
2217 2006-11-15  Chris Toshok  <toshok@ximian.com>
2218
2219         * XplatUIX11.cs: use AddExpose instead of sending a message.
2220         fixes textbox border drawing.
2221
2222 2006-11-15  Chris Toshok  <toshok@ximian.com>
2223
2224         * PropertyGridView.cs: keep from crashing on mouse move/down when
2225         the property grid is empty.
2226
2227 2006-11-14  Jackson Harper  <jackson@ximian.com>
2228
2229         * TextControl.cs: Make PageUp and PageDown more like the MS
2230         versions.
2231         * TextBoxBase.cs: When we set the text property position the
2232         cursor at the beginning of the document.
2233
2234 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2235
2236         * Form.cs: if a mdi child's WindowState has changed
2237         before it's creation, it would display wrong control
2238         buttons.
2239         
2240 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
2241
2242         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
2243           (Fixes bug #79927)
2244
2245 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2246
2247         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
2248         the window gets to paint its borders even if the window is
2249         getting smaller.
2250         
2251         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
2252         otherwise the old control buttons would still be painted 
2253         if the window gets bigger.
2254         
2255         * PaintEventArgs.cs: add an internal method so that the clip 
2256         rectangle can be changed.
2257         
2258 2006-11-13  Chris Toshok  <toshok@ximian.com>
2259
2260         [ fixes bug #79745 ]
2261         
2262         * NotifyIcon.cs: lots of cleanup.
2263
2264         * X11Structs.cs: add an enum for XEMBED messages.
2265
2266         * XplatUIX11.cs: reindent one of the giant switch statements, it
2267         was taking up an additional tab stop, and this file is already way
2268         too wide for my laptop's screen.
2269
2270         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
2271         we get it, resize the hwnd to the WMNormalHints max_width/height.
2272
2273 2006-11-13  Jackson Harper  <jackson@ximian.com>
2274
2275         * TextBoxBase.cs: Compute the value changes for the mouse wheel
2276         teh simple way.
2277
2278 2006-11-13  Chris Toshok  <toshok@ximian.com>
2279
2280         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
2281         #79898.  force a reference to the Region to stick around so the
2282         unmanaged object isn't collected (rendering our handle in the MSG
2283         stale).
2284
2285 2006-11-13  Chris Toshok  <toshok@ximian.com>
2286
2287         * XplatUIX11.cs: fix #79917 for window managers which support
2288
2289         using XStoreName on the raw utf8, and we need to convert to
2290         COMPOUND_TEXT if it's non-latin1.
2291
2292 2006-11-13  Chris Toshok  <toshok@ximian.com>
2293
2294         * Form.cs (set_DialogResult): we need to set closing to false if
2295         we're setting our result to None.  fixes bug #79908.
2296
2297 2006-11-13  Jackson Harper  <jackson@ximian.com>
2298
2299         * TextControl.cs: When formatting text, compute the adjusted tag
2300         lengths correctly, using FindTag for the end tag instead of trying
2301         to figure it out outselves.
2302         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
2303         the item, ItemHeight doesn't work, because trees with large
2304         imagelists use those for their height
2305         * TreeView.cs: ActualItemHeight factors in the image height
2306         - compute left edge of checkboxes correctly
2307         - when expanding/collapsing move the bottom down one pixel, so we
2308         aren't moving part of the node
2309
2310 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2311
2312         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
2313         stack in PaintEventStart so that it won't get disposed by the gc
2314         before reaching PaintEventEnd.
2315
2316 2006-11-13  Jackson Harper  <jackson@ximian.com>
2317
2318         * TextBoxBase.cs: Don't select the word if we are on a line with
2319         no text.
2320         - We don't need to position the caret on mouse up, since the mouse
2321         move handler should be doing this
2322         - When double clicking a blank line, the caret is advanced to the
2323         next line.
2324
2325 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
2326
2327         * TreeNodeCollection.cs: Avoid duplicating indexer code.
2328
2329 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
2330
2331         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
2332         Fixes part of bug #79910.
2333
2334 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
2335
2336         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
2337           (bug #79903). Some minor string updates to match ms.
2338
2339 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2340
2341         * FileDialog.cs: Don't add an extension if the filename
2342           already ends with that extension.
2343
2344 2006-11-10  Jackson Harper  <jackson@ximian.com>
2345
2346         * TreeView.cs: Use the currently highlighted node for the
2347         BeforeSelect event.
2348         * TextBoxBase.cs: There is no need to expand selection on
2349         MouseMove.
2350         - CanUndo means 'is there any undo operations', not 'is undo
2351         allowed on this textcontrol. Fixed ClearUndo unit test.
2352
2353 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
2354
2355         * Button.cs: only perform click when button is Selectable (so as 
2356         not to activate default buttons when they're disabled)
2357         
2358         * Control.cs: Rewrite of the SelectNextControl and related 
2359         methods. HandleClick now selects next control if the current one
2360         is being disabled.
2361         
2362         * Form.cs: OnActivated selects next active control only if Load 
2363         has already occurred. If Load hasn't run, there's no point in 
2364         selecting here, Load might change the state of controls.
2365         
2366         * FocusTest.cs: Tests marked as working again for these fixes
2367
2368 2006-11-10  Chris Toshok  <toshok@ximian.com>
2369
2370         * XplatUIX11.cs: a couple of fixes.
2371
2372         - use XInternAtoms with almost all the atoms we need to register,
2373         instead of many, many calls to XInternAtom.  should help a bit on
2374         startup time, at the expense of making the code look a little
2375         worse.
2376
2377         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
2378         isn't reparented (which seems to be a clue that we're running fon
2379         compiz) and they have an Owner form.  This fixes the tool windows
2380         in paint.net when running under compiz.
2381
2382         - when setting the opacity of a window, support both the case
2383         where the window has been reparented and also when it hasn't been.
2384         Since compiz/beryl doesn't seem to reparent windows, and these are
2385         the only window managers which support translucency, I'm not sure
2386         why we need the hwnd.reparented case at all.. but leave it in.
2387         now we get translucent windows in paint.net under compiz/beryl.
2388
2389 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2390
2391         * FileDialog.cs: Always return the value for FilterIndex that
2392           was set. Internally convert it to values that make sense.
2393
2394 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2395         
2396         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
2397
2398 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2399
2400         * Toolbar.cs: Change default value of DropDownArrows to true, the 
2401         signature still using false to make it compatible with MS but the 
2402         initial value is true. Fixes #79855.
2403
2404 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2405
2406         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
2407           only available on Linux.
2408
2409 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
2410
2411         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
2412         reduce number of calls to redraw method during toolbar creation.
2413
2414 2006-11-09  Mike Kestner  <mkestner@novell.com>
2415
2416         * ListView.cs : raise SelectedIndexChanged when an item is selected
2417         programmatically via the Item.Selected property.  Gert's nice 
2418         ListViewSelectedIndexChanged test fixture now runs clean.
2419
2420 2006-11-09  Mike Kestner  <mkestner@novell.com>
2421
2422         * ListView.cs : raise SelectedIndexChanged when a selected item is
2423         removed from the item collection using Remove or RemoveAt.
2424
2425 2006-11-09  Mike Kestner  <mkestner@novell.com>
2426
2427         * ListView.cs : raise SelectedIndexChanged once per selected item
2428         for compat with MS.  Fixes #79849+.
2429
2430 2006-11-09  Chris Toshok  <toshok@ximian.com>
2431
2432         * TabControl.cs: initialize row_count to 0, and set it to 1 when
2433         we need to (if we have any tab pages).  Fixes unit test.
2434
2435 2006-11-09  Chris Toshok  <toshok@ximian.com>
2436
2437         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
2438         width is 0, not 3.  Fixes a unit test.
2439
2440 2006-11-09  Mike Kestner  <mkestner@novell.com>
2441
2442         * ListView.cs : use Implicit scrollbars so that focus isn't 
2443         stolen from the listview when they are clicked. Fixes #79850.
2444
2445 2006-11-09  Chris Toshok  <toshok@ximian.com>
2446
2447         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
2448         have a root item.  Fixes #79879.
2449
2450 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
2451
2452         * FileDialog.cs:
2453           - Fix ToString ()
2454           - An ArgumentException is now thrown if a wrong filter
2455             is applied (matches ms). The previous filter doesn't change
2456             anymore if an exception is thrown.
2457           - Changing the FileName property also affects FileNames
2458         * ColorDialog.cs: The length of the CustomColors array is always
2459           16. It doesn't matter if we use a smaller array or null to update
2460           or change the custom colors property.
2461         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
2462           for RootFolder if we get a undefined value.
2463
2464 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2465
2466         * StatusBarPanel.cs: 
2467         - Width is set to MinWidth if Width is smaller than
2468         MinWidth. Fixes #79842.
2469         - MinWidth now always overrides Width (MSDN says MinWidth
2470         is set to Width when AutoSize = None, but they do not 
2471         behave like that).
2472         - Style has now the the correct default value.
2473         
2474 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2475  
2476         * TrackBar.cs: 
2477         - The control is completely invalidated on 
2478         Got/LostFocus to draw the focus rectangle correctly.
2479         - When AutoSize then height is always 45 (width for 
2480         vertical controls).
2481         
2482         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
2483         on the mouse when moved and it doesn't move when grabbed
2484         until the mouse moves as well. Also fixed some wrong 
2485         calculations when clicking on the thumb (control thought
2486         click was outside of thumb and didn't grab it).
2487         Fixes some of the issues in #79718.
2488
2489 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
2490
2491         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
2492
2493 2006-11-08  Chris Toshok  <toshok@ximian.com>
2494
2495         * PropertyGridView.cs: only call ToggleValue if the item is not
2496         readonly.
2497
2498 2006-11-08  Jackson Harper  <jackson@ximian.com>
2499
2500         * TextBoxBase.cs: The RichTextBox and textbox have very different
2501         word selection methods.  Implement the textbox's simple word
2502         selection here, and let the RichTextBox override and provide it's
2503         own.
2504         - Don't do extra selection on mouseup
2505         * RichTextBox.cs: Use the documents word selection algorithm, I
2506         think ideally, this function will be pulled into the
2507         RichTextBox.cs code someday.
2508
2509 2006-11-08  Chris Toshok  <toshok@ximian.com>
2510
2511         * RootGridEntry.cs: new class to represent GridItemType.Root.
2512
2513         * CategoryGridEntry.cs: reformat, and add boilerplate.
2514         
2515         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
2516         returns the UI parent anyway, and we need special handling to
2517         implement the GetTarget method in the face of it.  Also, implement
2518         Select().
2519
2520         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
2521         a root grid item, and use that instead of PropertyGrid.grid_items.
2522         Also, make use of TypeConverters (and add limitted support for
2523         ICustomTypeDescriptors) when initially populating the grid.
2524         Arrays now show up more or less properly.
2525
2526 2006-11-08  Chris Toshok  <toshok@ximian.com>
2527
2528         * Application.cs: set the modal dialog to non modal after we close
2529         it.  Fixes bug #79866.
2530
2531 2006-11-08  Jackson Harper  <jackson@ximian.com>
2532
2533         * TextControl.cs: When combining lines carry over the line end
2534         style from the end line.
2535         - Invalidate the selected area when setting it, if it is visible.
2536         * TextBoxBase.cs: Only rich text box can do full line selects.
2537         - Make sure to set the cursor position when there is a click,
2538         otherwise two clicks in separate areas could cause a large chunk
2539         to be selected.
2540
2541 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2542
2543         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
2544         Fixes #79863.
2545
2546 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2547
2548         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
2549         time. Remove tooltips when ToolButton click events.  Fixes #79856.
2550
2551 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2552
2553         * MenuAPI.cs: Ignore right click for menu actions and fixes
2554         menu border when clicked.  Fixes #79846.
2555
2556 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2557
2558         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
2559         MouseState after create wParam for message, this fixes mouse button 
2560         equal none in mouse up events.
2561         
2562 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
2563
2564         * Control.cs : Focus() now calls Select to set the Container's
2565         Active Control and to give it focus. To avoid infinite recursion
2566         (because ActiveControl also calls Focus at one point), a check 
2567         is made in Focus with the help of a new internal variable
2568         is_focusing.
2569
2570 2006-11-07  Mike Kestner  <mkestner@novell.com>
2571
2572         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
2573         if there's a selection.  Fixes #79849.
2574
2575 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
2576
2577         * PropertyGrid.cs: Avoid fixed height of help description label.
2578         Fixes part of bug #79829.
2579
2580 2006-11-07  Chris Toshok  <toshok@ximian.com>
2581
2582         * XplatUIX11.cs: fix #79790 again, by using the
2583         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
2584
2585 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2586
2587         * ToolBar.cs: Fix left click checking.
2588
2589 2006-11-07  Chris Toshok  <toshok@ximian.com>
2590
2591         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
2592
2593 2006-11-07  Chris Toshok  <toshok@ximian.com>
2594
2595         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
2596         PropertyManager unit tests.
2597
2598         * PropertyManager.cs: make property_name internal.
2599
2600 2006-11-07  Chris Toshok  <toshok@ximian.com>
2601
2602         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
2603         pass a unit test.  Also, don't set image_index to anything in
2604         response to setting the ImageList property.
2605
2606 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2607
2608         * ToolBar.cs: Ignore click events when mouse button is not a
2609         left button, only accepts other button for dropdown menus.  
2610         Fixes #79854.
2611
2612 2006-11-07  Chris Toshok  <toshok@ximian.com>
2613
2614         * DataGrid.cs: make the back and parent row buttons a little less
2615         ugly.
2616
2617 2006-11-07  Jackson Harper  <jackson@ximian.com>
2618
2619         * TextBoxBase.cs: When converting to Text don't put line breaks in
2620         for soft line breaks.
2621         * TextControl.cs: There is an initial "fake" line in the document,
2622         this is now a soft break line, so that an extra line feed doesn't
2623         get added to the end of documents.
2624
2625 2006-11-07  Chris Toshok  <toshok@ximian.com>
2626
2627         [ fix bug #79778 ]
2628         
2629         * CurrencyManager.cs: if the list is readonly, don't bother
2630         checking if IBindingList.AllowNew is true.
2631
2632         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
2633         for non-DataRowView datasources..  or rather, make it not crash.
2634         (DataGridPaintRelationRow): make sure we limit the row painting to
2635         the area not covered by the row header, and make our cell width at
2636         least large enough to cover the relation area.  This allows grids
2637         that have relations but no rows to render correctly.
2638         (DataGridPaintRowContents): same type of changes here.
2639         (SetDataSource): move back to always calling
2640         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
2641         navigating back through relations.
2642         (HitTest): handle the case where we have no cells but have
2643         relations.  Right now we generate a hit in cell 0 of whatever the
2644         row is, not sure if this is strictly correct, but it works for our
2645         purposes.
2646         
2647         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
2648         bother doing anything.
2649
2650 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
2651
2652         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
2653         early version of StatusStrip.  Not responsible for eaten
2654         application or firstborn children.
2655
2656 2006-11-06  Chris Toshok  <toshok@ximian.com>
2657
2658         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
2659         call GetTabRect with a -1 index.  Fixes #79847.
2660
2661 2006-11-06  Jackson Harper  <jackson@ximian.com>
2662
2663         * TreeNodeCollection.cs: Update scrollbars after clearing.
2664
2665 2006-11-06  Chris Toshok  <toshok@ximian.com>
2666
2667         * NumericUpDown.cs: fix the ToString method for some unit test
2668         love.
2669
2670 2006-11-06  Chris Toshok  <toshok@ximian.com>
2671
2672         * PropertyGrid.cs:
2673         - set the initial SelectedGridItem if we can.
2674
2675         - Exclude non-mergable properties only if we're merging > 1
2676         object.  Merging 1 object isn't really merging, obviously.
2677
2678         - Handle PropertySort.NoSort just like Alphabetical, which is
2679         wrong of course, but at least gets things on the screen.
2680         
2681         * PropertyGridView.cs:
2682         - Add method "FindFirstItem" which finds the first property grid
2683         item, so we can select it by default.
2684
2685         - make use of GridEntry.CanResetValue.
2686
2687         - Don't call RedrawBelowItemOnExpansion here anymore, the
2688         individual GridEntry's will do that.
2689
2690         - Remove the ITypeDescriptorContextImpl internal class.
2691         
2692         * GridEntry.cs:
2693         - this class needs to implement ITypeDescriptorContext, as it's
2694         what MS's PropertyDescriptorGridEntry does, which means we can
2695         remove the ITypeDescriptorContextImpl internal class from
2696         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
2697
2698         - keep a reference to our PropertyGridView, and move the call to
2699         RedrawBelowItemOnExpansion here from PGV.  This means
2700         programmaticly setting Expanded actually does something visible.
2701
2702         - add a CanResetValue() function which takes into account our
2703         possibly multiple "selected_objects" in the merged case.  Shifting
2704         PropertyGridView to use this method fixes another unreported
2705         crasher found running the test for #79829.
2706
2707         - when Top or Bounds is updated, make sure the PropertyGridTextBox
2708         is updated to reflect this.
2709
2710         * CategoryGridEntry.cs: the ctor takes the PGV now.
2711         
2712 2006-11-06  Jackson Harper  <jackson@ximian.com>
2713
2714         * TextControl.cs: These are 1 based.
2715         * TextBoxBase.cs: When setting the selected text, don't change the
2716         selected text tags, this is done by ReplaceText, just position the
2717         cursor at the end of the new text.
2718
2719 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2720
2721         * ListView.cs: Allow label edit only when, when LabelEdit is
2722           set to true.
2723
2724 2006-11-06  Jackson Harper  <jackson@ximian.com>
2725
2726         * TextControl.cs: If a suitable wrapping position isn't found,
2727         just wrap right in the middle of a word.
2728
2729 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2730
2731         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
2732           bug #79820.
2733
2734 2006-11-06  Jackson Harper  <jackson@ximian.com>
2735
2736         * TreeView.cs: Can't use the VisibleCount property when setting
2737         scrollbar heights, because this doesn't take into account whether
2738         or not the horz scrollbar just came visible.
2739
2740 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
2741
2742         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
2743         activated.  Fixes #79369, #79832.
2744
2745 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
2746
2747         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
2748           had to remove support for links that point to a directory. FileInfo
2749           returns no usefull information (means, the directory they point to)
2750           for such links. Replaced some empty string ("") with String.Empty.
2751
2752 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2753
2754         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
2755         NullReferenceException when attempting to remove node that is not in
2756         collection. Throw NullReferenceException when null is passed to 
2757         Remove. Allow first element of the collection to be removed. Fixes
2758         bug #79831.  In GetEnumerator ().Current return null if positioned 
2759         before the first element of the collection. In GetEnumerator ().Reset,
2760         position before first element of the collection.
2761
2762 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2763
2764         * PropertyGrid.cs: To match MS, remove default title and description
2765         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
2766         buttons.
2767
2768 2006-11-04  Chris Toshok  <toshok@ximian.com>
2769
2770         * Theme.cs: add a Clamp method, just for kicks.
2771
2772         * ThemeWin32Classic.cs: clamp all color components to [0..255].
2773
2774 2006-11-04  Chris Toshok  <toshok@ximian.com>
2775
2776         * Form.cs: if the form isn't visible, Close() does nothing.
2777
2778 2006-11-03  Chris Toshok  <toshok@ximian.com>
2779
2780         * Form.cs (Close): if the form is modal, don't Dispose of it, only
2781         Hide it.
2782         (WndProc): don't Dispose after handling the WM_CLOSE message.
2783
2784         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
2785         them as such, instead of using casts from Control to Form.  Also,
2786         don't Dispose of the modal dialog when we fall out of the loop -
2787         Close() it instead.
2788
2789         fixes bug #79813.
2790
2791 2006-11-03  Chris Toshok  <toshok@ximian.com>
2792
2793         * Control.cs (Dispose): only go through the dispose thing if we're
2794         @disposing, and we haven't already been disposed.  Fixes bug
2795         #79814.
2796
2797         * Form.cs: no reason to call "base.Dispose()" here instead of
2798         "Dispose()".
2799
2800 2006-11-03  Mike Kestner  <mkestner@novell.com>
2801
2802         * ComboBox.cs : use ToString instead of casts in AddItem for
2803         sorting functionality.  Fixes #79812.
2804
2805 2006-11-03  Chris Toshok  <toshok@ximian.com>
2806
2807         * Application.cs: pave the way for actually using the thread
2808         exception dialog.  it's ifdefed out at the moment.
2809
2810 2006-11-03  Chris Toshok  <toshok@ximian.com>
2811
2812         * ThreadExceptionDialog.cs: until we get a better layout, actually
2813         hide the details textbox and label when we shouldn't see them.
2814
2815 2006-11-03  Jackson Harper  <jackson@ximian.com>
2816
2817         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
2818         multiline textboxes anymore.  This method also determines the
2819         width/height of a textboxes canvas area.
2820         - Sorta a revert of the last patch.  For multiline just position
2821         the controls, then bail.  This way the scrollbar width won't be
2822         altered.
2823
2824 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
2825
2826         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
2827         it dont need.  Fixes #79537.
2828
2829 2006-11-02  Jackson Harper  <jackson@ximian.com>
2830
2831         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
2832         send the status after firing the DndOver event.
2833
2834 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2835
2836         * TrackBar.cs: Now orientation only switches height / width if
2837         the control's handle is created (Win32 does it like this). Also 
2838         fixed a typo in ToString() for a test to pass, changed the 
2839         exception thrown in set_LargeChange and set_SmallChange to 
2840         match Win32 behaviour, and added TrackBar tests to the unit 
2841         tests.
2842
2843 2006-11-02  Chris Toshok  <toshok@ximian.com>
2844
2845         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
2846         not _NET_WM_STATE_NO_TASKBAR.
2847
2848 2006-11-02  Jackson Harper  <jackson@ximian.com>
2849
2850         * TextControl.cs: Increment count by one, since in the update view
2851         count - 1 is used.
2852
2853 2006-11-02  Jackson Harper  <jackson@ximian.com>
2854
2855         * TextBoxBase.cs: Use client rectangle not bounds for checking if
2856         the mouse is in the client rectangle (duh).
2857
2858 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2859         
2860         * TrackBar.cs: Fixed trackbar jumping around when clicking
2861         on it - the trackbar was not detecting correctly at which
2862         side of the thumb the click was done. (fixes #79718)
2863
2864 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
2865
2866         * ListBox.cs: scroll visible area when change SelectedIndex to
2867         a non visible area.  Fixes #79481.
2868
2869 2006-11-01  Jackson Harper  <jackson@ximian.com>
2870
2871         * TextControl.cs: When replacing the selection move the selection
2872         start/end/anchor to the end of the new text.
2873
2874 2006-11-01  Jackson Harper  <jackson@ximian.com>
2875
2876         * XplatUIWin32.cs: When setting the parent change the controls
2877         visibility to it's visibility flag, not to it's old parents
2878         visibility (.Visible walks the parent chain).
2879
2880 2006-11-01  Chris Toshok  <toshok@ximian.com>
2881
2882         * XplatUIX11.cs: revert the #79790 fix, as the simple.
2883         XSetTransientForHint fix breaks paint .net's tool windows.  more
2884         work needed for that one.
2885
2886 2006-11-01  Chris Toshok  <toshok@ximian.com>
2887
2888         * ScrollBar.cs: throw ArgumentException instead of Exception in
2889         LargeChange/SmallChange setters.  fixes unit tests.
2890
2891 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2892
2893         * ContainerControl.cs: reverted rev.67183 (which was itself
2894         a reversion of rev.66853... eh).
2895         
2896         * Control.cs: Fixes Reflector hang by changing Focus() call
2897         to what it was before rev.66643 (calling Select() here sets 
2898         ActiveControl, which in some situations calls back Focus and 
2899         eventually does a stack overflow). Temp fix.    
2900         Changes to GetNextControl() to not look for children to select when
2901         parent cannot be selectable (so it looks for siblings instead)  
2902         
2903 2006-10-31  Mike Kestner  <mkestner@novell.com>
2904
2905         * CheckedListBox.cs : off by one error in returned index from
2906         ObjectCollection.Add.  Fixes #79758.
2907
2908 2006-10-31  Chris Toshok  <toshok@ximian.com>
2909
2910         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
2911         calls for the textbox/spinner, to keep from recursing to the point
2912         where we crash.  Fixes #79760.
2913
2914 2006-10-31  Chris Toshok  <toshok@ximian.com>
2915
2916         * ListControl.cs (set_SelectedValue): don't throw exceptions on
2917         null/"" value, just return.  matches ms's behavior and fixes some
2918         failing tests.
2919
2920 2006-10-31  Chris Toshok  <toshok@ximian.com>
2921
2922         * Control.cs (set_Capture): make a logic a little easier to
2923         follow.
2924
2925         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
2926         if it's being destroyed.  A necessary fix surely, but a bandaid
2927         also, to fix the stuck capture problem in bug #78413.
2928
2929 2006-10-31  Chris Toshok  <toshok@ximian.com>
2930
2931         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
2932         convention of clearing hwnd.ClientRect when we set the
2933         width/height (so it'll be recalculated by Hwnd).
2934
2935 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2936
2937         * ContainerControl.cs: reversed Contains check from
2938         ActiveControl due to hanging problems. This fix
2939         partly regresses #79667 (button does not have
2940         initial focus), so this might be a symptom for 
2941         a larger parenting problem (set_ActiveControl
2942         is being called but the child control does
2943         not have the parent set yet?)   
2944         
2945 2006-10-31  Mike Kestner  <mkestner@novell.com>
2946
2947         * MenuAPI.cs : fix keynav when menu is click activated.
2948
2949 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
2950
2951         * ToolStrip*: Version 0.2.
2952
2953         * MenuStrip.cs: Version 0.1.
2954
2955         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
2956
2957 2006-10-30  Chris Toshok  <toshok@ximian.com>
2958
2959         [ fixes the oversized notify icon issue in bug #79745 ]
2960         
2961         * NotifyIcon.cs: scale the icon down to the size we're given by
2962         the XplatUI layer (this would be faster if we did it once instead
2963         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
2964         since it's never invoked.
2965
2966         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
2967         pixels high by default, so let's hardcode our systray icon to that
2968         size.  The SYSTEM_TRAY protocol should really have a way for
2969         client apps to query for the correct icon size.. but oh well.  A
2970         couple of patches to deal with the screwy client_window ==
2971         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
2972         instance, and also make sure we don't XSelectInput twice).
2973
2974 2006-10-30  Chris Toshok  <toshok@ximian.com>
2975
2976         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
2977         recreating forms.  Control recreation is the bane of my existence.
2978         Fix it in a way that keeps everyone happy.
2979
2980 2006-10-30  Chris Toshok  <toshok@ximian.com>
2981
2982         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
2983         just non-CHILD ones.  otherwise sometimes scrollbars end up with
2984         client_windows not being resized to the proper size (ReportBuilder
2985         shows this extremely well).
2986
2987 2006-10-30  Chris Toshok  <toshok@ximian.com>
2988
2989         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
2990         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
2991         showing up in the gnome taskbar.  Fixes bug #79790.
2992
2993 2006-10-30  Chris Toshok  <toshok@ximian.com>
2994
2995         * ApplicationContext.cs: guard against a NRE.
2996
2997         * Application.cs: null out the old MainForm for the context, so we
2998         don't try to use it again once it's disposed.  Fixes bug #79783.
2999
3000 2006-10-30  Chris Toshok  <toshok@ximian.com>
3001
3002         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
3003         BindingContext, set the data source directly, otherwise do the
3004         lazy approach - the actual ListManager will be created when we get
3005         a BindingContext. Fixes bug #79700.
3006
3007 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
3008
3009         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
3010           XplatUIX11.cs: Remove old 2 parameter SetVisible.
3011
3012         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
3013
3014 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
3015
3016         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
3017         of SetVisible that allows a window to be shown, but not activated.
3018         This is needed on Windows for MenuStrip, and can probably be used
3019         with MainMenu and ComboBox to fix the focus stealing issues on
3020         Windows.
3021
3022         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
3023
3024 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
3025
3026         * PictureBox.cs: Fix the output of the ToString method.
3027
3028 2006-10-29  Chris Toshok  <toshok@ximian.com>
3029
3030         * Control.cs (get_TopLevelControl): fix bug #79781.
3031
3032 2006-10-29  Chris Toshok  <toshok@ximian.com>
3033
3034         * ListControl.cs (set_DataSource): throw Exception here, not
3035         ArgumentException, to match MS behavior.
3036
3037 2006-10-29  Chris Toshok  <toshok@ximian.com>
3038
3039         * Form.cs: remove the try-catch's around calls to GetWindowState.
3040         We can just check the return value.
3041
3042         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
3043         Instead return -1.
3044
3045         * XplatUI.cs: Add note about additional return value for
3046         GetWindowState.
3047
3048 2006-10-29  Chris Toshok  <toshok@ximian.com>
3049
3050         * Control.cs (CreateHandle): when we create our handle, we also
3051         create the handles of our child controls.  Fixes one of the
3052         Control unit tests (CH11).
3053
3054 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
3055
3056         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
3057
3058 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
3059
3060         * ThemeClearlooks.cs: A little speedup.
3061
3062 2006-10-27  Chris Toshok  <toshok@ximian.com>
3063
3064         * Control.cs: implement Control.FromChildHandle in a way that
3065         matches the docs (and fixes the failed test.)
3066
3067 2006-10-27  Chris Toshok  <toshok@ximian.com>
3068
3069         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
3070         comments).
3071
3072         * DataGrid.cs: implement ResetForeColor such that the tests
3073         succeed.
3074         
3075 2006-10-27  Chris Toshok  <toshok@ximian.com>
3076
3077         * ToolBarButton.cs: setting text/tooltiptext to null results in it
3078         being set to "".  Fixes bug #79759.
3079
3080 2006-10-27  Jackson Harper  <jackson@ximian.com>
3081
3082         * TextControl.cs: We need to clear the entire selection area when
3083         setting the start, otherwise multiline selections are still
3084         visible.
3085
3086 2006-10-26  Chris Toshok  <toshok@ximian.com>
3087
3088         * PropertyGridView.cs: 
3089
3090         - ifdef all the code specific to the double
3091         buffer case, and provide some alternatives in the non-doublebuffer
3092         code, which makes heavy use of XplatUI.ScrollWindow to move things
3093         around without having to invalidate (and cause flicker).  There
3094         are still some drawing problems in the non-doublebuffered case, so
3095         DOUBLEBUFFER is defined by default.
3096
3097         - Fix the way dropdowns are handled.  now we explicitly watch for
3098         the events which might cause the dropdown to close, and break out
3099         of the nested event loop there.  This gets rid of all Capture
3100         code, at the expense of the Msg special casing.  Seems to work,
3101         though, and fixes bug #79743.
3102
3103 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
3104         * Control.cs: SetIsRecreating now recreates implicitly added
3105         child controls as well. Finally fixes #79629. The flag passed to 
3106         SetIsRecreating has also been removed since it wasn't used.
3107         
3108 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3109
3110         * PageSetupDialog.cs: Clean some code, fix some bits, 
3111         add some checks, and add a printer sub-dialog.
3112
3113 2006-10-26  Chris Toshok  <toshok@ximian.com>
3114
3115         * PropertyGrid.cs: make set_SelectedObject call
3116         set_SelectedObjects, and move the duplicate logic to the
3117         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
3118
3119         * PropertyGridView.cs: hide the textbox when we get a
3120         SelectedObjectsChanged event.
3121
3122         Fixes bug #79748.
3123
3124 2006-10-26  Chris Toshok  <toshok@ximian.com>
3125
3126         * PropertyGridView.cs: deal with the type converter not supporting
3127         GetStandardValues() or GetStandardValues() returning null, which
3128         is does in the default case.  Fixes #79742.
3129
3130 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3131
3132         * CheckedListBox.cs: nunit no longer crashes when selecting 
3133         Project/Edit menu option
3134         
3135 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3136
3137         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
3138         is no menu selected. fixes #79739
3139
3140 2006-10-25  Chris Toshok  <toshok@ximian.com>
3141
3142         * PropertyGridView.cs: factor out the splitter invalidation code
3143         into the SplitterPercent setter, and for kicks implement the
3144         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
3145         amount in either direction.
3146
3147 2006-10-25  Chris Toshok  <toshok@ximian.com>
3148
3149         * PropertyGridView.cs: do some cleanup of the brush used to draw
3150         text - read only fields should be grayed out.  not sure how to do
3151         this with the textbox, though.  but the textbox's should also be
3152         readonly now at least.  Also, hide/show the textbox when resizing
3153         the control.
3154         
3155         * CursorConverter.cs: use System.Reflection when getting the
3156         properties of Cursors, as TypeDescriptor.GetProperties isn't
3157         returning static properties.
3158
3159 2006-10-25  Chris Toshok  <toshok@ximian.com>
3160
3161         * PropertyGridView.cs: factor out the up/down handling, and reuse
3162         it for page up/down.  also add End/Home support.
3163
3164 2006-10-25  Chris Toshok  <toshok@ximian.com>
3165
3166         * PropertyGridView.cs:
3167
3168         - ensure the selected grid item is visible in the scrolled area,
3169         fixes bug #79572.
3170
3171         - fix Keys.Down handling when you're on the last item in the
3172         propertygrid.
3173
3174 2006-10-25  Mike Kestner  <mkestner@novell.com>
3175
3176         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
3177         clicks too.  Fixes #79725.
3178
3179 2006-10-24  Chris Toshok  <toshok@ximian.com>
3180
3181         * PropertyGrid.cs: use property.Converter instead of
3182         TypeDescriptor.GetConverter(property.PropertyType), so we catch
3183         TypeConverters declared on the property as well as on the
3184         PropertyType.  Fixes bug #79678.
3185
3186 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
3187
3188         * MimeIcon.cs, Mime.cs:
3189           Fallback to the default platform handler if no shared mime info
3190           stuff exists (fixes #79693).
3191
3192 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
3193         * ContainerControl.cs: Incorrect contains check in ActiveControl 
3194         from previous fix (duh).
3195
3196 2006-10-20  Chris Toshok  <toshok@ximian.com>
3197
3198         * PropertyGridView.cs: the dropdown should be MIN(number of items
3199         in list, 15).  Fixes #79551.
3200
3201 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
3202         Fixes #79384, #79394, #79652, #79667
3203         * Application.cs: 
3204         
3205         - Modal windows are now destroyed in the proper order for windows
3206         
3207         * ContainerControl.cs:
3208         
3209         - ActiveControl setter has more conditions on when to return:
3210                 - if we're reselecting the active control, but it actually
3211                 didn't have focus (window hidden or some such), it runs
3212                 - if the active control being selected doesn't actually 
3213                 exist in the container, it returns
3214         
3215         * Form.cs
3216         
3217         - The ShowDialog now gets the current form as the owner when
3218         invoking without parameters, and correctly activates the owner 
3219         when returning
3220         
3221         * MessageBox.cs
3222         
3223         - MessageBox now catches the Escape key to exit
3224
3225 2006-10-20  Chris Toshok  <toshok@ximian.com>
3226
3227         * PropertyGridView.cs: fix a number of issues (bug #78565, and
3228         most of bug #79676):
3229
3230         - you can navigate around the property grid with the arrow keys.
3231
3232         - the dropdown is sized properly when the pg has a vertical
3233         scrollbar.
3234
3235         - fix the indentation for subentries, and properly select the
3236         entire label rect.
3237
3238         - fix the gray bar's drawing (only draw it to the last element,
3239         not for the height of the control.  Also make sure we draw that
3240         last horizontal grid line.
3241
3242         - use the same mechanism the datagrid uses wrt the editing textbox
3243         when scrolling/resizing/etc.  Namely, we hide it first, do the
3244         operation, then show it again (if it's still visible).
3245         
3246         - aggressively remove a lot of unnecessary refreshes (and also
3247         calls to Invalidate(). call more limited variants, and only redraw
3248         what we need.)
3249         
3250         * PropertyGrid.cs:
3251
3252         - when we're populating the merged collection, fill in the UI
3253         parent with either the passed in item, or the category item we
3254         create.
3255
3256         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
3257
3258         * GridItem.cs: drop some fully qualified names.
3259         
3260         * GridEntry.cs: add a "UIParent", which is basically the parent
3261         treenode.
3262
3263         * GridItemCollection.cs: add an IndexOf method.
3264
3265 2006-10-20  Mike Kestner  <mkestner@novell.com>
3266
3267         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
3268         a working win32 NC invalidation mechanism, we can't invalidate
3269         menus.  [Fixes #79705]
3270
3271 2006-10-20  Mike Kestner  <mkestner@novell.com>
3272
3273         * ListBox.cs : don't update the VScrollbar if the list is empty,
3274         just hide it.  [Fixes #79692]
3275
3276 2006-10-20  Jackson Harper  <jackson@ximian.com>
3277
3278         * RichTextBox.cs: Handle some special chars better, and don't skip
3279         the entire group when we encounter a special char that we don't
3280         handle correctly.
3281
3282 2006-10-18  Chris Toshok  <toshok@ximian.com>
3283
3284         * PropertyGridView.cs: address a number of issues from bug #79676,
3285         mostly of the cosmetic variety.
3286
3287         - The highlight rectangle for indented items not extends all the
3288         way to the left.
3289
3290         - Indented items aren't indented so much.
3291
3292         - the dropdown is properly sized width-wise if the pg has a
3293         vertical scrollbar.
3294
3295 2006-10-18  Chris Toshok  <toshok@ximian.com>
3296
3297         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
3298         systray stuff is rather convoluted to begin with.
3299
3300         systray icons are a single window for some reason (that I haven't
3301         figured out yet), and for them, client_window == whole_window.
3302         Given the way the tests are structured elsewhere to determine
3303         which paints are pending (client vs. nc), that situation will
3304         always yield PAINT, not NCPAINT.  So, if we have a pending
3305         nc_expose and no pending expose, remove the hwnd from the paint
3306         queue, and also set nc_expose_pending to false, to keep us from
3307         blocking further expose's adding the hwnd to the paint queue.
3308
3309         phew.  like i said, a rather convoluted change.  Fixes the
3310         notifyicon repaint issues in bug #79645.
3311
3312 2006-10-18  Chris Toshok  <toshok@ximian.com>
3313
3314         * Form.cs: when getting the backcolor of the form, don't get
3315         base.BackColor, as this allows parents to influence the background
3316         color.  This breaks mdi forms.  Instead, if the background_color
3317         is empty, return the default.
3318
3319 2006-10-18  Chris Toshok  <toshok@ximian.com>
3320
3321         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
3322         to being private instead of internal static.
3323
3324         * Control.cs: remove all the stupid ParentWaitingOnRecreation
3325         crap, it wasn't working for more deeply nested controls anyway,
3326         and we already have the is_recreating flag - use that instead.
3327         Before calling DestroyHandle in RecreateHandle, recurse through
3328         the control tree setting it to true.  this returns the recreate
3329         code to much of its original simplicity, while now guaranteeing we
3330         actually recreate everything we're supposed to.  This change gets
3331         fyireporting actually showing mdi children.
3332
3333 2006-10-17  Chris Toshok  <toshok@ximian.com>
3334
3335         * Form.cs: remove some debug spew, and collapse some duplicate
3336         code at the end of SetClientSizeCore.
3337
3338         * XplatUIX11.cs: 
3339         - add some more debug spew here too wrt Destroy handling.
3340         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
3341         in Control's handling of WM_DESTROY.
3342         - Remove the handling of zombie window DestroyNotifies from the
3343         event loop - we don't need it.  Now the only DestroyNotifies we
3344         actually handle are ones generated by X.
3345         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
3346         match gtk's (functioning) handling of this. This keep metacity
3347         from leaving droppings in the form of wm borders with no window
3348         contents all over the place.
3349
3350         * Control.cs:
3351         - add a bunch of debug spew wrt control recreation.
3352         - fix a bug where we weren't tracking Visible properly on
3353         recreated hwnds.
3354         - fixed the WM_PAINT double buffer handling to support re-entrant
3355         calls (yes, i know it's gross, but it's happening to us).
3356
3357 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3358         * ThemeWin32Classic.cs: changed drawing of selected days
3359         to make them look better.
3360
3361 2006-10-16  Chris Toshok  <toshok@ximian.com>
3362
3363         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
3364         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
3365
3366         * XplatUIX11.cs: move away from using hwnd.client_dc and
3367         hwnd.non_client_dc and on to a stack of dc's (and in window's
3368         case, PAINTSTRUCT's), so we can deal with nested Paint calls
3369         without puking or not disposing of Graphics objects.
3370
3371         * XplatUIOSX.cs: same.
3372
3373         * XplatUIWin32.cs: same.
3374
3375 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3376
3377         * FileDialog.cs: Don't call on_directory_changed inside
3378           OnSelectedIndexChanged (it changes the SelectedIndex too).
3379           Instead move it to OnSelectionChangeCommitted.
3380
3381 2006-10-13  Chris Toshok  <toshok@ximian.com>
3382
3383         * XplatUIX11.cs: more Destroy work.  the current code does the
3384         following things, in order:
3385
3386         1. Enumerates all handles of all controls at or below the one
3387         being destroyed, in pre-order.  As it is doing this, it marks the
3388         handles as zombie and clears all references to them.
3389         
3390         2. calls XDestroyWindow on the window passed in.
3391
3392         3. SendMessage's WM_DESTROY to all he handles in the accumulated
3393         list.
3394
3395 2006-10-13  Chris Toshok  <toshok@ximian.com>
3396
3397         * XplatUIX11.cs: set hwnd.zombie to true before calling
3398         SendMessage (WM_DESTROY).  this keeps us from marking the new
3399         window a zombie, and also keeps us from calling sendmessage at
3400         all.
3401
3402 2006-10-13  Jackson Harper  <jackson@ximian.com>
3403
3404         * TextControl.cs: Do not show the caret and selection at the same
3405         time.  Reduces ugliness by 35%.
3406
3407 2006-10-13  Chris Toshok  <toshok@ximian.com>
3408
3409         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
3410         zombie after we do the recursive call, so we actually do call
3411         SendMessage on the children controls.
3412         (GetMessage): if we find a pending paint event for a zombie hwnd,
3413         remove the hwnd from the paint queue, or else it will always be
3414         there (and we'll effectively loop infinitely)
3415
3416 2006-10-13  Mike Kestner  <mkestner@novell.com>
3417
3418         * MenuItem.cs : add Selected format under keynav too.
3419         Fixes #79528.
3420
3421 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
3422
3423         * PropertyGrid.cs: Fixed some NRE's and small difference between our
3424         implementation and that of MS.
3425
3426 2006-10-13  Chris Toshok  <toshok@ximian.com>
3427
3428         * Control.cs (OnInvalidated) only futz with the invalid_region if
3429         the control is double buffered.  this fixes the apparent hang in
3430         the ListView unit tests.  Someone needs to make the
3431         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
3432
3433 2006-10-13  Chris Toshok  <toshok@ximian.com>
3434
3435         * PropertyGridView.cs:
3436
3437         - do a little refactoring so that only one place calls
3438         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
3439         else call that.  Also make it Refresh, since there are redraw bugs
3440         otherwise (we should take a look at that...)
3441
3442         - do a little more refactoring work to share the body of code
3443         involved with the drop down.  it was duplicated in the code
3444         dealing with the listbox handling and in the code dealing with the
3445         UITypeEditors.
3446
3447         - add a Capture to the dropdown form's control once it's
3448         displayed, and add a MouseDown handler that checks to make sure
3449         the position is inside the control.  If it's not, close the
3450         dropdown.  This fixes #78190.
3451
3452         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
3453         if the value is different than the initial value.
3454         
3455 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
3456
3457         * Control.cs: see #78650
3458         - Fixed GetNextControl for several cases:
3459                 - Changed FindFlatForward to return 
3460                 correct sibling control when more than one
3461                 control has same TabIndex as the currently 
3462                 focused one.
3463                 - Changed FindFlatBackward to loop children
3464                 from last to first and apply same logic as in
3465                 FindFlatForward
3466                 - Changed FindControlForward to search for
3467                 children when control is not a container
3468                 but has children, or search for siblings if
3469                 control is a container...
3470                 - Changed FindControlBackward   to continue
3471                 searching for child controls when hitting 
3472                 Panel-like parents
3473                 
3474         - Fixed Focus method to update ActiveControl
3475         (FocusTest.FocusSetsActive failure)
3476         
3477         * TabControl.cs:
3478         - Focus rectangle now refreshes when gaining
3479         or losing focus
3480         - Removed grab for Tab key on IsInputKey that 
3481         was keeping tab navigation from working (#78650)
3482
3483 2006-10-13  Chris Toshok  <toshok@ximian.com>
3484
3485         * PropertyGridView.cs:
3486         - Rewrite SetPropertyValue to loop over SelectedGridItem's
3487         SelectedObjects.
3488
3489         - Deal with GridItem.Value == null a few places.
3490
3491         * PropertyGrid.cs: 
3492         - replace the PopulateGridItemCollection with a pair of methods
3493         which compute the intersection of all the properties in the
3494         SelectedObjects array.  Fixes #79615.
3495
3496         - Throw ArgumentException from set_SelectedObjects if there's a
3497         null in the array.
3498
3499         - Add GetTarget method which can be used to traverse up the
3500         GridItem.Parent chain.  It depends on the assumption that
3501         selected_objects for different GridEntries are always in the same
3502         order (a safe assumption).  Use this method and loop over all the
3503         selected objects in the entry when calling RemoveValueChanged and
3504         AddValueChanged.
3505         
3506         * GridEntry.cs: Make this handle multiple selected objects.
3507         .Value returns null if not all the selected objects share the same
3508         value.
3509
3510 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
3511         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
3512           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
3513           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
3514           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
3515           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
3516         add additional functionality.
3517
3518 2006-10-12  Mike Kestner  <mkestner@novell.com>
3519
3520         * ErrorProvider.cs : new ToolTipWindow ctor sig.
3521         * HelpProvider.cs : new ToolTipWindow ctor sig.
3522         * ToolTip.cs : remove ToolTip param from Window sig since it is
3523         not used.
3524         * ToolBar.cs : add tooltip support.  Fixes #79565.
3525
3526 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3527
3528         * ComboBox.cs: move the events in set_SelectedIndex to 
3529         after the call to HighlightIndex in order to avoid 
3530         possible recursion and subsequent problems with the call
3531         to HighlightIndex and include a range check in 
3532         set_HighlightIndex. Fixes #79588
3533         
3534 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3535
3536         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
3537         to ui thread's settings instead of sunday. 
3538         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
3539
3540 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3541
3542         * DateTimePicker.cs
3543         * MonthCalendar.cs
3544         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
3545         and implement missing functionality (selecting different parts 
3546         of the date and edit them individually with the keyboard).
3547         
3548 2006-10-11  Chris Toshok  <toshok@ximian.com>
3549
3550         * Control.cs (OnInvalidated): fix NRE relating to last change.
3551
3552 2006-10-11  Chris Toshok  <toshok@ximian.com>
3553
3554         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
3555         atoms in _NET_WM_STATE here if the window is maximized.  We need
3556         to do this because we're *replacing* the existing _NET_WM_STATE
3557         property, so those atoms will be lost otherwise, and any further
3558         call to GetWindowState will return Normal for a window which is
3559         actually maximized.  Fixes #79338.
3560
3561 2006-10-11  Jackson Harper  <jackson@ximian.com>
3562
3563         * TextControl.cs: Special case for setting selection end to
3564         selection start, we basically kill the anchor.
3565         - some todo comments.
3566
3567 2006-10-11  Chris Toshok  <toshok@ximian.com>
3568
3569         * Control.cs: switch to using an "invalid_region" to track which
3570         parts of the image buffer need updating.  This is more code than
3571         the simple fix from r66532.  That version just attempted to always
3572         fill the entire buffer on redraw, which turns out to be
3573         inefficient when invalidating small rectangles.  This version
3574         simply adds the invalid rectangle to the invalid region.  When we
3575         get any WM_PAINT message we see if it can be filled using the
3576         image buffer, and if it can't (if the paint event's clip rectangle
3577         is visible in the invalid region) we first fill the image buffer.
3578         So, the image buffer is still a cache, we just fill it lazily.
3579
3580         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
3581         need it any longer.
3582
3583 2006-10-11  Chris Toshok  <toshok@ximian.com>
3584
3585         * XplatUIX11.cs (SetWindowPos): we need to update both position as
3586         well as size after calling XMoveResizeWindow.  This keeps us from
3587         ignoring future SetWindowPos calls.  Fixes the disappearing
3588         DateTimePicker in the ToolBarDockExample from bug #72499.
3589
3590 2006-10-11  Chris Toshok  <toshok@ximian.com>
3591
3592         * TextBoxBase.cs: reorder things a bit when it comes to
3593         resizing-causing-recalculation.  we were recalculating the
3594         document when our position was changed, which shouldn't happen.
3595         We only care about size changes.  Clear up some more redundant
3596         recalculation calls while I'm at it.  This makes the toolbar dock
3597         example snappy when you're just dragging toolbars around (since it
3598         causes a relayout whenever you move one.)
3599
3600 2006-10-11  Chris Toshok  <toshok@ximian.com>
3601
3602         * ToolBarButton.cs (get_Rectangle): this only returns
3603         Rectangle.Empty if Visible == false, or Parent == null.
3604         Parent.Visible doesn't matter.
3605
3606 2006-10-10  Chris Toshok  <toshok@ximian.com>
3607
3608         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
3609         by .net 1.1, so switch to an internal method instead.
3610
3611 2006-10-10  Chris Toshok  <toshok@ximian.com>
3612
3613         * Control.cs (WM_PAINT): when a control is double buffered we draw
3614         initially to the ImageBuffer and then copy from there.  But when a
3615         parent control which has child controls is double buffered, the
3616         initial drawing doesn't encompass the entire ClientRectangle of
3617         the parent control, so we end up with uninitialized bits (this is
3618         easily seen by dragging the top toolbar in
3619         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
3620         manually set the ClipRectangle of the paint_event (only the one we
3621         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
3622         of the nastiness in bug #72499.
3623
3624         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
3625         which we use in Control.cs's WM_PAINT handling.
3626
3627 2006-10-10  Jackson Harper  <jackson@ximian.com>
3628
3629         * TextBoxBase.cs: Finish off the autoscrolling stuff.
3630
3631 2006-10-10  Chris Toshok  <toshok@ximian.com>
3632
3633         * Cursor.cs: Apply a slightly different patch to the one suggested
3634         in #79609.
3635
3636 2006-10-10  Jackson Harper  <jackson@ximian.com>
3637
3638         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
3639         not the parent form.
3640         * TextControl.cs: use difference in old line count vs new count to
3641         calculate how many lines were added, this takes into account soft
3642         line breaks properly.
3643
3644 2006-10-10  Chris Toshok  <toshok@ximian.com>
3645
3646         * LinkLabel.cs: don't call MeasureCharacterRanges against a
3647         rectangle located at 0,0 and the size of the text.  Use
3648         ClientRectangle instead.  This fixes rendering of non-left aligned
3649         link labels.
3650
3651 2006-10-10  Jackson Harper  <jackson@ximian.com>
3652
3653         * TextBoxBase.cs: When we set the selection start position the
3654         caret.
3655         * TextControl.cs: Need to update the caret when we decrement it to
3656         zero.
3657         - Make sure that the selection_visible flag gets reset to false if
3658         the selection isn't visible.  Before this you could get it set to
3659         visible by changing the selection start, then changing the end to
3660         equal the start.
3661
3662 2006-10-09  Jackson Harper  <jackson@ximian.com>
3663
3664         * TreeView.cs: Don't update scrollbars when we aren't visible.
3665         * TreeNodeCollection.cs: Only need to update scrollbars if being
3666         added to an expanded visible node or the root node.
3667
3668 2006-10-09  Chris Toshok  <toshok@ximian.com>
3669
3670         * XplatUIX11.cs (SendMessage): fix NRE.
3671
3672 2006-10-09  Jackson Harper  <jackson@ximian.com>
3673
3674         * TextBoxBase.cs: Implement horizontal autoscrolling.
3675         * TextControl.cs: Add a movement types that allows moving forward
3676         and backwards without wrapping.
3677
3678 2006-10-09  Mike Kestner  <mkestner@novell.com>
3679
3680         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
3681         with focus "expansion" of labels.  Fixes #79532 and then some.
3682         * ThemeWin32Classic.cs : add LineLimit to ListView label format
3683         when wrapping.
3684
3685 2006-10-09  Jackson Harper  <jackson@ximian.com>
3686
3687         * TextBoxBase.cs: Set the default max values to MaxValue since
3688         we use the scrollbar for autoscrolling and the default value is
3689         100.  If we don't do this the caret won't keep up with typing
3690         after about 18 characters.
3691         * TextControl.cs: Make sure the selection is offset by the
3692         viewport x.  This fixes selection when using auto scrolling.
3693
3694 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
3695         
3696         * Form.cs: The active control should be selected after the 
3697         OnLoad so that any child control initialization that affects
3698         the selection is done. Fixes #79406
3699
3700 2006-10-06  Chris Toshok  <toshok@ximian.com>
3701
3702         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
3703         to have no evil effects.
3704
3705         - Stop selecting StructureNotifyMask on non-toplevel windows.
3706
3707           The only way children should be resized is by using the SWF api,
3708           and we already send WM_WINDOWPOSCHANGED messages in those cases.
3709           Toplevel windows can be interacted with via the window manager,
3710           and so we keep the input mask there.
3711
3712           The other event StructureNotifyMask gives us (that we care
3713           about) is DestroyNotify.  The code is already structured such
3714           that it assumes we won't be getting a DestroyNotify event for
3715           the window we pass to XDestroyWindow (which is what
3716           StructureNotifyMask is supposed to guarantee.)  So, that code
3717           shouldn't be affected by this either.
3718
3719         - Stop selecting VisibilityChangeMask altogether.
3720
3721           We weren't doing anything with the resulting events anyway.
3722         
3723         This vastly reduces the number of X requests and events we see
3724         when resizing/laying out a large ui.
3725
3726 2006-10-06  Chris Toshok  <toshok@ximian.com>
3727
3728         * ScrollableControl.cs (DisplayRectangle): we need to take into
3729         account the DockPadding regardless of whether or not auto_scroll
3730         == true.  rework this slightly to this effect, and fix bug #79606,
3731         and part of #72499 (you can now see the drag handles and drag
3732         toolbars around).
3733
3734 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
3735
3736         * ListViewItem.cs: Collections of selected and checked items are now
3737         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
3738         we mark the collection "dirty".
3739         * ListView.cs: Marked collections readonly. Modified UpdateSelection
3740         to only clear SelectedItems when a new item is selected and MultiSelect
3741         is enabled. CheckedItems and SelectedItems now subscribe to Changed
3742         event of ListViewItemCollection, and mark its list dirty whenever
3743         that event is fire. This allows us to return selected/checked items 
3744         in the same order as they are in the Items collection. This matches
3745         the MS behavior.
3746
3747 2006-10-06  Chris Toshok  <toshok@ximian.com>
3748
3749         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
3750         right mouse clicks.  Fixes bug #79593.
3751
3752 2006-10-06  Chris Toshok  <toshok@ximian.com>
3753
3754         * Splitter.cs: doh, fix splitters that don't want to cancel the
3755         movement when you drag them.  Also, impose the limits on the
3756         values we send to the SplitterMovingEvent.  Fixes #79598.
3757
3758 2006-10-06  Jackson Harper  <jackson@ximian.com>
3759
3760         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
3761         since we use this for auto scrolling also.
3762
3763 2006-10-05  Chris Toshok  <toshok@ximian.com>
3764
3765         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
3766         beginning to think that most datagrid column types don't need this
3767         method.  Fixes bug #79392.
3768
3769 2006-10-05  Chris Toshok  <toshok@ximian.com>
3770
3771         * DataGrid.cs: move back to a more lazy scheme for creating the
3772         CurrencyManager, so we aren't updating it every time you set
3773         either DataSource or DataMember.  Also, don't call
3774         RecreateDataGridRows if the currency manager hasn't changed.
3775
3776 2006-10-05  Chris Toshok  <toshok@ximian.com>
3777
3778         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
3779         emitted, SelectedIndex should already be updated.  Fixes bug
3780         #78929.
3781
3782 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
3783
3784         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
3785           ToolStripTextBox.cs: Initial commit.
3786         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
3787
3788 2006-10-05  Jackson Harper  <jackson@ximian.com>
3789
3790         * TabControl.cs: We need to invalidate the tab control area when
3791         new ones are added (duh).
3792
3793 2006-10-03  Chris Toshok  <toshok@ximian.com>
3794
3795         * Form.cs (ProcessDialogKey): if the focused control is in this
3796         form and is a button, call its PerformClick method here.  Fixes
3797         #79534.
3798
3799 2006-10-04  Jackson Harper  <jackson@ximian.com>
3800
3801         * TabPage.cs: Ignore setting of Visible, and add an internal
3802         method for setting the controls visibility.  TabPage's Visible
3803         property is a little strange on MS, this seems to make us
3804         compatible, and fixes cases where people set all the tab pages to
3805         visible.
3806         * TabControl.cs: Use the new internal setting on tab pages
3807         visibility.
3808
3809 2006-10-03  Mike Kestner  <mkestner@novell.com>
3810
3811         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
3812
3813 2006-10-03  Mike Kestner  <mkestner@novell.com>
3814
3815         * ListView.cs : use is_visible instead of Visible to check if 
3816         scrollbars should be placed/sized.  Also some max_wrap_width
3817         love for LargeIcon view.  [Fixes #79533]
3818
3819 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
3820
3821         * TextControl.cs :
3822           Make set_TextAlign() do actually update the align. Fixed #78403.
3823
3824 2006-10-03  Chris Toshok  <toshok@ximian.com>
3825
3826         * DataGrid.cs: fix a crash when switching datasources if the
3827         vertical scrollbar is at someplace other than Value = 0.  Also,
3828         reduce the number of recalculation passes we do in SetDataSource
3829         from 2 to 1.
3830
3831 2006-10-03  Jackson Harper  <jackson@ximian.com>
3832
3833         * TextBoxBase.cs: Move the if value the same bail check up, we
3834         don't want to empty the document if it is already empty, this
3835         seems to severly mess up the caret.  TODO: I should probably fix
3836         the empty statement to update teh caret somehow.
3837
3838 2006-10-03  Chris Toshok  <toshok@ximian.com>
3839
3840         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
3841         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
3842         reflection, an internal row type, properties on said type, etc.)
3843         will work with our datagrid.  Fixes #79531.
3844
3845 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3846
3847         * FileDialog.cs: Don't crash if a path is not accessible
3848           (System.UnauthorizedAccessException). Fixes #79569.
3849         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
3850           a ':' too. Return unknown icon for those paths/files.
3851
3852 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
3853
3854         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
3855         GetContainerControl returns null.
3856
3857 2006-10-02  Chris Toshok  <toshok@ximian.com>
3858
3859         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
3860         call to XGetWindowAttributes instead of "handle".  fixes an X
3861         error using notifyicon after the NotifyIconWindow to Form base
3862         class switch.
3863
3864 2006-10-02  Chris Toshok  <toshok@ximian.com>
3865
3866         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
3867         server grab and looping we need to do to get down to the most
3868         deeply nested child window.
3869         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
3870         QueryPointer again after the WarpPointer so we can generate a
3871         proper (fake) MotionNotify event to be enqueued in the destination
3872         window's queue.
3873         (GetCursorPos): call QueryPointer.
3874
3875         Fixes #79556.
3876
3877 2006-10-02  Jackson Harper  <jackson@ximian.com>
3878
3879         * NotifyIcon.cs: Derive the notify icon from a form, so things
3880         like FindForm work on it.
3881         - Swallow the WM_CONTEXTMENU message, since that is generated on
3882         mouse down, and context menu is a mouse up kinda guy.  I believe
3883         the correct fix here is probably to make the notify icon entirely
3884         NC area, but this seems to work fine for anyone not manipulating
3885         WndProc.
3886
3887 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
3888
3889         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
3890           ToolStripItemCollection.cs, ToolStripLabel.cs,
3891           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
3892           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
3893           Initial implementation.
3894         * TextRenderer.cs: Provide padding to MeasureText.
3895
3896 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
3897
3898         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
3899         of ButtonBaseAccessibleObject. Fix bug #79552.
3900
3901 2006-10-02  Jackson Harper  <jackson@ximian.com>
3902
3903         * MdiWindowManager.cs: When maximizing use the containers client
3904         rect, not it's bounds, so nc area is accounted correctly.
3905         - Use the parent form's size for the menu position, since the
3906         client isn't always the full form size.
3907
3908 2006-10-01  Chris Toshok  <toshok@ximian.com>
3909
3910         * ScrollableControl.cs: make sure neither right_edge or
3911         bottom_edge are < 0, since they're used as LargeChange for the
3912         horiz/vert scrollbars respectively.  Fixes #79539.
3913
3914 2006-10-01  Chris Toshok  <toshok@ximian.com>
3915
3916         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
3917         the xplatuix11 code can cause us to destroy/recreate our handle.
3918
3919         * XplatUIX11.cs
3920         (SystrayAdd):
3921         - this code can be invoked many times for the same Hwnd.  Make
3922           sure we only destroy the client window once (the first time this
3923           method is called).  This fixes bug #79544.
3924         - Remove the call to the improperly bound XSync.  why we had two
3925           bindings to this, I will never know, but this call resulted in
3926           events being discarded from the queue(!).
3927         - correct a misunderstanding of _XEMBED_INFO - the second atom is
3928           not our current state but the state we wish to be in.  So, 0 if
3929           we don't want to be mapped.  Change it to 1.
3930         (SystrayRemove): The XEMBED spec makes mention of the fact that
3931         gtk doesn't support the reparent of client windows away from the
3932         embedder.  Looking at gtksocket-x11.c seems to agree with this.
3933         The only avenue we have for removing systray icons is to destroy
3934         them.  We don't want the handle to go away for good, though, so
3935         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
3936         #79545.
3937         
3938 2006-10-01  Chris Toshok  <toshok@ximian.com>
3939
3940         * Form.cs (WndProc): inline the native_enabled variable usage into
3941         the cases in which it's used.  Fixes #79536.
3942
3943 2006-09-29  Mike Kestner  <mkestner@novell.com>
3944
3945         * ListView.cs : toggle the selection state for ctrl clicks in 
3946         multiselect mode. [Fixes #79417]
3947
3948 2006-09-29  Mike Kestner  <mkestner@novell.com>
3949
3950         * ListView.cs : kill CanMultiSelect and refactor the selection
3951         code to support multiselection in the absence of mod keys. Steal
3952         arrow/home/end keys by overriding InternalPreProcessMessage to
3953         restore regressed keynav behavior.
3954         [Fixes #79416]
3955
3956 2006-09-29  Jackson Harper  <jackson@ximian.com>
3957
3958         * MdiClient.cs: Repaint the titlebars when the active window is
3959         changed.
3960
3961 2006-09-29  Chris Toshok  <toshok@ximian.com>
3962
3963         * Application.cs: when entering a runloop with a modal, make sure
3964         the hwnd is enabled.  Fixes #79480.
3965
3966 2006-09-29  Chris Toshok  <toshok@ximian.com>
3967
3968         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
3969         when ListManager.CanAddRows == false, bump us back one.
3970
3971         * DataGridColumnStyle.cs (ParentReadOnly): remove the
3972         listmanager.CanAddRows check.  This makes ArrayLists uneditable
3973         using a datagrid, which is not right.
3974         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
3975         is an IEditable, but call property_descriptor.SetValue regardless.
3976         fixes #79435.
3977
3978 2006-09-29  Chris Toshok  <toshok@ximian.com>
3979
3980         * DataGridBoolColumn.cs: we need to test equality in the face of
3981         possible null values (as is the case with the default NullValue).
3982         This patch keeps us from crashing in that case.
3983
3984 2006-09-29  Jackson Harper  <jackson@ximian.com>
3985
3986         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
3987         here, since it will get called for every node collection in the
3988         tree. This is now done in the treeview once the sorting is
3989         finished.
3990         * TreeView.cs: Recalculate the visible order, and update the
3991         scrollbars after sorting, set the top nope to the root so that the
3992         recalc actually works.
3993
3994 2006-09-29  Chris Toshok  <toshok@ximian.com>
3995
3996         * LinkLabel.cs: more handling of the default link collection in
3997         the face of LinkArea manipulation.  The default link collection
3998         contains 1 element (start=0,length=-1).  If the user sets LinkArea
3999         to anything and the links collection is the default, clear it.
4000         Then only add the link if its nonempty.  Fixes #79518.
4001
4002 2006-09-29  Chris Toshok  <toshok@ximian.com>
4003
4004         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
4005         piece correctly when we hit a '\n'.  Fixes #79517.
4006
4007 2006-09-29  Chris Toshok  <toshok@ximian.com>
4008
4009         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
4010         change the binding of gdk_init_check to take two IntPtr's, and
4011         pass IntPtr.Zero for both of them.  Fixes #79520.
4012
4013 2006-09-29  Mike Kestner  <mkestner@novell.com>
4014
4015         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
4016         [Fixes #78779]
4017
4018 2006-09-28  Jackson Harper  <jackson@ximian.com>
4019
4020         * XplatUIX11.cs: When translating NC messages make sure we go from
4021         whole window to screen, not client window to screen.
4022         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
4023         method doesn't exist
4024         - Skip over controls that aren't forms when arranging.
4025
4026 2006-09-28  Jackson Harper  <jackson@ximian.com>
4027
4028         * XplatUIWin32.cs: Clip the rect to the parent window.
4029         * XplatUIStructs.cs: Add clipping modes struct.
4030         * InternalWindowManager.cs: New private method that factors title
4031         bar heights in when calculating the pos of an NC mouse message.
4032         - Use SendMessage to force a paint when the form's size is changed
4033         instead of painting the decorations immediately.
4034         - Don't let the NC button click messages get to DefWndProc,
4035         because they will attempt to handle windowing themself, and this
4036         messes up z-order (it will put them in front of the scrollbars).
4037         * XplatUIX11.cs: Make sure that we don't reset window managers if
4038         we already have one (ie the window is an MDI window).
4039
4040 2006-09-28  Chris Toshok  <toshok@ximian.com>
4041
4042         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
4043         menu code really needs going over.
4044
4045 2006-09-27  Chris Toshok  <toshok@ximian.com>
4046
4047         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
4048         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
4049         window is maximizable.  So, we need to make sure that even if we
4050         clear the border/wm frame of those functions, they're still
4051         available (basically, we remove the decoration without removing
4052         the function).  Half the fix for #79338.
4053
4054 2006-09-27  Chris Toshok  <toshok@ximian.com>
4055
4056         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
4057         Fixes bug #79515.
4058
4059 2006-09-27  Chris Toshok  <toshok@ximian.com>
4060
4061         * Splitter.cs: reorder things a bit so that we don't actually
4062         draw/move the splitter until after calling OnSplitterMoving.  This
4063         lets users cancel/disallow the movement by explicitly setting
4064         event.SplitX/SplitY.  Fixes #79372.
4065
4066 2006-09-27  Jackson Harper  <jackson@ximian.com>
4067
4068         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
4069         because it is most likely on a window being destroyed, and that
4070         will give us an X11 error.
4071
4072 2006-09-27  Chris Toshok  <toshok@ximian.com>
4073
4074         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
4075         the dropdown button now toggles between showing and hiding the
4076         dropdown.  Also, get rid of dropdown_form_showing and just use
4077         dropdown_form.Visible.  We still don't do a grab, but I'll leave
4078         that part to someone who has handled Capture-fu before.
4079
4080 2006-09-27  Chris Toshok  <toshok@ximian.com>
4081
4082         * DataGrid.cs: return false if alt isn't pressed when '0' is
4083         pressed.  this keeps the '0' key from being swallowed, and fixes
4084         bug #79350.
4085
4086 2006-09-27  Chris Toshok  <toshok@ximian.com>
4087
4088         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
4089         Calling Refresh (in response to a scrollbar event) screws up the
4090         scrollbar painting.  Fixes bug #78923.
4091
4092 2006-09-27  Chris Toshok  <toshok@ximian.com>
4093
4094         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
4095         then insert into hashtable" blocks threadsafe.
4096
4097 2006-09-27  Chris Toshok  <toshok@ximian.com>
4098
4099         * MessageBox.cs (CreateParams): the styles should be |'ed with our
4100         baseclass's, since otherwise the
4101         ControlBox/MinimizeBox/MaximizeBox assignments above have no
4102         effect.  This gets the close button back in messageboxes.
4103
4104 2006-09-27  Chris Toshok  <toshok@ximian.com>
4105
4106         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
4107         flag, not just != 0.  this makes flags that are actually multiple
4108         bits (like WS_CAPTION) work.  fixes bug #79508.
4109
4110 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
4111
4112         * PageSetupDialog.cs: add support for getting and settings the 
4113         paper size, source and orientation.
4114
4115 2006-09-26  Chris Toshok  <toshok@ximian.com>
4116
4117         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
4118         and caption == "", we need to remove the resize handles as well as
4119         the title bar.
4120
4121         * Control.cs (set_Text): turns out that setting Text on a form
4122         should change the WM styles on the window, since if ControlBox ==
4123         false, the only way to get a window border is to have a non-""
4124         Text property.  check winforms/forms/text.cs for an example.  so,
4125         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
4126         update both window styles and title.  This fixes a lot of dialogs
4127         (including the preferences dialog in MonoCalendar.)
4128
4129 2006-09-26  Chris Toshok  <toshok@ximian.com>
4130
4131         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
4132         control isn't a Form), call Win32ShowWindow to hide the window,
4133         but don't update the control Visible property.  When we reparent
4134         back to a parent control, call SetVisible in order for the
4135         window's visibility to be reinstated.
4136
4137         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
4138         the FosterParent.
4139
4140         * Control.cs (ControlCollection.Remove): remove that value.Hide()
4141         call for good, since it breaks MonoCalendar (and other things I'm
4142         sure.) Also, set all_controls to null *after* the owner calls,
4143         which end up regenerating it.
4144         (ChangeParent): allow new_parent to be == null, passing
4145         IntPtr.Zero down to XplatUI.
4146
4147         this fixes #79294 the right way.
4148
4149 2006-09-26  Mike Kestner  <mkestner@novell.com>
4150
4151         * GridEntry.cs : internal SetParent method.
4152         * PropertyGrid.cs : attach to property changed on the proper
4153         target if we have a hierarchical grid with subobjects. Setup
4154         GridItem.Parent for hierarchical items.
4155         * PropertyGridView.cs : Set value on the correct target for
4156         hierarchical grids. [Fixes #78903]
4157
4158 2006-09-26  Chris Toshok  <toshok@ximian.com>
4159
4160         * Control.cs (ChildNeedsRecreating): this should return true if
4161         either we're being recreated and the child is in our list, or our
4162         parent is waiting for our recreation.
4163
4164 2006-09-26  Chris Toshok  <toshok@ximian.com>
4165
4166         * Control.cs (ControlCollection.Remove): reinstate the
4167         value.Hide() call as suggested in bug #79294.
4168
4169 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
4170
4171         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
4172         coordinates (versus a relative move).
4173
4174 2006-09-26  Chris Toshok  <toshok@ximian.com>
4175
4176         * Control.cs: rework child recreation a little bit.  It turns out
4177         that we race between the DestroyNotify the WM_DESTROY message.  If
4178         the parent gets its DestroyNotify before the child gets the
4179         WM_DESTROY message, the child ends up not recreating (since the
4180         parent finishes its recreation on DestroyNotify, and the child
4181         checks ParentIsRecreating.)
4182
4183         So, instead we store off a list of all the child controls which
4184         need to be recreated when the parent control starts to recreate
4185         itself.  Then, when child controls get their WM_DESTROY message we
4186         check to see if they're in the parent's pending recreation list,
4187         and if so, we recreate.  This removes all dependency on ordering
4188         from the code and fixes the initial MonoCalendar upgrade dialog.
4189         
4190 2006-09-26  Jackson Harper  <jackson@ximian.com>
4191
4192         * TextControl.cs: Use the Line to get the length of the line,
4193         since soft line breaks can change the end line.
4194
4195 2006-09-26  Chris Toshok  <toshok@ximian.com>
4196
4197         * Control.cs (ControlCollection.AddImplicit): don't add the
4198         control again if it's already in one of our lists.  This keeps us
4199         from adding controls over and over again for comboboxes when their
4200         handle gets recreated (as the combobox adds implicit controls in
4201         OnHandleCreated).  Fixes the X11 errors in bug #79480.
4202
4203 2006-09-26  Jackson Harper  <jackson@ximian.com>
4204
4205         * TextControl.cs: When deleting characters make sure that any
4206         orphaned zero lengthed tags get deleted.
4207         - Fix ToString for zero lengthed tags.
4208
4209 2006-09-25  Jackson Harper  <jackson@ximian.com>
4210
4211         * TextControl.cs: When getting a tag at the location there can be
4212         multiple tags at the same spot, these are 0-lengthed tags that
4213         appear when extra formatting has been stuck in a location.  We
4214         need to pull out the last of these 0 lengthed tags.
4215
4216 2006-09-25  Jackson Harper  <jackson@ximian.com>
4217
4218         * TextControl.cs: Fix print out in debug method.
4219         * TextBoxBase.cs: When text is set bail if we are setting to the
4220         previous value.
4221         
4222 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
4223
4224         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
4225           It is now possible to change the selected index in a FontXXXListBox
4226           with the up and down arrow keys from the FontXXXTextBoxes.
4227           Also, send the FontXXXTextBox mouse wheel event to the corresponding
4228           FontXXXListBoxes to match ms.
4229
4230 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
4231
4232         * SystemInformation.cs: Return a clone of the theme's MenuFont because
4233         anyone can dispose it, anytime. All other properties returns enums, 
4234         structs or basic types so they don't need such tricks.
4235
4236 2006-09-22  Jackson Harper  <jackson@ximian.com>
4237
4238         * XplatUI.cs:
4239         * XplatUIWin32.cs:
4240         * Clipboard.cs:
4241         * DataFormats.cs:
4242         * XplatUIOSX.cs:
4243         * XplatUIDriver.cs: Update interface to add a primary selection
4244         flag, so the driver can use the primary selection buffer if
4245         needed.
4246         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
4247
4248         * RichTextBox.cs: We need to supply the data object to paste now
4249         (so we can choose to supply CLIPBOARD or PRIMARY).
4250         * TextBoxBase.cs: Supply data object to paste (see above).
4251         - Middle click uses the primary selection data object.
4252         
4253 2006-09-21  Chris Toshok  <toshok@ximian.com>
4254
4255         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
4256         of SetWMStyles.  It's still a rat's nest and is largely
4257         order-dependent which I dislike immensely.  This also fixes the X
4258         button disappearing from toplevel forms.
4259
4260 2006-09-21  Mike Kestner <mkestner@novell.com>
4261
4262         * ListBox.cs: move Jordi's click/dblclick raising code to the
4263         mouse up handler.
4264
4265 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
4266
4267         * ListBox.cs: Fixes 79450
4268
4269 2006-09-21  Mike Kestner <mkestner@novell.com>
4270
4271         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
4272         to deal with people updating the TreeNodeCollection after the tree
4273         is disposed.  "Fixes" 79330.
4274
4275 2006-09-20  Jackson Harper <jackson@ximian.com>
4276
4277         * TextControl.cs: Push the cursor record onto the undo stack
4278         before the delete action. This fixes 78651.
4279
4280 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
4281
4282         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
4283         CreateParams. Fixes 79329.
4284
4285 2006-09-19  Chris Toshok  <toshok@ximian.com>
4286
4287         * XplatUIX11.cs: a couple of blanket code massage passes to clean
4288         things up a bit.  First, get rid of the NetAtoms array (and the NA
4289         enum), and just embed the atoms as static fields.  Also, add a
4290         couple of functions (StyleSet and ExStyleSet) to clean up all the
4291         bitmask testing of styles.
4292
4293         * X11Structs.cs: remove the NA enum, not needed anymore.
4294         
4295 2006-09-19  Chris Toshok  <toshok@ximian.com>
4296
4297         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
4298         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
4299         added cleanup to get MessageBox titles appearing again, which were
4300         broken by my earlier fix for caption-less/ControlBox-less windows.
4301
4302 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
4303
4304         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
4305           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
4306           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
4307           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
4308           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
4309           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
4310           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
4311           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
4312           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
4313           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
4314           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
4315             Inital import.
4316         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
4317           ToolStripButton.cs: Stubs needed for above.
4318         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
4319
4320 2006-09-15  Chris Toshok  <toshok@ximian.com>
4321
4322         * XplatUIX11.cs:
4323         - make the MessageQueues hashtable Synchronized.
4324         
4325         - SendMessage: if the Hwnd is owned by a different thread, use the
4326         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
4327         thread.  Fixes bug #79201.
4328
4329 2006-09-15  Chris Toshok  <toshok@ximian.com>
4330
4331         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
4332         ControlBox == false, we disallow maximize/minimize/close.  If the
4333         form Caption is "" we also disallow move (and get rid of the Title
4334         decoration).  Unfortunately, regardless of how things are set,
4335         we're stuck with the Title and WM menu.
4336
4337 2006-09-15  Chris Toshok  <toshok@ximian.com>
4338
4339         * Application.cs: add locking around the static message_filters
4340         ArrayList, part of #79196.
4341
4342 2006-09-15  Chris Toshok  <toshok@ximian.com>
4343
4344         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
4345         Form.ControlBox == false, the window has no titlebar nor resize
4346         handles.  fixes bug #79368.
4347
4348 2006-09-15  Chris Toshok  <toshok@ximian.com>
4349
4350         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
4351         >= 0.  Fixes bug #79370.
4352
4353 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
4354         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
4355         * Control.cs:
4356             Add properties: LayoutEngine, Margin, DefaultMargin.
4357             Add method: GetPreferredSize.
4358             Move layout logic from PerformLayout to layout engines. 
4359
4360 2006-09-13  Chris Toshok  <toshok@ximian.com>
4361
4362         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
4363         fix for #79326 broke #78718, so this change addresses that.
4364
4365         - in SendWMDestroyMessages remove the call to
4366         CleanupCachedWindows, since we might be recreating the control and
4367         need to maintain the references to right Hwnd handles.  Also, set
4368         the zombie flag to true for each of the children in the hierarchy
4369         instead of calling hwnd.Dispose.  This will cause GetMessage to
4370         ignore all events for the window except for DestroyNotify.
4371
4372         - In GetMessage, ignore messages except for DestroyNotify for
4373         zombie hwnds.
4374         
4375         * Control.cs: revert the is_recreating fix from the last
4376         ChangeLog.  It's definitely "right", but it breaks switching from
4377         an MDI form to a non-MDI form.  Will need to revisit that.
4378
4379         * Hwnd.cs: add a zombie flag, which means "the
4380         client_window/whole_window handles are invalid, but we're waiting
4381         for the DestroyNotify event to come in for them".  Set the flag to
4382         false explicitly if setting WholeWindow/ClientWindow, and also
4383         when Disposing.
4384         
4385 2006-09-13  Chris Toshok  <toshok@ximian.com>
4386
4387         * XplatUIX11.cs: rework window destruction slightly.
4388
4389         - when destroying the windows associated with a control, we don't
4390         need 2 separate XDestroyWindow calls.  Just the one for the
4391         whole_window (or for client_window if whole_window is somehow
4392         IntPtr.Zero -- can this happen?) is enough.
4393
4394         - reworked SendWMDestroyMessages slightly, so we always dispose
4395         the child control hwnd's after sending the messages.
4396         
4397         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
4398         the two places it was used (one was even using hwnd.Handle and the
4399         other hwnd.client_window.  ugh), adding another call in
4400         SendWMDestroyMessages.  We need this new call because now the
4401         DestroyNotify events in the queue will be ignored for the child
4402         controls (as their hwnd's were disposed, and the window id's
4403         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
4404
4405         - this fixes bug #79326.
4406
4407 2006-09-13  Chris Toshok  <toshok@ximian.com>
4408
4409         * Control.cs: don't always set is_recreating to false at the end
4410         of RecreateHandle, since sometimes we're not done (and won't be
4411         until WndProc handles the WM_DESTROY message).  Also, set
4412         is_recreating to false in the WM_DESTROY handling code.  Part of
4413         the fix for bug #79326.
4414
4415 2006-09-13  Miguel de Icaza  <miguel@novell.com>
4416
4417         * X11DesktopColors.cs: Start the droppage of debugging messages.
4418
4419         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
4420
4421 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
4422
4423         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
4424
4425 2006-09-12  Chris Toshok  <toshok@ximian.com>
4426
4427         * DataGrid.cs (get_ListManager): if the list_manager is null, try
4428         to create it using SetDataSource.  Fixes bug #79151.
4429
4430 2006-09-11  Chris Toshok  <toshok@ximian.com>
4431
4432         * XEventQueue.cs: add a DispatchIdle property.
4433
4434         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
4435         either the queue is null, or the queue has DispatchIdle set to
4436         true.
4437         (DoEvents): set queue.DispatchIdle to false around the
4438         peek/translate/dispatch message loop in this method.  This keeps
4439         Application.Doevents from emitting idle events.  Part of the fix
4440         for #78823.
4441
4442 2006-09-11  Chris Toshok  <toshok@ximian.com>
4443
4444         * DataGrid.cs (set_DataSource): make this work for both the
4445         winforms/datagrid test and ReportBuilder.  It seems as though when
4446         we've created a ListManager (or maybe it's if we have a
4447         BindingContext?), when we set the DataSource it clears the
4448         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
4449         #79333.
4450
4451 2006-09-11  Chris Toshok  <toshok@ximian.com>
4452
4453         * XplatUIX11.cs: deal with queue being null, which happens in all
4454         the Clipboard functions.  Fixes one of the two problems mentioned
4455         in #78612.
4456
4457 2006-09-11  Chris Toshok  <toshok@ximian.com>
4458
4459         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
4460         button on various spots (including outside the menu) works closer
4461         to MS, and doesn't crash.  Fixes #79343.
4462
4463 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
4464
4465         * ListView.cs: Do not initialize item_sorter in init. To match MS,
4466         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
4467         and the internal comparer is set. When a new ListViewItemSorter is set,
4468         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
4469         was specified. No further processing is necessary if SortOrder is set
4470         to it's current value. If Sorting is modified to None, and View is
4471         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
4472         (either custom or our internal ItemComparer) to null, on 1.0 profile
4473         only set item_sorter to null if its our internal IComparer. If Sorting
4474         is modified to Ascending or Descending, then use our internal IComparer
4475         if none is set, and if the current IComparer is our internal one then:
4476         on 2.0 profile always replace it with one for new Sorting, and on 1.0
4477         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
4478         Enum.IsDefined to verify whether a valid View value is specified in
4479         its setter. Automatically sort listview items when listview is
4480         created. In Sort, do nothing if ListView is not yet created, or if
4481         no item_sorter is set (no Sorting was set, Sorting was explicitly set
4482         to None or ListViewItemSorter was set to null). Added Sort overload
4483         taking a bool to indicate whether the ListView should be redrawn when
4484         items are sorted (we use this in ListViewItemCollection to avoid double
4485         redraws). Modified our internal IComparer to take the sort order into
4486         account. In Add and AddRange methods of ListViewItemCollection, also
4487         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
4488         view), but use overload with noredraw option to avoid double redraw.
4489         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
4490         true when View is Tile, and do the same when attempting to set View to
4491         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
4492         for selected/checked indices, as it involves overhead when sorting is
4493         done while these collections are not used all that often. Instead
4494         we'll build the indices on demand. Modified IList implementation of
4495         CheckedIndexCollection to use public methods if object is int.
4496         Modified CheckedListViewItemCollection to hide checked items if
4497         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
4498         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
4499         IList implementation in SelectedIndexCollection to use public methods
4500         if object is int. Modified SelectedListViewItemCollection to hide
4501         selected items if listview is not yet created.
4502         * ListViewItem.cs: CheckedIndices list no longer needs to be
4503         maintained separately (see ListView changes). Also clone font, fixes
4504         test failure.
4505
4506 2006-09-11  Mike Kestner  <mkestner@novell.com>
4507
4508         * ComboBox.cs: if we are updating the contents of the currently
4509         selected index, refresh the control or the textbox selection.
4510         [Fixes #79066]
4511
4512 2006-09-11  Mike Kestner  <mkestner@novell.com>
4513
4514         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
4515         the 'specified' logic has been moved there.  This seems like a bug 
4516         in Control.cs, since our current SetBoundsCore completely ignores 
4517         the specified parameter.  Peter's commit seems to indicate that is 
4518         the way the MS control implementation works.  [Fixes #79325]
4519
4520 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
4521
4522         * XplatUI.cs: Set default_class_name to be composed
4523         of current domain id. This allows MWF to be loaded in multiple
4524         domains on Win32.
4525
4526 2006-09-09  Miguel de Icaza  <miguel@novell.com>
4527
4528         * X11Keyboard.cs: If we are unable to obtain the input method, do
4529         not call CreateXic to create the input context.   Should fix
4530         #78944/79276.
4531
4532 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
4533
4534         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
4535           Simplified gnome support by adding more pinvokes to get the
4536           icon for a file or mime type.
4537
4538 2006-09-08  Jackson Harper  <jackson@ximian.com>
4539
4540         * MenuAPI.cs: Deslect popup context menu items before closing the
4541         window, so that you don't see the previously selected item
4542         selected when you reopen the menu.
4543         * TextControl.cs: Update the cursor position even if we don't have
4544         focus.  This fixes typing in things like the ComboBox.  I'm not
4545         totally sure we should always set the visibility if we don't have
4546         focus, but couldn't find any corner cases where the cursor showed
4547         up when it shouldn't.
4548
4549 2006-09-08  Chris Toshok  <toshok@ximian.com>
4550
4551         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
4552         our arrays are length 256.  & 0xff before indexing.  Fixes the
4553         crash in bug #78077.
4554         
4555 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4556
4557         * ThemeWin32Classic.cs: 
4558         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
4559         is true. Handle that check box too.
4560
4561 2006-09-07  Chris Toshok  <toshok@ximian.com>
4562
4563         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
4564         79244.
4565
4566 2006-09-07  Chris Toshok  <toshok@ximian.com>
4567
4568         * Control.cs: in set_BackColor only do the work if
4569         background_color != value.
4570
4571         * XplatUIX11.cs: move the clearing of invalid areas (both client
4572         and nc) to the same block of code where we set (nc_)expose_pending
4573         to false.  That is, move it from PaintEventEnd to PaintEventStart,
4574         so things that cause invalidates from within OnPaint will trigger
4575         another call to OnPaint.  Fixes bug #79262.
4576
4577 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
4578
4579         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
4580         * FileDialog.cs: Fix typo
4581
4582 2006-09-07  Jackson Harper  <jackson@ximian.com>
4583
4584         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
4585         for tab pages if they have any.
4586
4587 2006-09-06  Mike Kestner  <mkestner@novell.com>
4588
4589         * Splitter.cs: use the "current" rect when finishing drag handle
4590         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
4591
4592 2006-09-06  Mike Kestner  <mkestner@novell.com>
4593
4594         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
4595         support offset splitters. [Fixes #79298]
4596
4597 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
4598
4599         * Mime.cs: Fixed a bug that could override the global mime type
4600           result.
4601
4602 2006-09-05  Jackson Harper  <jackson@ximian.com>
4603
4604         * TabControl.cs: Better calculation method for setting the slider
4605         pos. Prevents crashes on really wide tabs.
4606         - Draw Image on tab pages if an image list is used.
4607
4608 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4609
4610         * MonthCalendar.cs: When Font changes, the Size should be
4611         updated to fit the new font's space requirements.
4612
4613 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
4614
4615         * ListBox.cs: If the items are cleared with Items.Clear set
4616           top_index to 0.
4617
4618 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4619
4620         * MonthCalendar.cs: Handle arrow keys as input keys. Also
4621         fire DateChanged event instead of DateSelected event when
4622         the date was changed by keyboard interaction.
4623
4624 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4625
4626         * DateTimePicker.cs: Handle DateChanged for the associated
4627         month_calendar control, and set month_calendar.Font from 
4628         OnFontChanged method, as well as resize the height of the
4629         control when needed. Make PreferredHeight proportional.
4630
4631 2006-09-01  Chris Toshok  <toshok@ximian.com>
4632
4633         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
4634         properties.
4635
4636         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
4637
4638 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
4639
4640         * FileDialog.cs: Set ClientSize instead of window size, to allow space
4641           for decorations (Fixes #79219)
4642
4643 2006-09-01  Mike Kestner  <mkestner@novell.com>
4644
4645         * ComboBox.cs: first stab at sorting plus some selection handling
4646         fixes to bring us more in line with MS behavior.  Also switches back
4647         to index based selection.  Alternative patches for index-based 
4648         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
4649         and latency@gmx.de on bug 78848.  I assume they were similar to this
4650         code I've had simmering in my tree forever.
4651         [Fixes #78848]
4652
4653 2006-09-01  Chris Toshok  <toshok@ximian.com>
4654
4655         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
4656         when setting list position guard against ending up with a -1 index
4657         (the other part of the fix for #78812).  Should probably make sure
4658         we don't need the analogous fix in the ItemDeleted case.
4659
4660         * DataGrid.cs:
4661         - in SetDataSource, work around the fact that the way
4662         OnBindingContextChanged is invoked will cause us to re-enter this
4663         method.  I'll remove the hack once I investigate
4664         OnBindingContextChanged.
4665
4666         - fix the logic in set_DataSource and set_DataMember (basically
4667         what to do if the other of the two is null.)
4668         
4669         - in OnListManagerItemChanged, we need to take into account the
4670         edit row when deciding whether or not to call RecreateDataGridRows
4671         (part of the fix for #78812).
4672
4673 2006-09-01  Jackson Harper  <jackson@ximian.com>
4674
4675         * Splitter.cs: Don't do anything if there is no control to affect
4676         (prevents us from crashing in weird tet cases).
4677         * TreeView.cs: Bounding box for the mouse movement reverting
4678         focus/selection back to previously selected node.  This matches
4679         MS, and makes the tree a lot more useable.
4680         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
4681         use clipping so they are not drawn.  This fixes when the control
4682         is set to have a transparent background, or if it was over an
4683         image.
4684
4685 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
4686
4687         * MimeIcon.cs: Improved handling for reading default icons when
4688           using gnome (2.16 made it necessary). Check and read svg icons
4689           first, then 48x48 and then 32x32 icons.
4690
4691 2006-08-31  Chris Toshok  <toshok@ximian.com>
4692
4693         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
4694         visible.
4695
4696         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
4697         ProcessKeyPreview.  Fixes part of #77806.
4698
4699         * DataGrid.cs: big patch.
4700
4701         - revert the queueing up of DataSource/DataMember if inside
4702         BeginInit/EndInit calls.  That's not the way the datagrid achieves
4703         its delayed databinding.  Instead, call SetDataSource in
4704         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
4705         #78811.
4706
4707         - Also, it wasn't mentioned in #78811, but the test case exhibits
4708         behavior that was lacking in our datagrid implementation - Columns
4709         that have mapping names that don't exist in the datasource's
4710         properties aren't shown.  Yuck.  To fix this I added the bound
4711         field to the column style, and basically any calculation to figure
4712         out anything about columns uses a loop to find the bound columns.
4713         still need to investigate if I can cache an array of the bound
4714         columns or if the indices must be the same.
4715
4716         - When setting CurrentCell, we no longer abort if the cell being
4717         edited was in the add row.  This fixes the other part of #77806.
4718
4719         - The new code also fixes #78807.
4720         
4721         * ThemeWin32Classic.cs: perpetrate the same disgusting
4722         column.bound field hack, and only render bound fields.
4723
4724 2006-08-31  Chris Toshok  <toshok@ximian.com>
4725
4726         * DataGridColumnStyle.cs: add bound field.  this field is true if
4727         the datasource has a property corresponding to the mapping name.
4728
4729         * DataGridTableStyle.cs: set the bound field on the column styles
4730         depending on whether or not we have a column for that property.
4731
4732 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
4733
4734         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
4735           splitter control (fixes #79228)
4736
4737 2006-08-31  Chris Toshok  <toshok@ximian.com>
4738
4739         * DataGridColumnStyle.cs: we need to delay the assignment of
4740         property descriptor until the last possible moment due to the lazy
4741         databinding stuff in the datagrid.  Also, fix the exceptions
4742         thrown by CheckValidDataSource to match MS.
4743
4744 2006-08-31  Jackson Harper  <jackson@ximian.com>
4745
4746         * Form.cs: When activated select the active control, if there is
4747         no active control, we select the first control.
4748         * XplatUIX11.cs: If there is no focus control when we get a
4749         FocusIn event, find the toplevel form and activate it.  This
4750         occurs when you popup a window, it becomes the focus window, then
4751         you close that window, giving focus back to the main window.
4752
4753 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4754
4755         * MonthCalendar.cs: 
4756         * ThemeWin32Classic.cs: Cache Font in bold style, as well
4757         as StringFormat with Center alignments in MonthCalendar,
4758         instead of creating new ones when drawing the control. 
4759         Also, draw the month name in bold style.
4760
4761 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
4762
4763         * Control.cs:
4764           - PerformLayout(): It would seem MS performs the fill even if the 
4765             control is not visible (part of #79218 fix)
4766           - ResetBackColor(): Use the setter to reset the color, to allow
4767             overriders to catch the change.
4768         * Form.cs:
4769           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
4770           - CreateHandle(): dito (part of $79218 fix)
4771           - Don't set an icon if we have a dialog
4772         * ScrollableControl.cs:
4773           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
4774           - ScrollIntoView(): No need to scroll if control is already visible
4775             (resolves fixme and fixes #79218)
4776
4777 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4778
4779         * MonthCalendar.cs: Change proportions in SingleMonthSize
4780         to match the aspect of the original control.
4781
4782 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
4783
4784         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
4785           get updated when they get maximized.
4786
4787 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
4788
4789         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
4790
4791 2006-08-29  Chris Toshok  <toshok@ximian.com>
4792
4793         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
4794
4795 2006-08-29  Jackson Harper  <jackson@ximian.com>
4796
4797         * TreeView.cs: Need to track selected node and highlighted node,
4798         they aren't always the same thing, when the mouse is down on a
4799         node it is hilighted, but not selected yet.
4800         - Do the HideSelection stuff right
4801         - Need to focus on rbutton mouse down. And redraw selection when
4802         right click is mouse upped.
4803
4804 2006-08-29  Mike Kestner  <mkestner@novell.com>
4805
4806         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
4807         when SubItems.Count < Columns.Count.  [Fixes #79167]
4808
4809 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
4810
4811         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
4812
4813 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
4814
4815         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
4816           from X. Only send based on ConfigureNotify if we don't have the
4817           correct location in hwnd (if the window manager moved us)
4818
4819 2006-08-28  Mike Kestner  <mkestner@novell.com>
4820
4821         * ListView.cs: remove a TODO. 
4822         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
4823         [Fixes ListView part of #79166]
4824
4825 2006-08-28  Mike Kestner  <mkestner@novell.com>
4826
4827         * ListView.cs: move wheel handler to parent since it is focused
4828         instead of the item_control now.  [Fixes #79177]
4829
4830 2006-08-28  Mike Kestner  <mkestner@novell.com>
4831
4832         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
4833         when the control is focused. [Fixes #79171]
4834
4835 2006-08-28  Mike Kestner  <mkestner@novell.com>
4836
4837         * ListView.cs: size the item and header controls for empty and
4838         unscrollable views.
4839         * ThemeWin32Classic.cs: draw disabled backgrounds.
4840         [Fixes #79187]
4841
4842 2006-08-28  Chris Toshok  <toshok@ximian.com>
4843
4844         * Form.cs: remove unused "active_form" static field.
4845
4846         * Hwnd.cs: lock around accesses to static windows collection.
4847
4848         * Application.cs: lock threads in Exit ().
4849
4850 2006-08-28  Chris Toshok  <toshok@ximian.com>
4851
4852         * NativeWindow.cs: lock around accesses to window_collection.
4853         
4854 2006-08-28  Chris Toshok  <toshok@ximian.com>
4855
4856         * Control.cs: err, fix this the right way, by locking on controls
4857         when using it.  not by making it synchronized.
4858
4859 2006-08-28  Chris Toshok  <toshok@ximian.com>
4860
4861         * Control.cs: make the static "controls" field synchronized, as it
4862         gets updated from multiple threads.
4863
4864 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4865
4866         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
4867           Prevent other threads from exiting when calling thread sets quit state.
4868         * XEventQueue.cs: Added PostQuitState property
4869
4870 2006-08-27  Chris Toshok  <toshok@ximian.com>
4871
4872         * AsyncMethodData.cs: add a slot for the window handle.
4873
4874         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
4875         window (the destination control's window, not the foster window).
4876
4877         * Control.cs (BeginInvokeInternal): store the window's handle in
4878         the AsyncMethodData.
4879         
4880
4881 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4882
4883         * XplatUIX11.cs:
4884           - PostQuitMessage: Removed resetting S.D display handle, we might have
4885             another loop started after calling PostQuitMessage (Fixes #79119)
4886           - Created destructor to reset S.D handle
4887
4888 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
4889
4890         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
4891
4892 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4893
4894         * TextControl.cs (Insert): Update the caret position even if we don't
4895           have a handle yet, just don't call the driver in that case.
4896         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
4897           to the end of the new selection text (Fixes #79184)
4898
4899 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4900
4901         * Form.cs (Activate): Only activate if the handle is created)
4902         * Control.c:
4903           - Mark window as invisible when it's disposed
4904           - Check if window handle is created when setting window visible, 
4905             instead of relying just on the is_created variable
4906           - Check if object is disposed when creating the control (Fixes #79155)
4907
4908 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4909
4910         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
4911           when allowing layout again. Otherwise we re-generate the anchoring 
4912           distance to the border again and actually alter what the user wanted
4913           This is ugly, it'd be better if we used DisplayRectangle instead of
4914           ClientRectangle for Control.UpdateDistances, but that causes us to
4915           have other problems (initial anchoring positons would be wrong)
4916           (Fixes #78835)
4917
4918 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4919
4920         * Control.cs:
4921           - The size and location setters shouldn't go directly to 
4922             SetBoundsCore, but to SetBounds, which triggers layout on the
4923             parent, then calls SetBoundsCore. (Related to fix for #78835)
4924           - SetBounds: Moved actual location update code into this function
4925             from SetBoundsCore, to match MS. Added call to PerformLayout if
4926             we have a parent (to trigger resizing of anchored parents if the 
4927             child size has changed (see testcase for #78835) 
4928         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
4929           new control code
4930         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
4931
4932 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4933
4934         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
4935           System.Drawing when a toplevel window gets closed; there might
4936           be other toplevel windows belonging to the same app (Fixes #78052)
4937
4938 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
4939
4940         * FileDialog.cs: After reading FileDialog settings from mwf_config
4941           use Desktop prefix only if a real folder doesn't exist anymore.
4942         * FontDialog.cs: Added char sets.
4943           It is now possible to select the font, size or style with the
4944           textboxes.
4945
4946 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
4947
4948         * PrintPreviewDialog.cs: Use assembly name constants.
4949
4950 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4951
4952         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
4953           scrollbar from whacking it's buttons)
4954
4955 2006-08-24  Chris Toshok  <toshok@ximian.com>
4956
4957         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
4958         in this patch (aggregating setting Left/Top/Width/Height to
4959         setting Bounds on the scrollbars), but the crux of the fix is in
4960         Recalculate, where we scroll by the remaining scroll_position if
4961         we're hiding a scrollbar.  The 2*$5 reward in the comment is
4962         serious.
4963
4964 2006-08-24  Jackson Harper  <jackson@ximian.com>
4965
4966         * MdiClient.cs:
4967         * MdiWindowManager.cs: If the form is made a non-mdi window we
4968         need to remove the form closed event so that closing forms works
4969         correctly.
4970
4971 2006-08-24  Jackson Harper  <jackson@ximian.com>
4972
4973         * Control.cs: Make IsRecreating internal so that the driver can
4974         check it
4975         - Temporarily remove the Hide when controls are removed, its
4976         making a whole bunch of things not work because visibility isn't
4977         getting reset elsewhere correctly
4978         * Form.cs: Need to do a full handle recreation when the mdi parent
4979         is set.
4980         * XplatUIX11.cs: If we are recreating handles don't dispose the
4981         HWNDs.  What was happening is the handles were being recreated in
4982         SendWMDestroyMessages, but then flow continued on in that method
4983         and destroyed the new handles.
4984
4985 2006-08-23  Jackson Harper  <jackson@ximian.com>
4986
4987         * Form.cs: MdiClient is always at the back of the bus
4988         * Control.cs: When the order of items in the collection is changed
4989         we need to reset the all_controls array
4990         - do the same sorta setup thats done when adding a control when a
4991         control is set on the collection.
4992
4993 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4994
4995         * TextBoxBase.cs (get_Text): Return an empty array if our document
4996           is empty (fixes #79052)
4997
4998 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4999
5000         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
5001           on WM_SYSCHAR messages (fixes #79053)
5002
5003 2006-08-23  Chris Toshok  <toshok@ximian.com>
5004
5005         * DataGrid.cs: fix flickering when scrolling vertically.
5006
5007 2006-08-23  Chris Toshok  <toshok@ximian.com>
5008
5009         * DataGrid.cs (EndEdit): only invalidate the row header when we
5010         need to.
5011
5012 2006-08-23  Chris Toshok  <toshok@ximian.com>
5013
5014         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
5015         methods.  fixes the flicker when scrolling around.
5016
5017 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5018
5019         * FileDialog.cs: Making sure the control is created before we get a 
5020           chance to use it with BeginInvoke (Fixes #79096)
5021
5022 2006-08-23  Chris Toshok  <toshok@ximian.com>
5023
5024         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
5025         width to use when painting the rows.
5026
5027 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5028
5029         * TextBoxBase.cs:
5030           - Throw ArgumentException if a negative value is passed to SelectionLength
5031           - Update the selection end if start is moved. end needs to be always
5032             after start. (Fixes #79095)
5033           - Track selection length; MS keeps the selection length even if start
5034             is changed; reset on all other operations affection selection
5035
5036 2006-08-22  Jackson Harper  <jackson@ximian.com>
5037
5038         * TreeView.cs: Make sure both scrollbars get displayed and sized
5039         correctly when the other bar is visible.
5040         - Use the original clip rectangle for checking if the area between
5041         the two scrollbars is visible, not the viewport adjusted clipping
5042         rectangle.
5043
5044 2006-08-22  Jackson Harper  <jackson@ximian.com>
5045
5046         * Binding.cs: We don't use IsBinding because it requires the
5047         control to be created, which really shouldn't be necessary just to
5048         set a property on the control.
5049
5050 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5051
5052         * ComboBox.cs: Some CB.ObjectCollection methods must throw
5053         ArgumentNullReferenceException when the argument is null.
5054
5055 2006-08-21  Jackson Harper  <jackson@ximian.com>
5056
5057         * Timer.cs: Track the thread that the timer is started in (NOT
5058         CREATED), this way messages for it will only be triggered on its
5059         queue.
5060         * XEventQueue.cs: Track the timers here, this makes timers per
5061         thread, like MS.
5062         * XplatUIX11.cs: The timers are moved to the XEventQueue.
5063
5064 2006-08-19  Chris Toshok  <toshok@ximian.com>
5065
5066         * XplatUIX11.cs: after further communication with pdb, we get the
5067         best of both worlds.  SetZOrder working for un-Mapped windows, and
5068         no X errors for un-mapped windows.
5069
5070 2006-08-19  Chris Toshok  <toshok@ximian.com>
5071
5072         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
5073         as it was causing pdn toolbars to not have the correct stacking.
5074
5075 2006-08-18  Mike Kestner  <mkestner@novell.com> 
5076
5077         * ListView.cs : guard against negative ClientArea.Width in scrollbar
5078         calculation.  Not sure why control should ever be setting a negative
5079         width though.  Fixes #78931.
5080
5081 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5082
5083         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
5084         null items in ObjectCollection class.
5085         * ListBox.cs.: Likewise.
5086
5087 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
5088
5089         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
5090           as the base method in ThemeWin32Classic should work fine.
5091           Fixed bug #78607.
5092
5093 2006-08-18  Jackson Harper  <jackson@ximian.com>
5094
5095         * Binding.cs: When validating if the value entered doesn't convert
5096         properly reset to the old value.
5097         * RadioButton.cs: Don't fire click when we get focus.
5098
5099 2006-08-18  Jackson Harper  <jackson@ximian.com>
5100
5101         * FileDialog.cs: Paint the selection on the directory combobox the
5102         same way as on MS. 
5103
5104 2006-08-17  Jackson Harper  <jackson@ximian.com>
5105
5106         * ErrorProvider.cs: Don't allow the error control to be selected.
5107         * Control.cs: Don't send the SetFocus messages, the control
5108         activation will do this, and if we do it blindly here validation
5109         does not work.
5110
5111 2006-08-17  Jackson Harper  <jackson@ximian.com>
5112
5113         * Control.cs:
5114         * ContainerControl.cs: Make validation events fire in the correct
5115         order.  TODO: For some reason the first validation event is not
5116         getting fired.
5117
5118 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5119
5120         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
5121
5122 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5123
5124         * ComboBox.cs : implement scroll wheel support for popped-down
5125         state. Fixes #78945. 
5126
5127 2006-08-17  Jackson Harper  <jackson@ximian.com>
5128
5129         * TreeView.cs: Specify treeview actions (old patch that didn't get
5130         committed for some reason).
5131         - Don't let the mouse wheel scroll us too far.  Just want to make
5132         the bottom node visible, not scroll it all the ways to the top.
5133
5134 2006-08-17  Jackson Harper  <jackson@ximian.com>
5135
5136         * XplatUIX11.cs: Mouse wheel events go to the focused window.
5137
5138 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5139
5140         * ComboBox.cs : don't do mouseover selection in simple mode.
5141
5142 2006-08-16  Jackson Harper  <jackson@ximian.com>
5143
5144         * Form.cs: Fire the closing events for all the mdi child windows
5145         when a window is closed.  If the cancel args are set to true, the
5146         main window still gets the event fired, but it doesn't not close.
5147         * MdiWindowManager.cs: Do this closing cleanup in a Closed
5148         handler, instead of when the button is clicked, so cancelling the
5149         close works correctly.
5150         * ComboBox.cs: Send the mouse down to the scrollbar.
5151
5152 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5153
5154         * ListBox.cs: When passing 'null' to SelectedItem,
5155         set SelectedIndex to -1, to unselect items. This is the
5156         observed behaviour in .Net.
5157
5158 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
5159
5160         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
5161           MS flags saying there won't be any. (fixes #78800)
5162         * Control.cs (HandleClick): Made virtual
5163
5164 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5165
5166         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
5167           cultures. Fixed bug #78399.
5168
5169 2006-08-16  Jackson Harper  <jackson@ximian.com>
5170
5171         * Form.cs: Use the MdiClients MdiChildren property to access
5172         MdiChildren instead of creating the array from the child controls.
5173         * MdiClient.cs: Maintain a separate array of the mdi children, so
5174         that insertion order is maintained when the Z-order is changed.
5175
5176 2006-08-16  Mike Kestner  <mkestner@novell.com> 
5177
5178         * ListView.cs : add an ItemComparer and default to it for sorting.
5179         Fixes #79076, but sorting needs a complete overhaul to be compat with
5180         MS.
5181
5182 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
5183
5184         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
5185
5186 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5187
5188         * Hwnd.cs (Mapped): Properly traverse the tree
5189
5190 2006-08-15  Chris Toshok  <toshok@ximian.com>
5191
5192         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
5193         pass manager.Current.GetType() to ParseData.  It has to be the
5194         property type.  So, hold off doing the ParseData until we're in
5195         SetPropertyValue where we know the type.  This fixes the crash in
5196         #78821 but the textbox is still empty.
5197
5198 2006-08-15  Chris Toshok  <toshok@ximian.com>
5199
5200         * DataGrid.cs:
5201         - when we're scrolling, only call Edit() again if the
5202         current cell is still unobscured. Fixes bug #78927.
5203         - when handling mousedown on a cell, ensure the cell is visible
5204         before calling Edit.
5205         - remove the properties from DataGridRow, and remove the
5206         DataGridParentRow class altogether.
5207         
5208
5209 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5210
5211         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
5212           fire OnTextChanged by ourselves. There's no point calling base,
5213           we don't set the base value anywhere else. Fixes #78773.
5214
5215 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5216
5217         * ListBox.cs: Call CollectionChanged when modifying
5218         an item from Items indexer, to update the actual items
5219         in the list box.
5220
5221 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5222
5223         * PrintDialog.cs: Small fixes for focus and a pair of checks,
5224         to match .Net behaviour.
5225
5226 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5227
5228         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
5229
5230 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
5231
5232         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
5233
5234 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5235
5236         * MessageBox.cs: Prevent potential NRE exception.
5237         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
5238
5239 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5240
5241         * MessageBox.cs: Calculate the owner of a messagebox, also make
5242           it topmost. Fixes #78753
5243
5244 2006-08-14  Chris Toshok  <toshok@ximian.com>
5245
5246         * XplatUIX11.cs: A couple of fixes so that metacity will let us
5247         programmatically move windows.  first, set the PPosition hint as
5248         well as the USPosition hint.  Second include some code from pdb
5249         that sets the window type to NORMAL when we set the transient for
5250         hint.  This is because, in the absence of a window type, metacity
5251         thinks any window with TransientFor set is a dialog, and refuses
5252         to let us move it programmatically.  fascists.
5253
5254 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5255
5256         * XplatUIX11.cs: When setting normal hints, take into consideration
5257           an different hints previously set so we don't delete them (fixes #78866)
5258
5259 2006-08-12  Chris Toshok  <toshok@ximian.com>
5260
5261         * ToolBarButton.cs: make Layout return a boolean, if something to
5262         do with the button's layout changed.
5263
5264         * ToolBar.cs:
5265         - add another parameter to Redraw, @force, which all existing
5266           calls set to true.
5267         - make the Layout function return a boolean which is true if the
5268           layout has actually changed.  Redraw now uses this (and @force)
5269           to determine when to invalidate.  At present the only place
5270           where @force can be false is the call from OnResize, when
5271           background_image == null.  So, resizing a toolbar when the
5272           layout doesn't change results in no drawing.
5273
5274 2006-08-12  Chris Toshok  <toshok@ximian.com>
5275
5276         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
5277         the VScrollBar and HScrollbar reversed.  oops.
5278
5279         * DataGrid.cs: fix the logic that assigns sizes to the implicit
5280         scrollbars.  we were assigning them twice (once in
5281         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
5282         therefore causing two scrollbar resizes (and redraws?) to happen
5283         per grid resize.
5284
5285 2006-08-12  Chris Toshok  <toshok@ximian.com>
5286
5287         * ToolBarButton.cs: redraw the entire button if the theme tells us
5288         to.
5289
5290         * Theme.cs: add ToolBarInvalidateEntireButton.
5291
5292         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
5293         buttons, just the border.
5294
5295         * ThemeNice.cs: redraw the entire toolbar button since we need to
5296         draw the highlight image.
5297
5298         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
5299         we need to redraw the entire button (not just the border).
5300
5301 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5302
5303         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
5304           for vertical bars. Fixes the mismatches shown by #78513
5305
5306 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
5307
5308         * FileDialog.cs: If a saved/remembered path doesn't exist
5309           anymore, fall back to "Desktop".
5310
5311 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5312
5313         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
5314           parent. It's apparently legal to not have one
5315         * XplatUIX11.cs:
5316           - SetZOrder: Don't try to set Z-Order on an unmapped window
5317           - CreateWindow: 0,0 are legal coordinates for a window. don't move
5318             it unless the coordinates are negative
5319
5320 2006-08-10  Mike Kestner  <mkestner@novell.com>
5321
5322         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
5323         when setting to null per msdn docs.  Fixes #78854.
5324
5325 2006-08-10  Chris Toshok  <toshok@ximian.com>
5326
5327         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
5328         flickering by setting a clip rectangle on the Graphics when we
5329         need to redraw just a particular menuitem.  Also, rename "OnClick"
5330         to "OnMouseDown" to reflect what it actually is.
5331         
5332         * Form.cs: track the OnMouseDown change.
5333
5334 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
5335
5336         * CommonDialog.cs: Properly inherit the CreateParams from the form
5337           and only change what we need. Fixes #78865
5338
5339 2006-08-10  Chris Toshok  <toshok@ximian.com>
5340
5341         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
5342         flickering in flat mode (and most of the flickering in general) by
5343         only invalidating the button border (and not the entire rectangle)
5344         when the state changes.  A couple of cases still flicker:
5345         ToggleButtons, and the dropdown arrow case when the user mouse
5346         ups.
5347
5348 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
5349
5350         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
5351           for german keyboards. Numlock state shouldn't affect the behaviour
5352           of the Del key. Fixes bug #78291.
5353
5354 2006-08-10  Chris Toshok  <toshok@ximian.com>
5355
5356         * ListControl.cs: remove the items.Clear line from BindDataItems,
5357         as this is the first thing done by both subclasses in their
5358         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
5359         passed -1, refresh the list.  This gets databinding working when
5360         the datasource is set on the list before the datasource is
5361         populated (as in wf-apps/ReportBuilder.)
5362
5363         * ComboBox.cs: remove the argument to BindDataItems.  This call
5364         should really go away, and be initiated by the ListControl code.
5365
5366         * ListBox.cs: same.
5367
5368 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5369
5370         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
5371           if no data is in the document when the control is displayed
5372
5373 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
5374
5375         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
5376           yes (fixes #78806)
5377         * TextControl.cs: 
5378           - PositionCaret: Allow positioning of caret but don't call methods 
5379             requiring a handle if the window isn't created yet
5380           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
5381           - owner_HandleCreated: Don't position the caret, just update it's 
5382             location. User might have already set a different position
5383
5384 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5385
5386         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
5387           windows. Screws up the returned coordinates for child windows. 
5388           Fixes #78825. I'm hoping this doesn't break something, since the
5389           code was explicitly put in 8 months ago, but no bug was attached.
5390           Menus still seem to work properly.
5391
5392 2006-08-08  Chris Toshok  <toshok@ximian.com>
5393
5394         * DataGrid.cs: make BeginInit/EndInit actually do what they're
5395         supposed to do - delay data binding until the EndInit call.  Also,
5396         make the table style collection's CollectionChangeAction.Refresh
5397         work properly.
5398
5399         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
5400         (with action = Refresh) when a consituent table's MappingName is
5401         changed.
5402
5403 2006-08-08  Chris Toshok  <toshok@ximian.com>
5404
5405         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
5406         Invalidate, since changing the text can change the size of the all
5407         toolbar buttons.
5408
5409 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5410
5411         * Form.cs (AddOwnedForm): Still need to add the form to our listif
5412           we don't have it yet
5413
5414 2006-08-08  Chris Toshok  <toshok@ximian.com>
5415
5416         * PrintControllerWithStatusDialog.cs: don't .Close() the status
5417         dialog, as this causes X errors later on, since we actually
5418         destroy the window.  Instead, .Hide() it.
5419
5420 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5421
5422         * ComboBox.cs: Added focus reflection for popup window
5423         * XplatUIX11.cs: 
5424           - Removed transient setting for non-app windows for now, not sure it
5425             was needed
5426           - Fixed logic checking if we have captions when deciding 
5427             override_redirect, WS_CAPTION is two bits and a 0 check was not
5428             sufficient
5429           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
5430             complicated
5431         * Form.cs: 
5432           - AddOwnedForm: Don't just add the form to the list, call the property
5433             to ensure the driver is informed about the ownership as well
5434           - CreateHandle: Set the TopMost status in the driver if we have an owner
5435         * XplatUI.cs: Fixed debug statement
5436
5437 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
5438         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5439           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
5440           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
5441           TrackBarRenderer.cs: Make constructor private.
5442         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
5443         * ProfessionalColorTable.cs: Make properties virtual.
5444
5445 2006-08-06  Duncan Mak  <duncan@novell.com>
5446
5447         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
5448         is not changing.
5449
5450 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5451         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5452           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
5453           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
5454           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
5455           Initial import of new 2.0 classes.
5456
5457 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5458         * Application.cs: Add 2.0 VisualStyles properties.
5459
5460 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5461         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
5462           XplatUIX11.cs: Create property to allow access to existing private
5463           variable "themes_enabled"
5464
5465 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5466
5467         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
5468         file size, as otherwise our class libraries fail using windows. Fixes
5469         bug #78759.
5470
5471 2006-08-04  Jackson Harper  <jackson@ximian.com>
5472
5473         * Form.cs:
5474         * XplatUIX11.cs: Move the toolwindow window manager creation into
5475         the X11 driver, this way on win32 we can let windows create/handle
5476         the toolwindows.
5477
5478 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5479
5480         * PrintDialog.cs: Remove some redundant checks, add some others,
5481         clean some code, and move the focus to the text boxes when the
5482         values are incorrect.
5483
5484 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
5485
5486         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
5487
5488 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5489
5490         * NumericUpDown.cs: Setting the Minimum and Maximum is now
5491           handled correctly. Fixes bug #79001.
5492
5493 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5494
5495         * PrintDialog.cs: The "Copies" numeric up down must have
5496         set the Minimum property to 1; only if the value is bigger
5497         than 1, activate "Collate" check box. This is the behaviour of .Net.
5498         Also modify the Document elements only if it is not null.
5499
5500 2006-08-03  Jackson Harper  <jackson@ximian.com>
5501
5502         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
5503         length. (We have a larger array then actual node count).
5504                 
5505 2006-08-03  Jackson Harper  <jackson@ximian.com>
5506
5507         * ComboBox.cs: Don't show selection by default.
5508         - The SelectAll isn't needed here, since the focus code should do
5509         that
5510         - DDL style lists to manual selection drawing, so when they
5511         get/lose focus they have to invalidate.
5512
5513 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
5514
5515         * TextBoxBase.cs: Don't always show all selections by default.
5516
5517 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
5518         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
5519           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
5520           Fixed various typos.
5521
5522 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5523
5524         * Control.cs: Removing the controls in a ControlCollection with
5525           Clear now hides the controls as expected. Fixes bug #78804. 
5526
5527 2006-08-03  Jackson Harper  <jackson@ximian.com>
5528
5529         * Control.cs: Revert previous focus patch, it breaks reflector.
5530
5531 2006-08-03  Jackson Harper  <jackson@ximian.com>
5532
5533         * ComboBox.cs: Cleanup selection and focus with the combobox.
5534         This also eliminates some duplicated keyboard code, since now
5535         everything is handled by the main class.
5536         - Make list selection work on mouse up instead of down, to match
5537         MS.
5538
5539 2006-08-02  Jackson Harper  <jackson@ximian.com>
5540
5541         * Control.cs: Setting focus needs to go through the whole
5542         selection mechanism.
5543
5544 2006-08-02  Chris Toshok  <toshok@ximian.com>
5545
5546         * PrintPreviewDialog.cs: change MinimumSize to use
5547         base.MinimumSize so it works.
5548
5549 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
5550
5551         * TextControl.cs:
5552           - UpdateCaret: Added sanity check in case caret isn't defined yet
5553           - Line.Delete: Now updating selection and caret markers if we're
5554             transfering a node (Properly fixes #78323)
5555           - SetSelectionEnd: Added sanity check
5556         * TextBoxBase.cs: Removed broken attempt to fix #78323
5557
5558 2006-08-01  Chris Toshok  <toshok@ximian.com>
5559
5560         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
5561         Close() call is handled in Form, not here.
5562
5563 2006-08-01  Chris Toshok  <toshok@ximian.com>
5564
5565         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
5566         layout/rendering.
5567
5568         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
5569         for sizes < 100% zoom.  The code now aggressively attempts to keep
5570         from calling document.Print (), and tries not to use the scaling
5571         g.DrawImage whenever possible (it still does if you scale to >
5572         100%, since usually that involves huge images).
5573
5574         * PrintPreviewControl.cs: hook up the close button.
5575
5576 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
5577         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
5578           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
5579           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
5580           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
5581           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
5582           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
5583           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
5584           Removed [Serializable] for 2.0 Event Handlers.
5585
5586 2006-07-31  Jackson Harper  <jackson@ximian.com>
5587
5588         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
5589         * TextControl.cs: Uncomment out the body of this method.
5590
5591 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
5592
5593         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
5594           standard cursors.
5595
5596 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5597
5598         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
5599           that embed TextBox and need selections visible even if textbox is not
5600           focused to enforce that behaviour.
5601         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
5602           selection drawing
5603
5604 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5605
5606         * TextControl.cs:
5607           - Added new SetSelectionStart/SetSelectionEnd overloads
5608           - Fixed viewport width assignment to be accurate
5609           - Adjusted alignment line shift calculations to allow cursor on right
5610             aligned lines to be always visible at the right border (like MS)
5611         * TextBoxBase.cs:
5612           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
5613           - TextBoxBase_SizeChanged: recalculating canvas on size changes
5614           - CalculateScrollBars: Use ViewPort size instead of window size, to
5615             properly consider space occupied by the border and scrollbars 
5616             (Fixes #78661)
5617           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
5618             calculations; no longer leaves artifacts
5619           - CaretMoved: Adjusted window scrolling to match MS and fixed several
5620             calculation bugs (Still missing right/center align calculations)
5621
5622 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
5623
5624         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
5625           use of both scroll rect and clip rect, as they do the same.
5626
5627 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5628
5629         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
5630           in the event handler (fixes #78912)
5631
5632 2006-07-31  Chris Toshok  <toshok@ximian.com>
5633
5634         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
5635         grid.ListManager.Count, since grid.ListManager might be null.
5636         This of course begs the question "why are we drawing rows for a
5637         grid with no list manager (and therefor no rows)?"  Fixes the
5638         crash in bug #78929.
5639
5640 2006-07-31  Chris Toshok  <toshok@ximian.com>
5641
5642         * RelatedPropertyManager.cs: Don't always chain up to the parent
5643         ctor.  instead, call SetDataSource if the parent's position is !=
5644         -1.  Fixes the crash in #78822.
5645
5646 2006-07-31  Chris Toshok  <toshok@ximian.com>
5647
5648         * DataGrid.cs (get_ListManager): use field instead of property
5649         accessors for datasource and datamember.
5650         (RowsCount): make internal again.
5651         (OnMouseDown): end edits before resizing columns/rows.
5652         (OnMouseUp): restart edits after resizing columns/rows.
5653
5654 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
5655
5656         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
5657           This fixes the situation where the last set cursor is displayed
5658           whenever the mouse is over scrollbars.
5659
5660 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5661
5662         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
5663         Document properties, as well as initial values.
5664
5665 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
5666
5667         * XplatUIWin32.cs (SetBorderStyle): Setting both border
5668           and ClientEdge results in a 3-pixel border, which is
5669           wrong.
5670
5671 2006-07-28  Jackson Harper  <jackson@ximian.com>
5672
5673         * TreeNodeCollection.cs: Fix the clear method.
5674         - Fix the Shrink also
5675
5676 2006-07-27  Jackson Harper  <jackson@ximian.com>
5677
5678         * TreeView.cs: Make sure the visible order is computed when we
5679         attempt to size the scrollbars (for trees that mess with the
5680         scrolling when they shouldn't.
5681         - Make sure to give the scrollbars valid values.
5682
5683 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5684
5685         * XplatUIX11.cs: Move motion compression code to where it
5686           has less performance impact
5687
5688 2006-07-26  Jackson Harper  <jackson@ximian.com>
5689
5690         * UpDownBase.cs: When the control is selected make the child
5691         controls non selectable, so that a click on them won't do a
5692         focus/unfocus cycle.
5693         - Don't give focus to the text box when the spinner is selected.
5694         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
5695
5696 2006-07-26  Chris Toshok  <toshok@ximian.com>
5697
5698         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
5699         satisfied with this solution.  If the bitmaps are small, we should
5700         just cache them in the PrintPreviewDialog and draw them here.
5701         Also, the layout is broken for the 2-up and 3-up cases.
5702
5703         * Theme.cs: add PrintPReviewControlPaint.
5704
5705         * PrintPreviewDialog.cs: first pass implementation.
5706
5707         * PrintPreviewControl.cs: first pass implementation.  No
5708         scrollbars yet.
5709
5710         * PrintDialog.cs: only validate fields if that particular portion
5711         of the UI is enabled.  Also, set the document's controller to a
5712         PrintControllerWithStatusDialog wrapping the document's print
5713         controller.
5714
5715         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
5716         bring up a SaveFileDialog (i hope we don't want to match the
5717         behavior of the crappy windows file entry) and set the
5718         PrinterSettings.PrintFileName accordingly.
5719
5720 2006-07-26  Jackson Harper  <jackson@ximian.com>
5721
5722         * ContainerControl.cs: Add a field that disables auto selecting
5723         the next control in a container when the container is activated.
5724         * UpDownBase.cs: Don't select the text box when the up down is
5725         selected.
5726
5727 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5728
5729         * XEventQueue.cs: Added methods for peeking (used for compression
5730           of successive events)
5731         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
5732           mouse move events (fixes #78732)
5733
5734 2006-07-25  Jackson Harper  <jackson@ximian.com>
5735
5736         * UpDownBase.cs: Use an internal class for the textbox so that we
5737         can control focus.  the updown control should always have focus,
5738         if either the text area or the buttons are clicked.
5739         - Send the key messages to the textbox, since it never actually
5740         has focus
5741         - Activate and decativate the textbox caret.
5742
5743 2006-07-24  Jackson Harper  <jackson@ximian.com>
5744
5745         * Control.cs: Use the directed select when selecting a control,
5746         this way the container controls override will get called and the
5747         whole ActiveControl chain will get triggered.  TODO: probably need
5748         to make sure this gets done everywhere instead of the old
5749         Select(Control).
5750         * ContainerControl.cs: Implement the directed Select method to
5751         find and activate the correct child control.    
5752         
5753 2006-07-22  Mike Kestner  <mkestner@novell.com>
5754
5755         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
5756         menu handling code so that clicks without a grab work too.
5757         [Fixes #78914]
5758
5759 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
5760
5761         * FileDialog.cs: Enable the BackButton when dirstack has one element.
5762           Added some small optimizations.
5763
5764 2006-07-21  Matt Hargett  <matt@use.net>
5765
5766         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
5767
5768 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
5769
5770         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
5771           tests pass and match MS in some strange border cases.
5772
5773 2006-07-21  Chris Toshok  <toshok@ximian.com>
5774
5775         * ThemeWin32Classic.cs: handle drawing of the relation links and
5776         parent row buttons.
5777
5778         * Theme.cs: change args to DataGridPaintParentRow.
5779
5780         * DataGrid.cs: Don't use controls for the relation links and
5781         parent buttons, so we have to handle all their interactions in
5782         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
5783         when we're navigating through child tables, so we can reinstate
5784         selection, expanded state, current cell, etc.
5785
5786 2006-07-20  Chris Toshok  <toshok@ximian.com>
5787
5788         * ToolBar.cs: When we redraw a button, for whatever reason,
5789         there's no reason to redraw the entire toolbar.  Also, don't call
5790         Control.Refresh from within Redraw, as it's much heavier than
5791         Invalidate (which is really what we want).
5792
5793 2006-07-20  Chris Toshok  <toshok@ximian.com>
5794
5795         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
5796         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
5797         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
5798         traces from within a debug IBindingList datasource
5799         (in mono/winforms/datagrid) for *days*, I've finally gotten things
5800         to work in a similar fashion.
5801
5802 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5803
5804         * ListBox.cs: Don't call Sort () when setting 
5805         the Sorted property to false (avoid an unnecessary sort).
5806
5807 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5808
5809         * ListControl.cs: DataSource should throw an ArgumentException
5810         instead of a normal exception when the argument is not of the 
5811         correct type.
5812
5813 2006-07-20  Mike Kestner  <mkestner@novell.com>
5814
5815         * Control.cs: add InternalPreProcessMessage to allow us to steal
5816         key events before MWF gets its paws on them.  Adapted from a
5817         suggestion by eno.
5818         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
5819         up/down/left/right navigation. Override the new internal control
5820         method to steal the events since they never make it to WndProc.
5821         * ToolBarButton.cs: don't worry about pushed when setting hilight
5822         since the drawing code prefers pushed to hilight. Invalidate on 
5823         Hilight changes. Fixes #78547 and #78525.
5824
5825 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5826
5827         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
5828           the canvas size. Fixes #78868
5829
5830 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
5831
5832         * Splitter.cs: Track requested split position until first layout
5833           is performed. Fixes #78871
5834
5835 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5836
5837         * Application.cs: Removed code that forces 1.x for the version
5838           number if the version started with 0. Not sure why that code was
5839           there and I couldn't find any bugs that indicated we needed it.
5840           Fixes #78869
5841
5842 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
5843
5844         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
5845           ResetDefaults(), just write some output to the console until it's
5846           implemented. Fixes bug #78907 for now. Eliminated two warnings.
5847
5848 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
5849
5850         * PropertyGridView.cs: set StartPosition of drop down forms
5851         so they appear in correct initial spot.  Fixes #78190.
5852
5853 2006-07-19  Mike Kestner  <mkestner@novell.com>
5854
5855         * ThemeWin32Classic.cs: use parent background color when drawing
5856         flat toolbars.  Restructure the conditionals to make sure non-flat
5857         non-Divider toolbars are filled too.  Fixes #78837.
5858
5859 2006-07-19  Mike Kestner  <mkestner@novell.com>
5860
5861         * ListBox.cs: Sort on collection changes even if the handle
5862         isn't created yet.  Fixes #78813.
5863
5864 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5865
5866         * ListControl.cs: DisplayMember should never be null,
5867         and now we assign String.Empty when null is passed to it (this
5868         is the .Net way).
5869
5870 2006-07-17  Mike Kestner  <mkestner@novell.com>
5871
5872         * ListViewItem.cs: restructure Font and subitem Font handling 
5873         to hold a specific font and refer back to owner on null.
5874         Fixes #78761.
5875
5876 2006-07-17  Mike Kestner  <mkestner@novell.com>
5877
5878         * ToolBar.cs: bandaid for side-effect of previous patch which was
5879         discarding explicit heights for non-AutoSize toolbars.  Need to
5880         extend my format tester to deal with AutoSize=false. Fixes #78864.
5881
5882 2006-07-15  Jackson Harper  <jackson@ximian.com>
5883
5884         * LabelEditTextBox.cs:
5885         * TreeView.cs: Use a new LabelEdit class for node editing, this
5886         class automatically 'closes' itself when it gets the enter key or
5887         loses focus.
5888         - Use the client rectangle when setting the trees scrollbars, so
5889         border style is taken into account.
5890         
5891 2006-07-14  Jackson Harper  <jackson@ximian.com>
5892
5893         * TreeNode.cs:
5894         * TreeView.cs: Make the editing work similar to MSs, firing the
5895         events correctly and ending edits correctly.
5896
5897 2006-07-14  Mike Kestner  <mkestner@novell.com>
5898
5899         * ToolBarButton.cs:
5900         * ToolBar.cs: layout restructuring and redraw enhancements to support
5901         formatting changes gracefully, like setting TextAlign, ImageList, 
5902         ButtonSize, and Appearance.  Handles explicit button sizing quirks
5903         of the MS controls.  Things like flat toolbars ignoring button size
5904         but becoming constant sized at the largest button's size.  Normal
5905         toolbars with an image set cannot be shrunk smaller than the image,
5906         but text can be clipped/ignored.
5907         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
5908         is zero.  Seems like DrawString should be smart enough to not put
5909         anything on screen though. Also trim labels and ellipsize at the char
5910         boundary, not word.
5911         Fixes #78711 and #78483.
5912
5913 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5914
5915         * FolderBrowserDialog.cs: Disable "New Folder" button and
5916           "New Folder" contextmenu menuitem if a folder like "My Computer"
5917           is selected.
5918
5919 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5920
5921         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
5922         * FolderBrowserDialog.cs:
5923           - Use MWFConfig to store and read size and position settings
5924           - Added code to create a new folder (button or context menu).
5925             Use TreeView labeledit to change the name of the new folder.
5926
5927 2006-07-14  Jackson Harper  <jackson@ximian.com>
5928
5929         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
5930         when the tree is scrolled we end editing.
5931
5932 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5933
5934         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
5935           Down arrows
5936
5937 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
5938
5939         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
5940         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
5941         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
5942         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
5943         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
5944         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
5945         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
5946         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
5947         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
5948         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
5949         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
5950         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
5951         ListViewItemSelectionChangedEventHandler.cs,
5952         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
5953         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
5954         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
5955         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
5956         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
5957         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
5958         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
5959         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
5960         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
5961         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
5962         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
5963         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
5964         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
5965         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
5966         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
5967         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
5968         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
5969         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
5970         WebBrowserNavigatingEventHandler.cs, 
5971         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
5972
5973 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
5974
5975         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
5976         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
5977         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
5978         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
5979         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
5980         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
5981         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
5982         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
5983         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
5984         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
5985         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
5986         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
5987         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
5988         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
5989         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
5990         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
5991         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
5992         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
5993         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
5994         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
5995         ListViewItemStates.cs, MaskFormat.cs: Added
5996
5997 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
5998
5999         * PropertyGridView.cs: Fix keyboard navigation of drop down.
6000         Patch from eno for bug 78558.
6001         
6002 2006-07-13  Jackson Harper  <jackson@ximian.com>
6003
6004         * TreeView.cs: When an edit is finished make sure that the
6005         selected node is visible.
6006         - When setting the top/bottom use the scrollbars is_visible, so
6007         everything will be set correctly even if the tree isn't visible
6008         yet.
6009
6010 2006-07-13  Jackson Harper  <jackson@ximian.com>
6011
6012         * ComboBox.cs: Revert the item->index part of my previous patch.
6013         * TreeView.cs: Use LostFocus instead of Leave for detecting when
6014         the edit box has lost focus (duh).
6015         - Just make the edit box not visible when we get return, that will
6016         take the focus, which will call EndEdit
6017         * TreeNode.cs When we start editing, notify the treeview.
6018
6019 2006-07-12  Jackson Harper  <jackson@ximian.com>
6020
6021         * ComboBox.cs: Clear out old items before setting the item list.
6022         This prevents databound controls from having their items added
6023         twice.
6024         - Switch the combobox to use indices whereever possible instead of
6025         using Item's.  This allows usto navigate through lists that have
6026         more then one item with the same string value (ie a, b, b, a).
6027         - Scroll the listboxes scrollbar when a non visible item is
6028         highlighted
6029         - Allow keypress to cycle through all the possible values. For
6030         example if you have b1, b2, b3 and hold down the B key all the
6031         values will be cycled through.
6032         
6033 2006-07-12  Jackson Harper  <jackson@ximian.com>
6034
6035         * TextBoxBase.cs:
6036         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
6037         this using the internal methods.
6038         * Control.cs: Add OnGotFocusInternal.  A new method that allows
6039         controls to "override" OnGotFocus and change focus behavior if
6040         needed.
6041         - Same thing for LostFocus
6042         * ComboBox.cs: Pass off focus to the text control properly.
6043
6044 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
6045
6046         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
6047         * FolderBrowserDialog.cs: Almost a complete rewrite.
6048           - Better support for Environment.Specialfolders
6049           - Added support for MWFVFS
6050           - Made setting SelectedPath work
6051
6052 2006-07-12  Jackson Harper  <jackson@ximian.com>
6053
6054         * Control.cs: Optimze getting all the controls.
6055
6056 2006-07-11  Jackson Harper  <jackson@ximian.com>
6057
6058         * ContainerControl.cs: Override SETFOCUS in the container control,
6059         so that it is not selected on mouse click.
6060
6061 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
6062
6063         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
6064           Hopefully we will have a better way once all of focus is complete.
6065
6066 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
6067
6068         * ThemeWin32Classic.cs: Commented out some debug code and fixed
6069           a compile error with csc.
6070
6071 2006-07-11  Jackson Harper  <jackson@ximian.com>
6072
6073         * Control.cs: When hiding a control only select the next control
6074         if the current control was focused.
6075         - Don't handle enter/leave when setting/killing focus, this is
6076         done by the container control.
6077         - Remove is_selected, it's not needed anymore.
6078         - Add utility methods for selecting a child control, and for
6079         firing the Enter/Leave events.
6080         * ContainerControl.cs: When a control is activated fire the
6081         enter/leave events.
6082         - Don't wrap when processing the tab key, so that focus can be
6083         moved outside of the container.
6084         - Use the correct active control
6085
6086 2006-07-11  Jackson Harper  <jackson@ximian.com>
6087
6088         * ComboBox.cs: Remove some debug code that was blinding me.
6089         * UpDownBase.cs: These controls actually aren't implicit, they are
6090         visible to the user.
6091
6092 2006-07-10  Chris Toshok  <toshok@ximian.com>
6093
6094         * DataGrid.cs: move back to the is_adding boolean field.  god i
6095         hate this is_editing/is_adding/is_changing stuff.
6096
6097 2006-07-10  Chris Toshok  <toshok@ximian.com>
6098
6099         * DataGridTableStyle.cs: just check if the property type is bool.
6100         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
6101         Don't use CanRenderType.
6102
6103         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
6104         if our text == NullText.  Remove CanRenderType.
6105
6106         * DataGridBoolColumn.cs: nuke CanRenderType.
6107
6108         * DataGrid.cs: reenable some code to end the current edit inside
6109         of set_CurrentCell.  This fixes the other 1.1.16 regression.
6110         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
6111         Also, remove the visible_row_count arg from CalcRowHeaders, since
6112         we don't need to worry about the actual height of the area.
6113
6114 2006-07-10  Chris Toshok  <toshok@ximian.com>
6115
6116         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
6117         mode, just return.
6118
6119         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
6120         the real sense of the IsInEditOrNavigateMode property (true =
6121         navigate, false = edit).  Also, update OnKeyPress to reflect this.
6122
6123         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
6124         column style exists, we still need to set its property descriptor
6125         to match up with our list manager.
6126
6127 2006-07-10  Chris Toshok  <toshok@ximian.com>
6128
6129         * ThemeWin32Classic.cs: implement the new row/header painting
6130         approach.  The parent row painting will likely go away and
6131         replaced with label controls, but the rest seems to work ok (and
6132         efficiently).
6133
6134         * Theme.cs: change the way we draw datagrid rows.  we don't draw
6135         the row headers as a block now.  Instead we draw them in the
6136         normal draw-row loop.  Add some calls for drawing parent rows and
6137         relation rows.
6138
6139         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
6140         a default table style.  Set the defaults from ThemeEngine.Current,
6141         not SystemColors.  Fix lots of misc issues with property setters.
6142
6143         * DataGrid.cs: move loads of style information out of this class
6144         as it's being duplicated with DataGridTableStyle.  keep track of a
6145         special DataGridTableStyle for the properties we used to mirror
6146         here.  Switch all the style properties to access this table style
6147         instead of instance fields of this class.  Also add a internal
6148         class to represent parent rows (more needs to be stored here, like
6149         the selection state from the parent table, as well as the
6150         expansion state.)  Also, for datasources with relations, do the
6151         right thing for collapse/expand, and add support for the
6152         navigation/parent row buttons.
6153
6154         Lastly, fix the crash in the 1.1.16 build.
6155
6156         * GridTableStylesCollection.cs: make the explicit interface
6157         implementations call the class's methods as opposed to duplicating
6158         them.
6159
6160         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
6161         0 so the text doesn't jump around when we move the cursor.
6162
6163 2006-07-10  Jackson Harper  <jackson@ximian.com>
6164
6165         * TextBoxBase.cs:
6166         * ListBox.cs: Match MS's ToString (this makes debugging focus
6167         stuff infinitely easier).
6168
6169 2006-07-10  Jackson Harper  <jackson@ximian.com>
6170
6171         * Control.cs (SelectNextControl): When checking the control's
6172         parent use this instead of ctrl.parent so that null can be passed
6173         to SelectNextControl. (I have unit tests for this).
6174         - Remove unused var.
6175
6176 2006-07-10  Chris Toshok  <toshok@ximian.com>
6177
6178         * CurrencyManager.cs: correct one regression, the removal of the
6179         finalType field.  Also, add a MonoTODO on CanAddRows, implement
6180         Refresh() correctly, and fix some event emission in
6181         ListChangedHandler.
6182
6183 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
6184
6185         * FileDialog.cs: Don't use brackets for new folders if they exist
6186           under *nix. Instead use -(number of existing folders +1).
6187
6188 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
6189
6190         * FileDialog.cs:
6191           - Fixed really nasty bug #78771
6192           - Don't block the whole GUI when reading directories with a lot of
6193             entries. Use an other thread instead and call BeginInvoke to
6194             update the ListView in MWFFileView
6195
6196 2006-07-07  Chris Toshok  <toshok@ximian.com>
6197
6198         * Control.cs (Dispose): release any Capture when disposing.
6199
6200 2006-07-07  Chris Toshok  <toshok@ximian.com>
6201
6202         * LinkLabel.cs (Select): if we chain up to the parent, set
6203         focused_index to -1 so we'll search for the first available link
6204         the next time the user tabs into us.  Also, if the direction is
6205         backward and focused_index == -1, start the search from the last
6206         element.
6207
6208 2006-07-07  Chris Toshok  <toshok@ximian.com>
6209
6210         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
6211         is beyond the end of the text, don't do anything.
6212         (CreateLinkPieces): set our ControlStyles.Selectable based on
6213         whether or not we have any links.
6214         (Link.Invalidate): use a loop instead of foreach.
6215         (Link.set_Start): null out owner.sorted_links so it'll be
6216         recreated by CreateLinkPieces.
6217
6218 2006-07-06  Chris Toshok  <toshok@ximian.com>
6219
6220         * LinkLabel.cs: revert the SetStyle change.
6221
6222 2006-07-06  Chris Toshok  <toshok@ximian.com>
6223
6224         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
6225         (OnEnableChanged): s/Refresh/Invalidate
6226         (OnGotFocus): if we have a focused index already, refocus it (so
6227         if we mouse out/in to the window it'll focus the right link).
6228         (OnKeyDown): move the tab handling out of here.
6229         (OnLostFocus): don't set focused_index to -1, so we can refocus it
6230         when we lose focus.
6231         (OnMouseDown): don't Capture here - Control handles it.  Also,
6232         focus the active link.
6233         (OnMouseUp): don't deal with Capture.
6234         (OnPaintBackgroundInternal): remove.
6235         (OnTextAlignChanged): CreateLinkPieces before calling the
6236         superclass's method.
6237         (OnTextChanged): call CreateLinkPieces before calling superclass's
6238         method.
6239         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
6240         move around.
6241         (Select): implement this, moving the selection between different
6242         links, and call parent.SelectNextControl if we don't have another
6243         link to focus in the given direction.
6244         (CreateLinkPieces): call Invalidate instead of Refresh.
6245         
6246 2006-07-06  Chris Toshok  <toshok@ximian.com>
6247
6248         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
6249         new LinkLabel internals.
6250
6251         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
6252         over pieces looking for active/focused/etc links.  also, deal with
6253         runs of text (and links) with embedded \n's in them, and use
6254         MeasureCharacterRanges instead of MeasureString to figure out the
6255         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
6256         two-step.
6257
6258 2006-07-04  Jackson Harper  <jackson@ximian.com>
6259
6260         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
6261         XKB or key auto repeat, do it manually.  Without key auto repeat,
6262         when a key is held down we get key press, key release, key press,
6263         key release, ... with auto repeat we get key press, key press, key
6264         press ..., and then a release when the key is actually released.
6265
6266 2006-07-03  Jackson Harper  <jackson@ximian.com>
6267
6268         * TabControl.cs:
6269         * ThemeWin32Classic.cs: Tabs do not obey normal background color
6270         rules, they are always control color regardless of the background
6271         color.
6272
6273 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
6274
6275         * FileDialog.cs: Added internal class MWFConfig.
6276           Removed Registry support and replaced it with support for the new
6277           MWFConfig class. See MWFConfig comments for more information.
6278
6279 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
6280
6281         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
6282           rectangle. Added some patches from eno from bug #78490 and fixed
6283           the arrow position for small up and down CPDrawScrollButtons.
6284
6285 2006-06-30  Jackson Harper  <jackson@ximian.com>
6286
6287         * InternalWindowManager.cs: Remove some debug code.
6288         * Form.cs: When an MdiParent is set to null, the window is
6289         "detatched" and becomes a normal window.
6290         * MdiClient.cs: Don't bring the new child form to the front until
6291         it is activated (setting it as active does this), this makes the
6292         previously active forms titlebar get redrawn as inactive.
6293
6294 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
6295
6296         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
6297           with later controls
6298
6299 2006-06-29  Mike Kestner  <mkestner@novell.com>
6300
6301         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
6302         arrow in keynav state.  Fixes #78682.
6303
6304 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6305
6306         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
6307           order (fixes #78393)
6308
6309 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
6310
6311         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
6312           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
6313           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
6314           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
6315           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
6316           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
6317           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
6318           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
6319           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
6320           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
6321           enumerations (FlagsAttribute, SerializableAttribute, added/removed
6322           values)
6323
6324 2006-06-28  Mike Kestner  <mkestner@novell.com>
6325
6326         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
6327
6328 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6329
6330         * PropertyGrid.cs,
6331           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
6332           item lines from other area (It also makes BackColor consistent and
6333           compatible with .NET). Fixed bug #78564.
6334
6335 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
6336
6337         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
6338         Patch from Eno for #78555.
6339
6340 2006-06-27  Chris Toshok  <toshok@ximian.com>
6341
6342         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
6343
6344         * DataGridColumnStyle.cs: same.
6345
6346         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
6347         
6348         * DataGridDrawingLogic.cs: nuke.
6349
6350 2006-06-27  Chris Toshok  <toshok@ximian.com>
6351
6352         * DataGridTableStyle.cs: clean up the constructors, and build the
6353         list of child relations for this table.  I have no idea if this is
6354         where we should be doing it (it probably isn't), but since we're
6355         already iterating over the properties..
6356
6357         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
6358         struct and array for keeping track of row information, similar to
6359         what's shown in a hack on
6360         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
6361
6362         * Theme.cs: be consistent about the naming of DataGrid methods,
6363         prefering ColumnWidths and RowHeights over columnsWidths and
6364         RowsHeights.
6365
6366         * ThemeWin32Classic.cs: same, and also add support for variable
6367         sized rows (and the +/- expansion icons for related rows).
6368
6369 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6370
6371         * TextBoxBase.cs: Applied Eno's patch from #78660
6372
6373 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6374
6375         * Form.cs (ScaleCore): We don't want to scale our form if it's
6376           state is minimized or maximized, but we still need to scale our
6377           child windows. Also, added try/finally block to ensure layout
6378           gets reset (Fixes #78697)
6379
6380 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6381
6382         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
6383
6384 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6385
6386         * Form.cs: Fixed c+p error and added check to resize form if minimum
6387           size is bigger than current size (Fixes #78709)
6388
6389 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
6390
6391         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
6392
6393 2006-06-26  Mike Kestner  <mkestner@novell.com>
6394
6395         * ComboBox.cs: only do Keypress handling in the combo when there  
6396         are items in the collection. Fixes #78710.
6397
6398 2006-06-26  Chris Toshok  <toshok@ximian.com>
6399
6400         * Binding.cs: make this work bi-directionally.  also, clear up
6401         other mixups between Push/Pull Data (e.g. we're supposed to pull
6402         data when validating).
6403
6404         * BindingManagerBase.cs: trim some fully qualified collection
6405         types.
6406
6407         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
6408
6409 2006-06-23  Chris Toshok  <toshok@ximian.com>
6410
6411         * PropertyManager.cs: It appears (according to the unit tests)
6412         that PropertyManager doesn't use
6413         PropertyDescriptor.AddValueChanged to track propery value changes
6414         in its datasource, but uses the same scheme as Binding, where it
6415         looks for a <Property>Changed event and binds to it.
6416
6417         Also, according to the docs, IsSuspended always returns false for
6418         a property manager with a non-null datasource.
6419
6420 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
6421
6422         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
6423           need to update the actual DialogResult. (Fixes #78613)
6424
6425 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
6426
6427         * Form.cs (ShowDialog): Release any captures before running the
6428           new message pump (fixes #78680)
6429
6430 2006-06-22  Mike Kestner  <mkestner@novell.com>
6431
6432         * ListView.cs: Layout column widths properly in details mode even 
6433         if HeaderStyle.None is set.  Fixes #78691.
6434
6435 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
6436
6437         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
6438
6439 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
6440
6441         * Control.cs (ContainsFocus): Using new driver method to get focused
6442           window, instead of trying to use internal tracking var, which can
6443           recursion issues (Fixes #78685)
6444         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
6445           XplatUIWin32.cs: Added GetFocus method to return focused window
6446
6447 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6448
6449         * ColorDialog.cs: when the mouse button is pressed inside the color
6450         matrix, don't let the cursor move out of it until the button is
6451         released, which is the behavior on windows. Changed 'colours' by
6452         'colors' to use the same word consistently.
6453
6454 2006-06-21  Chris Toshok  <toshok@ximian.com>
6455
6456         * DataGrid.cs: add in some basic navigation stuff (navigating to a
6457         child relation and back, using a stack).  Also, remove
6458         GetDataSource and the code that calls it - it's not needed.  Also,
6459         track CurrencyManager.ListName's removal.
6460
6461 2006-06-21  Chris Toshok  <toshok@ximian.com>
6462
6463         * CurrencyManager.cs: push some of the original type checking from
6464         BindingContext.CreateBindingManager to here, and remove some of
6465         the finalType stuff.  Need more tests to make sure I've got the
6466         ListName part right, and we might need more in SetDataSource.
6467
6468         * PropertyManager.cs: add a ctor that takes just the datasource,
6469         and no property name.  Make SetDataSource work with a null
6470         property_name, and make Current return the data_source if the
6471         property descriptor is null.  this makes 'string foo = "hi";
6472         BindingContext[foo].Current' return "hi" as it should.
6473
6474         * RelatedCurrencyManager.cs: make this code more generic - there's
6475         no reason the parent manager has to be CurrencyManager, and
6476         there's no reason to pass the DataRelation.  It suffices to use a
6477         BindingManagerBase and PropetyDescriptor.
6478
6479         * RelatedPropertyManager.cs: make a similar change here.
6480         
6481         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
6482         flower I knew it could be.
6483
6484 2006-06-20  Chris Toshok  <toshok@ximian.com>
6485
6486         * PropertyManager.cs: the PropertyChangedHandler is invoked when
6487         data in the source has changed and we need to update the control,
6488         so s/PullData/PushData.
6489
6490         * CurrencyManager.cs: Refresh is meant to update the control from
6491         data in the datasource.  So, s/PullData/PushData.
6492
6493         * BindingContext.cs: add more ugliness (we weren't handling the
6494         case where data_source = DataTable and data_member = column_name).
6495
6496         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
6497         from the perspective of the datasource.  PullData pulls from the
6498         control, PushData pushes to the control.
6499
6500 2006-06-20  Chris Toshok  <toshok@ximian.com>
6501
6502         * BindingContext.cs: rewrite the CreateBindingManager code to
6503         handle navigation paths more or less properly.  This could
6504         definitely stand some more work, in particular to push the
6505         recursion up to the toplevel.  But that relies on fixes in other
6506         places (System.Data comes to mind).
6507
6508         Also, move to a flat hashtable (and encode the twolevel nature of
6509         the dictionary into the hash key).  This lets us implement the
6510         IEnumerable.GetEnumerator method.
6511
6512         * RelatedCurrencyManager.cs: new class.  Update our view based on
6513         our relation and our parent CurrencyManager's position.
6514
6515         * CurrencyManager.cs: split out some logic from the ctor into
6516         SetView, so it can be called from the new RelatedCurrencyManager
6517         subclass.
6518
6519         * RelatedPropertyManager.cs: new class.  Update our datasource
6520         based on the position of our parent CurrencyManager.
6521
6522         * PropertyManager.cs: split out some logic from the ctor into
6523         SetDataSource, so it can be called from the new RelatedDataSource
6524         subclass.  Also, make the Current getter return the value
6525         of the PropertyDescriptor, not the data_source.
6526
6527         * Binding.cs: no need to duplicate the string splitting code here.
6528
6529 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6530
6531         * Control.cs:
6532           - set_Enabled: OnEnabledChanged is not called if the inherited state 
6533             of the control is not altered, even though  we might be changing the
6534             internal state of the control (#78458)
6535           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
6536             OnEnabledChanged, to allow easy altering of any child window state
6537           - OnEnabledChanged: Added code to enable/disable driver window state
6538           - OnParentEnabledChanged: Instead of firing the event, call 
6539             OnEnabledChanged, which will fire the event and also a) set driver
6540             window state and pass the enabled state to any grandchildren (#78458)
6541
6542 2006-06-19  Jackson Harper  <jackson@ximian.com>
6543
6544         * InternalWindowManager.cs: We don't set the cursor explicitly
6545         thats done via the response to NCHITTESTs.
6546         - Don't need to adjust for titlebar heights anymore, the
6547         coordinates are coming in the correct coordinates now (see peters
6548         last patch).
6549
6550
6551 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6552
6553         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
6554           being translated relative to whole window, instead of client window.
6555           That caused broken offsets on mouseclick (and caused gas for our
6556           InternalWindowManager)
6557
6558 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6559
6560         * TextControl.cs:
6561           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
6562           - Undo(): Added replay of cursor move on DeleteChars action; added
6563             calling Undo() again if a recorded cursor move is invalid (to
6564             ensure that some action is performed on Undo)
6565         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
6566
6567 2006-06-16  Jackson Harper  <jackson@ximian.com>
6568
6569         * MdiClient.cs: Instead of just sizing maximized windows when
6570         there is a resize we also have to adjust the Y of minimized
6571         windows, so they stay pinned to the bottom of the mdi container.
6572         - Eliminate separate tracking of the active control, we can just
6573         get this from the controls collection.
6574         - Paint the decorations for the newly activated titlebar so we get
6575         a pretty blue bar.
6576         * InternalWindowManager.cs:
6577         * ThemeWin32Classic.cs: Minimized windows get all three buttons
6578         even if they are a tool window.
6579         
6580 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6581
6582         * TextControl.cs (Undo): Handle non-existent cursor locations in the
6583           undo buffer, these can happen when text was deleted and the cursor
6584           was recorded first. Since we will also have a recorded cursor
6585           after the delete this is not an issue. (Fixes #78651)
6586
6587 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
6588
6589         * AccessibleObject.cs: Remove dependence on Control.is_selected;
6590           instead properly track control states internally (allows us to
6591           remove is_selected from Control)
6592
6593 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6594
6595         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
6596         whose width is not a multiple of 8.
6597
6598 2006-06-13  Jackson Harper  <jackson@ximian.com>
6599
6600         * MdiClient.cs:  Only maximize the next child if the current one
6601         is maximized.
6602
6603 2006-06-13  Chris Toshok  <toshok@ximian.com>
6604
6605         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
6606         modified.  Also, guard against grid or grid_drawing being null in
6607         Invalidate.
6608
6609         * DataGrid.cs: Reformat tons of getters/setters.  In the
6610         DataMember setter, just call SetNewDataSource instead of
6611         duplicating some of its functionality.  In SetNewDataSource, don't
6612         check ListManager for null, since the property getter creates the
6613         object if needed.
6614
6615         * DataGridTableStyle.cs: don't set TableStyle or call
6616         SetDataGridInternal on the column here, it's done in
6617         GridColumnStylesCollection.Add.
6618
6619         * GridColumnStylesCollection.cs: fix all the explicit interface
6620         implementations to just call our methods.  Nuke AddInternal() and
6621         move the body of it to Add().  Also, add a call to
6622         column.SetDataGridInternal to Add().
6623
6624         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
6625         base()+duplicate code.  Also, use the Format property instead of
6626         format to generate an Invalidate ala MS.  Lastly, create the
6627         textbox here, unconditionally.
6628         (set_Format): call Invalidate.
6629         (get_TextBox): no need to call EnsureTextBox.
6630         (Commit): remove the message box.
6631         (Edit) remove the call to EnsureTextBox.
6632         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
6633         (EnterNullValue): no need to check textbox for null.
6634         (HideEditBox): no need to check textbox for null.
6635         (SetDataGridInColumn): add the textbox to the grid's controls.
6636         (EnsureTextBox): nuke.
6637         
6638 2006-06-13  Jackson Harper  <jackson@ximian.com>
6639
6640         * MdiWindowManager.cs: Hook up to the maximized menus paint event
6641         and redraw the buttons when needed. Unhook when the window is
6642         unmaximized.
6643         * MainMenu.cs: Add an internal Paint event, the mdi window manager
6644         needs this so that it can redraw its buttons when the menu is
6645         repainted.
6646         * InternalWindowManager.cs:
6647         * Form.cs: The method order has changed for DrawMaximizedButtons,
6648         so that it can be a PaintEventHandler.
6649         
6650 2006-06-13  Jackson Harper  <jackson@ximian.com>
6651
6652         * MdiClient.cs: When we close a maximized mdi window, the next mdi
6653         window is activated and maximized, even if it wasn't before.
6654         - When  a new window is activated repaint the decorations of the
6655         old one, so that it no longer has the Active "look" (the blue
6656         titlebar).
6657         * InternalWindowManager.cs: Open up CreateButtons to base classes
6658         so they can recreate the buttons on state changes.
6659         - If a window is maximized give it all three buttons
6660         * MdiWindowManager.cs: Create the titlebar buttons when the state
6661         is changed, this is needed because a toolwindow will not have all
6662         three buttons until it is maximized.
6663
6664 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
6665
6666         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
6667           Fixed bug #78609.
6668
6669 2006-06-12  Jackson Harper  <jackson@ximian.com>
6670
6671         * KeysConverter.cs: Make sure we handle the Ctrl special case
6672         if its the only key.
6673         
6674 2006-06-12  Jackson Harper  <jackson@ximian.com>
6675
6676         * Theme.cs: Add a method to get the size of a managed window
6677         toolbar button.
6678         * InternalWindowManager.cs: Remove the ButtonSize property, this
6679         should be retrieved from the theme.
6680         * MdiWindowManager.cs: Get the button size from the theme
6681         * ThemeWin32Classic.cs: Make the method to get the managed window
6682         titlebar button size public.
6683         - Handle the different button sizes of maximized toolwindows
6684         (should match any maximized window).
6685         - Get the titlebar height from the theme, not the WM (which gets
6686         it from the theme).
6687
6688 2006-06-12  Jackson Harper  <jackson@ximian.com>
6689
6690         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
6691         event down to the mdi window manager.
6692         - Expose some extra stuff to base classes
6693         - Make sure to end the Capture on an NC Mouse up, so that we can
6694         get double clicks properly, and the sizing doens't stick.
6695         - When doing PointToClient contain it in the workable desktop
6696         area, this prevents windows from changing size when the cursor is
6697         pulled outside of the working area while sizing.
6698         * MdiWindowManager.cs: When we get a double click maximize the
6699         window.
6700         - Reset the cursor after handling mode changes.
6701
6702 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
6703
6704         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
6705           current desktop, instead of just assuming a 0, 0 origin. This
6706           is needed for our internal window manager, to know the top
6707           margin of the desktop
6708
6709 2006-06-12  Chris Toshok  <toshok@ximian.com>
6710
6711         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
6712         we need this to get rid of the selected background in the bool
6713         column.
6714         (CancelEditing): move the ConcedeFocus call to above the Abort
6715         call.  Also, set is_changing to false and invalidate the row
6716         header if we were changing before.
6717         (ProcessKeyPreviewInternal): remove, since noone outside this
6718         class calls it anymore.  Roll the code into ProcessKeyPreview.
6719         (EndEdit): remove the internal version.
6720         (InvalidateCurrentRowHeader): make private.
6721
6722         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
6723         Keys.Escape handling (and with it the last call to
6724         DataGrid.EndEdit from outside the class.)
6725
6726
6727 2006-06-12  Chris Toshok  <toshok@ximian.com>
6728
6729         * DataGridTextBox.cs (.ctor): isedit defaults to false.
6730         (OnKeyPress): set isedit to true.
6731         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
6732         already handled by the grid.
6733
6734         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
6735         right.  ugh.
6736         (set_DataSource): SetDataSource always returns true, so stop
6737         putting it in an if statement.
6738         (EndEdit): get rid of some {}'s
6739         (ProcessGridKey): return true in case Keys.Escape.
6740         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
6741         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
6742         PositionChanged, stopped connecting to CurrentChanged.
6743         (GetDataSource): simplify this a bunch.
6744         (SetDataSource): change return type from bool to void.
6745         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
6746         to this, and make sure we don't set ListManager.Position inside
6747         set_CurrentCell.
6748         (OnListManagerItemChanged): if we're passed an actual index,
6749         redraw that row.
6750
6751         * CurrencyManager.cs (set_Position): don't call PullData here.
6752
6753 2006-06-09  Jackson Harper  <jackson@ximian.com>
6754
6755         * TreeNode.cs:  Recalculate the visible order before doing the
6756         Expand/Collapse Below calls, because those calls generate an
6757         expose.
6758         - Reduce calls to the TreeView property, which is mildly expensive
6759         by using a local var.
6760         * Form.cs: Layout the MDI child windows when creating the parent
6761         form.
6762         - Don't use the internal constructor anymore
6763         * MdiClient.cs: use the parent form width/height (if available)
6764         when laying out the child windows, we do this because the
6765         mdiclient isn't docked yet when the initial layout is done.
6766         - Don't need an internal constructor anymore.
6767
6768 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6769
6770         * FileDialog.cs: handle access errors when trying to create a folder
6771         or changing to a directory. No need to initialize out parameters.
6772
6773 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6774
6775         * FileDialog.cs: Append a number when creating a new folder if the
6776           folder already exists (use parenthesis instead of square brackets)
6777
6778 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6779
6780         * FileDialog.cs:
6781           - Disabled registry support for windows and added better registry
6782             error checking for other systems (need to investigate why it
6783             works perfectly on my system)
6784           - If a folder already exist show an error MessageBox instead of
6785             trying to create an indexed name.
6786           - Fixed a non intentional typo.
6787
6788 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6789
6790         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
6791
6792 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6793
6794         * FileDialog.cs: When creating a new folder don't crash if the
6795           folder already exists.
6796
6797 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6798
6799         * FileDialog.cs: Allmost a complete rewrite.
6800           - added a "virtual" file system that handles the differences
6801             between unix and windows file systems (especially the directory
6802             structure). Moved most of the directory and file handling code
6803             into the vfs.
6804             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
6805             UnixFileSystem and FSEntry.
6806           - Recently used folder/directory, size, location and used file names
6807             (file name ComboBox) are now stored in the registry and get read
6808             before the dialog shows up (fixes part 6 of bug #78446).
6809           - Creation of new folders/directories is now possible (context menu
6810             or ToolBar). Added TextEntryDialog for this that fills in the gap
6811             until ListView.LabelEdit works.
6812           - Fixed cursor handling (bug #78527) and focus handling for
6813             PopupButtonPanel
6814           - Various "Search in" ComboBox enhancements. The content of the
6815             dropdown listbox now almost matches ms.
6816           - Changed the behaviour when the user switches to SpecialFolder
6817             Recent to show the ListView in View.Details.
6818           - Beside using the ToolBar to change the View property of the
6819             file ListView it is now possible to use the context menu too.
6820
6821 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6822
6823         * ComboBox.cs: Don't create a new ObjectCollection when an item
6824           gets inserted. Just insert the item in the existing object_items
6825           ArrayList.
6826
6827 2006-06-08  Jackson Harper  <jackson@ximian.com>
6828
6829         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
6830         that the treeview and root node checks are done also, this fixes a
6831         regression i caused in the unit tests.
6832
6833 2006-06-07  Wade Berrier <wberrier@novell.com> 
6834
6835         * RichTextBox.cs: More ISO8859-1 -> unicode
6836
6837 2006-06-07  Mike Kestner  <mkestner@novell.com>
6838
6839         * ComboBox.cs : use items to hold highlight/selection so that
6840         collection insertions don't require synchronization.
6841
6842 2006-06-07  Jackson Harper  <jackson@ximian.com>
6843
6844         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
6845         routine.  We now always keep the sized edge at the cursor instead
6846         of computing movement and adjusting rects.  There is one buglet
6847         with this method though when the cursor is moved over area that
6848         the window can not expand too (such as the toolbars on the desktop).
6849
6850 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6851
6852         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
6853         here. Fixes crash on startup in AlbumSurfer.
6854
6855 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
6856
6857         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
6858           values
6859
6860 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6861
6862         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
6863         statement to avoid calling XNextEvent which will block if another thread
6864         took the event that we were expecting. Fixes bug #78605.
6865
6866 2006-06-07  Mike Kestner  <mkestner@novell.com>
6867
6868         * ListView.cs : isolated checkbox clicking from the selection logic.
6869         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
6870
6871 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6872
6873         * Form.cs: Check that the value passed to Form.DialogResult
6874         is a valid enum value.
6875
6876 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6877
6878         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
6879         Computer'. Clicking it in the network view goes to 'My Computer'.
6880         Added CIFS filesystem type. Display the mount point of filesystems.
6881         Avoid duplicate mount points (happens for me with CIFS);
6882
6883 2006-06-06  Jackson Harper  <jackson@ximian.com>
6884
6885         * InternalWindowManager.cs: Draw the maximized windows buttons
6886         when resizing.
6887
6888 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6889
6890         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
6891         all other dialogs. Fixes bug #78585.
6892
6893 2006-06-06  Mike Kestner  <mkestner@novell.com>
6894
6895         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
6896         Only invalidate checkbox on checkstate changes to avoid flicker.
6897         * ListBox.cs : avoid unselect/select when clicking selected item.
6898         avoid reselection flicker for already multiselected items.
6899         Fixes #78382.
6900
6901 2006-06-06  Jackson Harper  <jackson@ximian.com>
6902
6903         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
6904         the parent form so that the menu is removed if needed.
6905
6906 2006-06-06  Mike Kestner  <mkestner@novell.com>
6907
6908         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
6909         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
6910
6911 2006-06-06  Mike Kestner  <mkestner@novell.com>
6912
6913         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
6914
6915
6916 2006-06-06  Jackson Harper  <jackson@ximian.com>
6917
6918         * Control.cs: Use the property (instead of the field) to get the
6919         default cursor so it is instantiated correctly.
6920         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
6921         resizes so we need to manually repaint the window decorations here.
6922         - Set the titlebar button locations as soon as they are created,
6923         otherwise they are not set correctly on win32.
6924         
6925 2006-06-06  Chris Toshok  <toshok@ximian.com>
6926
6927         * CurrencyManager.cs (set_Position): call PullData before
6928         OnCurrentChanged.
6929         (AddNew): after calling IBindingList.AddNew, update our
6930         listposition, and call OnCurrentChanged/OnPositionChanged (without
6931         calling PullData).
6932         (OnCurrentChanged): remove the call to PullData from here.
6933         (OnItemChanged): remove the call to PushData from here.
6934         (OnPositionChanged): change the test from == null to != null to
6935         match the other methods.
6936         (ListChangedHandler): the grossest part of the patch.  Implement
6937         this such that it passes the unit tests in CurrencyManagerTest and
6938         the output more or less matches that of MS's implementation.
6939  
6940 2006-06-06  Mike Kestner  <mkestner@novell.com>
6941
6942         * ListView.cs : only update check state on single click.
6943         * ThemeWin32Classic.cs : fix focus drawing for details view without
6944         fullrowselect.  Fixes #78454.
6945         * XplatUIX11.cs : fix for double click emission.
6946
6947 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6948
6949         * PropertyGridView.cs : Applied Atsushi's patch to fix
6950         font dialog bug  (#78197).
6951
6952 2006-06-05  Jackson Harper  <jackson@ximian.com>
6953
6954         * TreeNode.cs: Compute the next node for expanding/collapsing
6955         correctly. We now factor in nodes without a NextNode
6956         correctly. (Fixes somes cases in nunit-gui).
6957         * InternalWindowManager.cs: Set the bounds when updating the
6958         virtual position of a tool window.
6959         
6960 2006-06-05  Chris Toshok  <toshok@ximian.com>
6961
6962         * DataGrid.cs: rename cached_currencymgr to list_manager.
6963         (set_CurrentCell): move SetCurrentCell code here, and clean it up
6964         some.
6965         (CurrentRow, CurrentColumn): single accessors so we can make the
6966         cursor movement code a lot easier to understand.
6967         (CurrentRowIndex): implement this in terms of CurrentRow.
6968         (BeginEdit): clean this up a bit.
6969         (CancelEditing): sort out the is_editing/is_changing/is_adding
6970         stuff a little.
6971         (EndEdit): minor changes.
6972         (OnKeyDown): add a comment about a (most likely) unnecessary
6973         check.
6974         (OnMouseDown): cancel editing when we click on a row header.  And
6975         use the CurrentRow setter, not CurrentCell.
6976         (ProcessDialogKey): directly call ProcessGridKey.
6977         (UpdateSelectionAfterCursorMove): factor out this common block of
6978         code (it's used everywhere that we move the cursor by updating row
6979         or column).
6980         (ProcessGridKey): pretty substantial overhaul.  Use the
6981         CurrentRow/CurrentColumn properties to make the code a lot more
6982         readable.  Only use the CurrentCell property when we have to
6983         modify both row and column at once.  Tab behavior is still broken,
6984         and Delete is untested.
6985         (Select): if we have no selected rows, set selection_start to
6986         @row.
6987         (EditCurrentCell): rename EditCell this.  It was only ever invoked
6988         with CurrentCell as the arg, so drop the arg and rename it.
6989
6990         * DataGridColumnStyle.cs: clean up the constructors a little, and
6991         drop CommonConstructor().
6992
6993         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
6994         actually get notified when the user hits it.
6995         (ProcessKeyMessage): *substantially* simplify this method.
6996         There's no reason (that I can see) for the textbox to be making
6997         calls into the datagrid at all.  Remove all of them but the ones
6998         for Enter handling.  those will take some more work.
6999
7000         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
7001         calling HideEditBox.
7002         (HideEditBox): if we have an active textbox, render it invisible
7003         without causing a re-layout of the datagrid.
7004
7005 2006-06-05  Mike Kestner  <mkestner@novell.com>
7006
7007         * ListView.cs : fix NRE crasher when focuseditem is cleared by
7008         collection changes by resetting it to Items[0].  Fixes #78587.
7009
7010 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7011
7012         * MessageBox.cs: if the height of the text is larger than the icon_size,
7013         use that. Fixes bug #78575.
7014
7015 2006-06-05  Jackson Harper  <jackson@ximian.com>
7016
7017         * TreeView.cs: Fix line drawing when scrolling.  To do this each
7018         node is basically responsible for drawing its entire horizontal
7019         area.  When drawing a node it draws its parent node lines if
7020         needed.
7021         - Adjust the clip area to the viewport rectangle
7022         - Fix Left/Right key handling to match MS. (It expand/collapses
7023         and moves to parents/first child but does not move selection to
7024         sibling nodes).
7025         - Fix SetTop to work with new bound calculation code
7026         - When scrollbars are no longer needed we need to reset scrolling
7027         vars and recalculate the visible order so the redraw is correct
7028         * TreeNode.cs: We can't expand/collapse nodes with no children.
7029
7030 2006-06-03  John Luke  <john.luke@gmail.com> 
7031
7032         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
7033         so the colors work without dev packages
7034         
7035 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
7036
7037         * Control.cs 
7038           - Select: Implemented to just use activate. Seems to match MS 
7039             behaviour closest. Documented to only do actual control walking 
7040             based on it's parameters if in a container control so I moved 
7041             the code there.
7042           - Removed selection check logic from our internal Select() method
7043         * ContainerControl.cs:
7044           - Select: Moved selection logic from Control here, since MS documents
7045             that containers obey the bool arguments. No longer calling base
7046
7047 2006-06-02  Jackson Harper  <jackson@ximian.com>
7048
7049         * TreeView.cs: If the selected node isn't changed when we get
7050         focus update the previously selected node so that we see the
7051         selection box.
7052
7053 2006-06-02  Mike Kestner  <mkestner@novell.com>
7054
7055         * ComboBox.cs: restructure grab and general mouse event handling.
7056         Make the composite control raise mouse events like it was a single
7057         control for leaves/enters/motion/up/down events.  fix dropdown list
7058         coordinate mangling and refactor it into the scrollbar subclass to
7059         reduce code duplication.  Fixes #78282 #78361 and #78457.
7060
7061 2006-06-02  Mike Kestner  <mkestner@novell.com>
7062
7063         * ScrollBar.cs: remove Capture setting/clearing, as it happens
7064         automatically in the Control.WndProc.
7065
7066 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7067
7068         * FileDialog.cs: fix crash when running SharpChess, which sets the
7069         FilterIndex to 2 with only one Filter.
7070
7071 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7072
7073         * ToolBar.cs: add SizeSpecified property.
7074         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
7075         try to figure out our real size, otherwise fallback to what the
7076         container says.
7077
7078 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
7079
7080         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
7081         * Control.cs (WndProc): MS always calls the DefWndProc to pass
7082           up the event
7083
7084 2006-06-01  Mike Kestner  <mkestner@novell.com>
7085
7086         * ListView.cs: revamp the focus management in ListView.  It still
7087         causes churn of LostFocus/GotFocus emissions on clicks, but it's
7088         better than not handling focus at all.  Will revisit when pdb feels
7089         the general focus handling is solid.  Fixes #78526.
7090
7091 2006-06-01  Jackson Harper  <jackson@ximian.com>
7092
7093         * TreeView.cs: Set the default border style in the constructor.
7094         - Move painting to use OnPaintInternal instead of capturing
7095         WM_PAINT, this is the correct way of doing things
7096         - UpdateBelow shouldn't invalidate the scrollbar area
7097         - Cap the top on update below in case the node was above the top
7098         of the viewport rectangle.
7099         - ExpandBelow and Collapse below need to obey Begin/End Update.
7100         * TreeNode.cs: Make is_expanded internal so the treenode
7101         collection can change it without firing the whole event chain.
7102         * TreeNodeCollection.cs: When clearing all the child nodes make
7103         sure to recalc the visible order.
7104         - Improve algo for remove the top node
7105
7106 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
7107
7108         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
7109           SendMessage directly calling window procedures, which in turn might
7110           call SetFocus()
7111
7112 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
7113
7114         * Control.cs: Don't handle WM_SETFOCUS if the same window already
7115           has focus (works around X11 sending a FocusIn after our SetFocus)
7116         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
7117
7118 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
7119
7120         * Mime.cs: Fix for the NET_2_0 build.
7121           NameValueCollection needs StringComparer now.
7122
7123 2006-05-31  Chris Toshok  <toshok@ximian.com>
7124
7125         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
7126         return (via an out parameter) the starting X of the column.
7127         (UpdateVisibleColumn): track change to FromPixelToColumn.
7128         (HitTest): add a ColumnResize case here.
7129         (DrawResizeLine): new function, probably poorly named.
7130
7131         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
7132         only need to keep one reference.
7133         (set_ListManager): same.
7134         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
7135         Also, add support for HitTestType.ColumnResize.
7136         (OnMouseMove): add column resize behavior here, and change the
7137         cursor to the correct one as we move around the datagrid.
7138         (OnMouseUp): terminate the column resize if we're resizing.
7139         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
7140         for the current cell.
7141         (ConnectListManagerEvents): use cached_currencymgr.
7142         (DisconnectListManagerEvents): fill this in, using
7143         cached_currencymgr.
7144         (SetCurrentCell): remove cached_currencymgr_events handling.
7145         (SetDataMember): only call DisconnectListManagerEvents if
7146         cached_currencymgr is != null.
7147         (SetDataSource): same.
7148         (OnListManagerCurrentChanged): cached_currencymgr_events ->
7149         cached_currencymgr.
7150
7151 2006-05-31  Jackson Harper  <jackson@ximian.com>
7152
7153         * BindingManagerBase.cs: Remove somedebug code that creeped into
7154         SVN.
7155         * TreeNode.cs: We get the indent level dynamically right now, so
7156         don't track it as a member.
7157         * TreeNodeCollection.cs: Make sure all nodes added to the list
7158         have parents, treeviews/topnodes setup properly.
7159         - Don't attempt to track indent level.
7160
7161 2006-05-30  Jackson Harper  <jackson@ximian.com>
7162
7163         * BindingContext.cs: Create the currency manager tables here.
7164         This allows us to more easily create null tables (when bad data
7165         members are used), and more easily create related currency
7166         managers.
7167         * CurrencyManager.cs: All the table creation stuff is done by the
7168         binding context now.
7169         - Current should throw an exception if listposition is -1.
7170         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
7171         been bound yet.
7172
7173 2006-05-30  Mike Kestner  <mkestner@novell.com>
7174
7175         * ListView.cs: allow reexpansion of zero-width column headers.
7176         Fixes #78528.
7177
7178 2006-05-28  Chris Toshok  <toshok@ximian.com>
7179
7180         * CurrencyManager.cs (get_Current): after the late binding
7181         listposition = -1 fix, we need to guard against it here and return
7182         null, otherwise we raise an exception (which is swallowed
7183         elsewhere, and breaks datagrid databinding.)
7184
7185 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
7186
7187         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
7188           than WM_SYSKEY, don't throw if get something unexpected (#78507)
7189
7190 2006-05-26  Jackson Harper  <jackson@ximian.com>
7191
7192         * ControlPaint.cs:
7193         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
7194         values, it's faster and it's all we care about (we don't care if
7195         the names aren't equal).
7196         * KeyboardLayouts.cs: Eliminate some dead code.
7197         - Lazy init things
7198         * X11Keyboard.cs: Lazy init keyboard detection.
7199         - Cleanup access modifiers a little.
7200
7201 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
7202
7203         * XplatUIX11.cs: Once again, attempting to get layout just right.
7204
7205 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
7206
7207         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
7208           the sizes of each link section, that will result in sizes that
7209           match DrawString's layout (Fixes #78391)
7210
7211 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
7212
7213         * FileDialog.cs: If AddExtension property is true autocomplete the
7214           extensions in SaveFileDialog correctly. Fixes bug #78453.
7215           Set MyNetwork and MyComputer to "C:\" for windows. This should
7216           fix part 8 of bug #78446 for now.
7217
7218 2006-05-26  Chris Toshok  <toshok@ximian.com>
7219
7220         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
7221         invalidate the current row header if we need to, but presumably
7222         we'll invalidate the row corrsponding to the bounds or
7223         editingControl.
7224         (GridHScrolled): switch back to this method, as it's part of the
7225         public api.  *sigh*.
7226         (GridVScrolled): same.
7227         (OnMouseWheel): hack up something that more or less works.  Call
7228         GridHScrolled/GridVScrolled directly, instead of duplicating much
7229         of their code here.
7230         (EnsureCellVisibility): reinstate a bunch of this code, since we
7231         can't just set the scrollbar Value and expect to do all the work
7232         in the ValueChanged handler.  Also, Call Update() after scrolling
7233         in one direction so the other XplatX11.ScrollWindow call has the
7234         proper stuff in the proper places.
7235         (EditCell): set is_editing to true before calling .Edit.
7236
7237         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
7238         don't bother comparing first.
7239         (OnKeyPress): call grid.ColumnStartedEditing before calling
7240         base.OnKeyPress.  this will set is_changing and invalidate the row
7241         header if necessary.
7242         (ProcessKeyMessage): for WM_CHAR messages, call
7243         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
7244         and WM_KEYDOWN.
7245         
7246         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
7247         it's done in the DataGrid.
7248         (NextState): call grid.ColumnStartedEditing, which takes care of
7249         invalidating the row header (and setting is_changing).
7250
7251         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
7252         here.  it's done in the DataGrid.
7253
7254 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7255
7256         * Control.cs: allow changing the cursor when the mouse position is
7257         out of bounds but Capture is set.
7258         * LinkLabel.cs: handle the case when the mouse button is pressed on the
7259         linklabel but released somewhere else.
7260
7261 2006-05-25  Jackson Harper  <jackson@ximian.com>
7262
7263         * TreeView.cs: When we get focus if there is no selected node make
7264         it the top node
7265         - Remove some uneeded setup code from Draw.
7266         * TreeNodeCollection.cs: If the tree doesn't have a top node when
7267         a new node is inserted make the new node the top.
7268         * XplatUIX11.cs:
7269         * Timer.cs: Use Utc time so that no local time zone stuff needs to
7270         be used (should be faster).
7271         
7272 2006-05-25  Chris Toshok  <toshok@ximian.com>
7273
7274         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
7275         problem with the last commit.
7276
7277 2006-05-25  Chris Toshok  <toshok@ximian.com>
7278
7279         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
7280         need the invalidate call here, while scrolling right-to-left via
7281         the left arrow key (i.e. moving the editing cell while scrolling).
7282
7283         * DataGrid.cs (.ctor): remove the initialization of
7284         ctrl_pressed/shift_pressed.  We no longer track them using key
7285         up/down handlers, but by using Control.ModifierKeys.  Also, switch
7286         to using ValueChanged handlers on the scrollbars instead of
7287         Scrolled event handlers.  This simplifies a bunch of the scrolling
7288         code.
7289         (GridHValueChanged): rename from GridHScrolled, and change it to
7290         work with the new event args.
7291         (GridVValueChanged): same.
7292         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
7293         (OnMouseWheel): actually scroll the datagrid.  Don't change the
7294         selected cell.
7295         (ProcessGridKey): correct all the keyboard navigation stuff I
7296         could find.  Ctrl up/down/left/right/home/end work now.
7297         (EnsureCellVisibility): correct method name spelling.  Also,
7298         simplify this a touch by not explicitly calling the
7299         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
7300         scrollbar value.
7301         (OnKeyUpDG): no need for this method now.
7302         
7303 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7304
7305         * LinkLabel.cs: display the OverrideCursor when hovering the label.
7306         Fixes bug #78392.
7307
7308 2006-05-25  Chris Toshok  <toshok@ximian.com>
7309
7310         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
7311         r61019.
7312
7313 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7314
7315         * Application.cs: Moved setting of is_modal and closing to before
7316           we create the control, to allow the event handlers called as a
7317           result of creation affect closing. Also removed Gonzalo's previous
7318           change to setting DialogResult, the behaviour has been moved to 
7319           Form.ShowDialog()
7320         * Form.cs: 
7321           - ShowDialog(): Removed explicit creation of the form, let RunLoop
7322             handle it instead
7323           - ShowDialog(): If no dialog result is set, we need to return Cancel
7324           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
7325             the close is cancelled
7326
7327 2006-05-25  Jackson Harper  <jackson@ximian.com>
7328
7329         * StatusBar.cs: We only need to update the sizes of the other
7330         panels when we have auto size contents.  Also we are only updating
7331         the contents of the panel, not the borders, so compensate for the
7332         border width (TODO: get this width from the theme somehow).
7333         * TreeView.cs: Scrollable is true by default
7334         - Use invalidate instead of refresh where needed
7335         - Factor the scrollable value into scrollbar updating
7336         - Update the scrollbars if the Scrollable property is altered
7337         - Update the selected node if its ImageIndex is changed
7338         - Handle null nodes in UpdateNode (mainly so we don't have to
7339         check if selected is null when updating it
7340         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
7341         are factored into the visible count
7342         - Use VisibleCount for clarity in the code
7343         - When the font is changed we need to recurse through all the
7344         nodes and invalidate their sizes
7345         
7346 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7347
7348         * Application.cs: set the DialogResult to fixed when the main form is
7349         hidden or destroyed while being modal.
7350
7351 2006-05-25  Miguel de Icaza  <miguel@novell.com>
7352
7353         * Theme.cs: Use Tangoified messagebox icons. 
7354
7355         (GetSizedResourceImage): Also cope with width = 0 and do not
7356         trigger a warning in that case (0 means "give me your icon from
7357         the resouce, no special size needed).
7358
7359 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7360
7361         * Application.cs: Leave runloop if the the main modal form is 
7362           hidden (fixes #78484)
7363
7364 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7365
7366         * BindingContext.cs : reject null datasource in Contains() and
7367           Item[].
7368         * CurrencyManager.cs : check data_member validity when data_source
7369           is dataset. When it is late binding, the initial position is -1.
7370
7371 2006-05-24  Jackson Harper  <jackson@ximian.com>
7372
7373         * TreeNodeCollection.cs: Dont't recalculate the visible order on
7374         inserted nodes that aren't visible.  This changes the
7375         max_visible_order which confuses scrollbar settings.
7376         - Use the enumerator to get the prev node instead of duplicating
7377         code.
7378         * TreeView.cs: Use new method for setting scrollbar values
7379         - Don't set the bounds every time the scrollbar is updated
7380         - When updating below the root node use an invalidate instead of a
7381         refresh to prevent the child controls (scrollbars) from being
7382         refreshed. (UpdateBelow still needs to be reworked anyways).
7383         - Reenable SetBottom now that visible orders are set correctly,
7384         added some debug code incase we ever get bad values there again.
7385         - Set the scrollbar max to 2 less then the max value, this
7386         compensates for the max value being one above the node count, and
7387         for scrollbars adding one extra "notch".
7388         - When drawing image nodes if there is an imagelist we draw the
7389         first image in the list if the supplied image index is out of the
7390         image list's bounds.
7391         
7392 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7393
7394         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
7395           we receive a size change from the WM (Fixes #78503)
7396
7397 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
7398
7399         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
7400           rectangle (Fixes #78501)
7401
7402 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7403
7404         * ButtonBase.cs: 
7405           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
7406             as a bitfield.
7407           - Fixed MouseMove to no longer switch pressed state unless the left
7408             mouse button is pressed. Atsushi provided the original patch (#78485)
7409           
7410 2006-05-24  Jackson Harper  <jackson@ximian.com>
7411
7412         * ScrollBar.cs: New internal methods that allow us to change a
7413         couple values on the scrollbar (the most common case is maximum
7414         and large change) without getting multiple invalidates.
7415
7416 2006-05-24  Chris Toshok  <toshok@ximian.com>
7417
7418         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
7419         (Edit): save off the original state in oldState, and set
7420         grid.is_editing to true.
7421         (OnKeyDown): abort editing if escape is pressed.  also, call
7422         NextState if space is pressed.
7423         (OnMouseDown): call NextState.
7424         (NextState): factor out shared code from OnKeyDown and OnMouseDown
7425         here.  Also, only invalidate the row header once (on the initial
7426         is_changing switch) to save on redraws.
7427
7428 2006-05-24  Chris Toshok  <toshok@ximian.com>
7429
7430         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
7431         if the value in the cell is different than it was before.  This
7432         keeps us from triggering a layout when we move around a datarid
7433         with a highlighted cell.
7434         (Edit): suspend layout when creating/positining the text box, and
7435         resume passing false so we don't ever actually re-layout.
7436         (ReleaseHostedControl): same.
7437         (EnsureTextBox): reformat slightly, and set WordWrap to false.
7438
7439         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
7440         control-key sequences should go to the datagrid - remove that
7441         lock.  Also, modify the conditions under which we move between
7442         cells when moving the cursor within a cell, and remove the "this"
7443         and "base" from field accesses.  We weren't even consistent, given
7444         they all were in the base class.
7445
7446 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
7447
7448         * Binding.cs : (.ctor)
7449           An obvious NRE fix for BindingTest.CtorNullTest().
7450
7451 2006-05-23  Chris Toshok  <toshok@ximian.com>
7452
7453         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
7454         them between lines.  This fixes some quirks editing cells in the
7455         datagrid.
7456
7457 2006-05-23  Jackson Harper  <jackson@ximian.com>
7458
7459         * TreeView.cs: Use begin/end update when doing expand/collapse all
7460         so that we don't get flicker on the scrollbar.
7461
7462 2006-05-23  Jackson Harper  <jackson@ximian.com>
7463
7464         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
7465         treenode calculations to be independant of the painting code. To
7466         do this nodes track a visible order which is calculated by the
7467         treeview.
7468         - Call new methods for expanding/collapsing nodes.  These methods
7469         use scrollwindow so we don't have to update everything below the
7470         node.
7471         * TreeView.cs: Refactored drawing and scrolling code.  We don't
7472         need to update nodes when drawing anymore or calculate scrollbar
7473         stuff.
7474         - Added new methods for expanding/collapsing nodes. These methods
7475         use ScrollWindow so as to not have to redraw all the nodes below.
7476         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
7477         we add/remove nodes or sort.
7478         - Handle removing the selected and the top node properly.
7479
7480 2006-05-23  Chris Toshok  <toshok@ximian.com>
7481
7482         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
7483         maybe this should actually happen in the datagrid code?
7484         (EndEdit): no need to invalidate anything, given that
7485         ReleaseHostedControl causes the datagrid to relayout, which
7486         invalidates everything anyway.
7487
7488         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
7489         in SetCurrentCell).
7490         (set_SelectionBackColor): call InvalidateSelection instead of
7491         Refresh.
7492         (set_SelectionForeColor): same.
7493         (BeginEdit): Flesh this out a bit.
7494         (CancelEditing): only do any of this if we're editing/adding.
7495         (EndEdit): same.
7496         (OnMouseDown): there's no need to cancel editing here, it's done
7497         in SetCurrentCell.
7498         (SetCurrentCell): only invalidate the current row header if it's a
7499         different row than the new one.
7500         (ShiftSelection): fix this to work like MS does.
7501         (ResetSelection): factor out the invalidation of selected_rows to
7502         InvalidateSelection.
7503         (SetDataSource): cancel any editing that's going on.
7504
7505         * DataGridColumnStyle.cs
7506         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
7507         call the non-interface version.
7508
7509         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
7510         header rectangle with the clip rectangle so we don't redraw the
7511         entire header for just a small area.  Gets rid of the last flicker
7512         when horizontally scrolling.
7513         (DataGridPaintRow): same.
7514
7515 2006-05-23  Mike Kestner  <mkestner@novell.com>
7516
7517         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
7518         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
7519         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
7520         Critical bug report.
7521
7522 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7523
7524         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
7525           and this fixes #78493
7526
7527 2006-05-23  Miguel de Icaza  <miguel@novell.com>
7528
7529         * Theme.cs (GetSizedResourceImage): Scale images if the proper
7530         size is not found.  
7531         
7532         * FileDialog.cs: Do not change the background for the side bar as
7533         it wont work nicely with the theme, and also reduces the artifacts
7534         in rendering the icons (which I want to fix too).
7535
7536         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
7537         resources, not resgen resources. 
7538
7539         (PlatformDefaultHandler): Pull images using the new API.
7540
7541 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7542
7543         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
7544           a reference to the hwnd and will not remove it unless there are
7545           no pending exposures (fixes #78341)
7546         * XplatUI.cs: Improved debug
7547
7548 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
7549
7550         * MenuAPI.cs : don't handle OnClick event when it was not the left
7551           button. Fixed bug #78487.
7552
7553 2006-05-23  Mike Kestner  <mkestner@novell.com>
7554
7555         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
7556         prefer submenus to the top menu for item lookup, to avoid popping down
7557         top-row items.
7558
7559 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
7560
7561         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
7562           Graphics.FillRectangle as the visual results are really bad (even
7563           on win). We now draw perfect arrows (and perfect shadows when the
7564           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
7565           Pen.DashPattern to draw the dots of each line.
7566
7567 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
7568
7569         * FileDialog.cs: Update the filename combobox when navigating through
7570           the ListView with the cursor keys. Fixes part 7 of bug #78446.
7571
7572 2006-05-22  Mike Kestner  <mkestner@novell.com>
7573
7574         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
7575         Fixes #78463.
7576
7577 2006-05-22  Mike Kestner  <mkestner@novell.com>
7578
7579         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
7580         requests. Fix a misspelled parameter and a copy paste exception error
7581         in Select.
7582
7583 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
7584
7585         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
7586           to get the same width/height (5/13) on X11 as the default font has on
7587           win32. This means that our DefaultFont emSize is smaller than the 
7588           the MS SWF equivalent (even thought the width/height stays the same)
7589
7590 2006-05-20  Jackson Harper  <jackson@ximian.com>
7591
7592         * MdiClient.cs:
7593         * MdiWindowManager.cs:
7594         * InternalWindowManager.cs: Make sure to use the border width from
7595         the theme.
7596
7597 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
7598
7599         * PrintDialog.cs: Implements printer details
7600
7601 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
7602
7603         * FileDialog.cs: Added focus handling for PopupButtonPanel.
7604           Fixes part 1 and 2 of bug #78446
7605
7606 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
7607
7608         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
7609           instead of sticking to the first ever calculated value
7610
7611 2006-05-19  Mike Kestner  <mkestner@novell.com>
7612
7613         * ComboBox.cs: fix mouse motion selection to use MousePosition and
7614         PointToClient, since Capture is set. Fixes #78344.
7615
7616 2006-05-19  Mike Kestner  <mkestner@novell.com>
7617
7618         * ListView.cs: match MS behavior in Details view where items are not
7619         drawn if Columns.Count == 0. 
7620         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
7621         Use a separate pen to draw the check, since changing the width affects
7622         the box as well.  Fixes #78454.
7623
7624 2006-05-18  Miguel de Icaza  <miguel@novell.com>
7625
7626         * ListView.cs: ArgumentOutOfRangeException, single versions of the
7627         exception should throw the name of the invalid argument.
7628
7629         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
7630         there are no files listed. 
7631
7632 2006-05-18  Jackson Harper  <jackson@ximian.com>
7633
7634         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
7635         up.
7636
7637 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7638
7639         * Control.cs: Brought back our old UpdateZOrder method as a private
7640           function and switched our calls from UpdateZOrder to the new one.
7641           This fixes the Paint.Net canvas disappearing bug.
7642
7643 2006-05-18  Jackson Harper  <jackson@ximian.com>
7644
7645         * Theme.cs:
7646         * ThemeWin32Classic.cs:
7647         * InternalWindowManager.cs: Move the drawing into the theme,
7648         expose everything the theme should need from the window manager.
7649
7650 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7651
7652         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
7653           from the call to NativeWindow to avoid walking up the parent chain
7654           further than needed (speeds up setting cursors and avoids setting
7655           the wrong cursor if a parent has another cursor defined)
7656         * Cursor.cs: When loading an icon as cursor, MS uses the center of
7657           the icon as hotspot, not what's contained as hotspot in the icon
7658           file. This fixes the perceived drawing offset seen with Paint.Net
7659         
7660 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7661
7662         * XplatUIX11.cs: 
7663           - Store the calculated rectangle in Hwnd object and use it when 
7664             setting the client size
7665           - Force Toolwindows to always be type Dock, to ensure they're on top
7666
7667 2006-05-18  Mike Kestner  <mkestner@novell.com>
7668
7669         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
7670         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
7671         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
7672         Substantial refactoring to remove confusing nested classes. Coding
7673         standard and Get+Set->property refactorings.  Shift to index based
7674         highlighting in ComboListBox instead of constantly using IndexOf and
7675         Items[]. Add invalidations on resize for DropDownList to fix ugliness
7676         in FileDialog growth.  Draw borders manually since Simple mode needs
7677         to look like two independent controls.  Make listbox border
7678         conditional to DropDownStyle.  Improved OwnerDraw support.
7679
7680 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
7681
7682         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
7683         Don't set the disposed graphics to null, so we can throw the "right"
7684         exception if the graphics is reused later (added a flag to avoid 
7685         double disposing). Some behaviours are different under 2.0 and are
7686         filled under bug #78448.
7687
7688 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7689
7690         * Control.cs: When double-buffering is enabled, we need to reset
7691           our graphics context between paint calls. Otherwise, any 
7692           transformations and other alterations on the context will 
7693           become cumulative (#77734)
7694
7695 2006-05-18  Mike Kestner  <mkestner@novell.com>
7696
7697         * ListView.cs: do focused item selection like MS on clicks. 
7698         Rework focus handling for ItemControl so LostFocus invalidates as
7699         well.
7700         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
7701         the ListView ItemControl has focus.
7702
7703 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
7704
7705         * XplatUIX11.cs: If client_window ends up being width or height zero
7706           due to border settings, move it off window inside whole_window (#78433)
7707
7708 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7709
7710         * Mime.cs: Shrink the mime file cache correctly.
7711
7712 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7713
7714         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
7715
7716 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7717
7718         * XplatUIX11.cs (AddExpose): More sanity checks
7719
7720 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7721
7722         * XplatUIX11.cs:
7723           - AddExpose: Don't add expose ranges outside the size of our
7724             window
7725           - Cast opacity values to Int32 to avoid crashes with certain
7726             values
7727           - Added disabled code paths that protect against illegal cross-
7728             thread painting (Developers.exe)
7729
7730 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7731
7732         * ProgressBar.cs: Invalidate the control when it's resized
7733           since block size is based on control size. (#78388)
7734
7735 2006-05-16  Miguel de Icaza  <miguel@novell.com>
7736
7737         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
7738         of setting the incoming argument to the "reset" value, we set the
7739         this.datamember to string.empty (before we were invalidating the
7740         incoming data).   
7741
7742         Fixes 78420
7743
7744 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7745
7746         * Form.cs: Only apply transparency settings after the form
7747           is created. (Fixes #77800)
7748
7749 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7750
7751         * ApplicationContext.cs: Grab the HandleDestroyed event so
7752           we know when to fire OnMainFormClosed 
7753
7754 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7755
7756         * Application.cs: Introduced sub-class to allow tracking of
7757           threads and centralized triggering of the event mess for
7758           ThreadExit, AppExit, etc..  (#76156)
7759
7760 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
7761
7762         * MimeIcon.cs:
7763           - Do not return a null icon index value for a mime subclass.
7764             Instead try the main mime type class too.
7765           - Seems that some newer distributions don't have a link to some
7766             gnome default icons anymore. So check the default gnome dir too.
7767           
7768
7769 2006-05-16  Jackson Harper  <jackson@ximian.com>
7770
7771         * MdiClient.cs: Don't paint the parent background image if we have
7772         our own background image.
7773
7774 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7775
7776         * Control.cs:
7777           - PerformLayout: Do not shrink space filled by DockStyle.Fill
7778             controls, all filled controls are supposed to overlap (#78080)
7779           - UpdateZOrder is supposed to update the control's z-order in the
7780             parent's z-order chain. Fixed to behave like that
7781           - BringToFront: Removed obsolete code
7782           - SendToBack: Simplyfied
7783           - SetChildIndex: Trigger layout calculations when Z-order changes
7784             since layout is done by z-order
7785
7786 2006-05-16  Chris Toshok  <toshok@ximian.com>
7787
7788         [ fixes bug #78410 ]
7789         * DataGrid.cs (set_AlternatingBackColor): use
7790         grid_drawing.InvalidateCells instead of Refresh().
7791         (set_BackColor): call grid_drawing.InvalidateCells.
7792         (set_BackgroundColor): use Invalidate instead of Refresh.
7793
7794         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
7795         invalidate the cell area.
7796
7797 2006-05-15  Chris Toshok  <toshok@ximian.com>
7798
7799         [ fixes bug #78011 ]
7800         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
7801         on to DataGridPaintRow.
7802         (DataGridPaintRow): take a clip argument, and only draw the cells
7803         which intersect it.  same with the not_usedarea.
7804
7805         * Theme.cs (DataGridPaintRow) add @clip parameter.
7806
7807         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
7808         XplatUI.ScrollWindow.
7809         (ScrollToRow): same.
7810
7811         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
7812         with last column which was causing a gray swath to appear with the
7813         XplatUI.ScrollWindow code.
7814
7815 2006-05-15  Chris Toshok  <toshok@ximian.com>
7816
7817         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
7818         use XplatUI.ScrollWindow.
7819         (VerticalScrollEvent): use XplatUI.ScrollWindow.
7820
7821 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
7822
7823         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
7824
7825 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7826
7827         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
7828           file since there are no equivalent X11 cursors
7829
7830 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7831
7832         * MonthCalendar.cs : DateTimePicker should reflect selected date
7833           on mouse*up*, not mouse*down*. Fixed originally reported part of
7834           bug #76474.
7835
7836 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7837
7838         * TabControl.cs : When argument index is equal or more than tab
7839           count, just ignore. Fixed bug #78395.
7840
7841 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7842
7843         * Control.cs: Dispose all child controls when control is diposed (#78394)
7844
7845 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7846
7847         * ColorDialog.cs: Finally it is possible to select the color with
7848           the text boxes
7849
7850 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7851
7852         * PrintDialog.cs: Fix typo
7853
7854 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7855
7856         * PrintDialog.cs: PrintDialog is not resizable
7857         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
7858           color. Made some ToolBar drawing methods protected virtual.
7859
7860 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
7861
7862         * PrintDialog.cs: Implementation of the PrintDialog
7863
7864 2006-05-12  Chris Toshok  <toshok@ximian.com>
7865
7866         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
7867         thumb, instead use MoveThumb.  This has the side effect of making
7868         most of the other thumb moving machinery use MoveThumb as well.
7869         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
7870         need to actually invalidate the rectangle where the new thumb will
7871         go.
7872         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
7873         We force an Update() after, so it's not as fast as it could be,
7874         but at least there's zero flicker and no droppings.
7875         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
7876         (UpdateThumbPos): add another argument (dirty), which says whether
7877         or not to calculate/add dirty regions which we later invalidate.
7878         For cases where we know we're going to use MoveThumb, we pass
7879         false for this.  Otherwise, pass true.
7880
7881 2006-05-12  Jackson Harper  <jackson@ximian.com>
7882
7883         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
7884         the status bar.
7885         
7886 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
7887
7888         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
7889           and GetClipRegion methods and UserClipWontExposeParent property.
7890         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
7891           overriding UserClipWontExposeParent property, setting to false, since
7892           Win32 handles the required expose messages to draw our clipped parent
7893           areas internally
7894         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
7895           PaintEventStart to set the user clip region if set.
7896         * Control.cs: 
7897           - Now internally tracking the Region for the control since we need to
7898             store it if the handle is not yet created and only set it when it
7899             becomes created. Before setting the region forced handle creation
7900           - Added code to draw the parents underneath a user-clipped region
7901         * Hwnd.cs: Added UserClip property
7902
7903 2006-05-12  Chris Toshok  <toshok@ximian.com>
7904
7905         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
7906         (set_Maximum): same.
7907         (set_Minimum): same.
7908         (set_SmallChange): same.
7909         (OnMouseUpSB): remove the call to refresh when releasing the
7910         thumb.  We shouldn't need it.
7911         
7912 2006-05-12  Miguel de Icaza  <miguel@novell.com>
7913
7914         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
7915         AutoSize set to None, we do not need to relayout everything, we
7916         just need to invalidate the current region.
7917
7918         (Draw): Do not draw the entire ClientArea, just redraw the
7919         clip area being passed.
7920
7921         * MdiClient.cs: Make MdiClient constructor with the Form argument
7922         internal. 
7923
7924 2006-05-12  Jackson Harper  <jackson@ximian.com>
7925
7926         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
7927         parents background image,  but strangely not their own.
7928         - (DrawStatusBarPanel): Take into account horizontal alignment
7929         when drawing the strings and icons.
7930
7931 2006-05-12  Mike Kestner  <mkestner@novell.com>
7932
7933         * ListBox.cs: avoid invalidations for focus when the collection is
7934         empty. 
7935
7936 2006-05-12  Chris Toshok  <toshok@ximian.com>
7937
7938         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
7939         invalidate the entire thumb area.  Call InvalidateDirty which
7940         limits the redraw to the thumb itself and surrounding pixels.
7941
7942         * XplatUIX11.cs (ScrollWindow): optimize copying.
7943         
7944 2006-05-12  Chris Toshok  <toshok@ximian.com>
7945
7946         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
7947         Figure out the positioning/layout in a single pass instead of
7948         multiple recursive invocations.  Speeds up the initial display of
7949         the data grid.  Also, make many things private that were
7950         originally public but unused outside this class.
7951
7952 2006-05-11  Jackson Harper  <jackson@ximian.com>
7953
7954         * MdiClient.cs: Improved layout code.
7955
7956 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
7957
7958         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
7959           not SelectedObject.
7960
7961 2006-05-11  Chris Toshok  <toshok@ximian.com>
7962
7963         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
7964         union of that will always be {0,0,width,height}.
7965
7966 2006-05-11  Jackson Harper  <jackson@ximian.com>
7967
7968         * Form.cs: Match MS's DefaultSize for forms (they must have
7969         changed the size in sp2).
7970
7971 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7972
7973         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
7974
7975 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7976
7977         * TextControl.cs : Fixed bug #78109. This incorrect position
7978           comparison caused crash on automatic line split.
7979         * TextBoxBase.cs : reduce duplicate code.
7980
7981 2006-05-10  Jackson Harper  <jackson@ximian.com>
7982
7983         * MdiClient.cs: Active form is only sent to the back when using
7984         the Next form functionality, when a form is clicked the current
7985         active shouldn't be sent to the back.
7986         - Layout the mdi windows when the container is first made visible.
7987         * Form.cs: Give the MdiClient a ref to the containing form when we
7988         create it.
7989         
7990 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7991
7992         * LinkLabel.cs : link_font could be uninitialized, so populate one
7993           before actual use. Fixed bug #78340.
7994
7995 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7996
7997         * XplatUIX11.cs : clipboard format native value is IntPtr.
7998           Fixed bug #78283.
7999
8000 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8001
8002         * Control.cs: 
8003           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
8004             which is passed up the parent chain by DefWndProc
8005           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
8006             to DefWndProc (#77956)
8007         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
8008
8009 2006-05-10  Jackson Harper  <jackson@ximian.com>
8010
8011         * MdiClient.cs: We need to remove the controls from the mdi
8012         collection, when we close the window.
8013         * MdiWindowManager.cs: Special handling of closing mdi windows.
8014         * InternalWindowManager.cs: Make the close method virtual so the
8015         mdi window manager can handle it specially.
8016
8017 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
8018
8019         * DataGrid.cs:
8020           - Recalculate grid when the data source has changed
8021           - Matches styles provided by user from all data sources types
8022         * DataGridTableStyle.cs: For columns that provided by the user set the
8023         with the preferred value is there was unassigned.
8024         * CurrencyManager.cs: throw OnItemChanged event
8025
8026 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
8027
8028         * PictureBox.cs: Don't animate until handle is created. Start animation
8029           when handle is created.
8030
8031 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8032
8033         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
8034           current codebase.
8035         * XEventQueue.cs: We don't need to provide the extra info
8036
8037 2006-05-10  Jackson Harper  <jackson@ximian.com>
8038
8039         * MdiClient.cs: If the mdi clients parent form has a background
8040         image set, we draw that background image for the mdi area's
8041         background.
8042
8043 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8044
8045         * TextBoxBase.cs: Set IBeam cursor (#78347)
8046
8047 2006-05-10  Mike Kestner  <mkestner@novell.com>
8048
8049         * ToolBar.cs: fix some text padding issues with ButtonSize
8050         calculation. Update the default size to match MS documentation.
8051         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
8052         button size. Fixes #78296.
8053
8054 2006-05-10  Mike Kestner  <mkestner@novell.com>
8055
8056         * ListBox.cs: use is_visible for scrollbar positioning in case the
8057         control isn't on screen yet.  Fix off by one with Right vs Width
8058         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
8059         
8060 2006-05-10  Jackson Harper  <jackson@ximian.com>
8061
8062         * X11Dnd.cs: Drop to a control with another control on top of it.
8063         * ToolBar.cs: Work on a copy of the buttons list, so that it can
8064         be modified in click handlers. TODO: Look for similar problems in
8065         other controls.
8066
8067 2006-05-09  Jackson Harper  <jackson@ximian.com>
8068
8069         * Form.cs: Window managers need the old window state when setting
8070         window state now.
8071         * InternalWindowManager.cs: Allow the base mdi window manager to
8072         handle more of the MDI only stuff (like maximize buttons).
8073         * MdiWindowManager.cs: Fix some snafus in changing the window
8074         state.  Add all the menu functionality, for both popup and
8075         maximized menus.
8076         * MdiClient.cs: When a new form is selected the currently
8077         activated form is sent to the back, this matches MS.
8078         - Implement a new method to activate the next mdi child window.
8079
8080 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
8081
8082         * Control.cs: 
8083           - Added new InternalCapture method to allow controls to prevent
8084             the capture behaviour on the click handlers
8085           - Switched to use InternalCapture
8086         * ComboBox.cs:
8087           - Using InternalCapture to prevent mouse captures from being released
8088             on mouse button release (Fixes #78100)
8089         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
8090           returns Form borders if a caption is present. (Fixes #78310)
8091
8092 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
8093
8094         * TreeNode.cs: Changed serialization .ctor to not require every field
8095           to be present. (#78265)
8096         * OwnerDrawPropertyBag.cs: Added serialization .ctor
8097
8098 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
8099
8100         * MimeIcon.cs: for is faster than foreach for strings.
8101
8102 2006-05-05  Mike Kestner  <mkestner@novell.com>
8103
8104         * CheckedListBox.cs: update check handling code to not use selected.
8105         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
8106         behavior for visual feedback, motion response, shift/ctrl handling,
8107         and properly deal with all 4 selection modes. Updates to bounds
8108         handling logic.  Add scroll wheel support. [Fixes #77842]
8109
8110 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
8111
8112         * ListView.cs:
8113           - Moved adding of Implicit controls into .ctor. That way, subsequent
8114             creation of the controls will not cause them to think they are 
8115             toplevel windows (fixes #78200 header problem)
8116           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
8117           - Switched visibility setting of header control to use internal field
8118             to avoid triggering handle creation
8119           - Now checking if handle is created before causing a refresh when items
8120             are added (This makes us now match handle creation time with MS)
8121         * Splitter.cs: Removed loading of private splitter cursor, switched to
8122           Cursors version now that that is loading the right ones
8123         * Cursors.cs: Load proper splitter cursors from resources
8124         * Cursor.cs: Added second method of loading resource cursors for the 
8125           VS.Net users amongst us
8126
8127 2006-05-05  Mike Kestner  <mkestner@novell.com>
8128
8129         * ListView.cs: give header_control a minimum size based on the
8130         ListView size.
8131
8132 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
8133
8134         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
8135           window seems to do that with metacity, so set that type. (#78120)
8136
8137 2006-05-05  Mike Kestner  <mkestner@novell.com>
8138
8139         * ListViewItem.cs: fix Details mode checkbox layout bug.
8140         * ThemeWin32Classic.cs: draw a ListView column header for unused space
8141         at the end of the header, if it exists. [Fixes for #78200]
8142
8143 2006-05-04  Jackson Harper  <jackson@ximian.com>
8144
8145         * MdiClient.cs: Add a helper property to get the container form.
8146         * MdiWindowManager.cs: We have to make sure to use the menu origin
8147         when drawing the icons and buttons, this fixes maximized window
8148         icons/buttons on win32.
8149         * InternalWindowManager.cs: Reset the restore captions when a
8150         window goes from Maximized to Minimized and vice versa. Move the
8151         DrawMaximizedButtons into the MdiWindowManager source, tool
8152         windows can't be maximized. NOTE: This could use a little
8153         refactoring if time ever permits.
8154         
8155 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
8156
8157         * TextBox.cs: Add MWFCategoryAttributes
8158         * TextBoxBase.cs: Add MWFCategoryAttributes
8159         * Form.cs: Add MWFCategoryAttributes
8160
8161 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
8162
8163         * Control.cs: Add MWFCategoryAttributes
8164         * ScrollableControl.cs: Add MWFCategoryAttributes
8165
8166 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
8167
8168         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
8169           Divider is true. Fix a little glitch in PropertyToolBar
8170           drawing code
8171
8172 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
8173
8174         * Control.cs:
8175           - Dispose: Call base.Dispose, this causes the disposed event
8176             to be fired (and probably other, more important stuff)
8177           - SetVisibleCore: Set is_visible to true after creating the
8178             window so that the window still gets created invisible (if
8179             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
8180             to generate a WM_ACTIVE message
8181         * Form.cs: Call Dispose when we want to destroy the window, instead of
8182           just destroying the handle (Dispose will do that for us)
8183         * XplatUIX11.cs:
8184           - RootWindow also needs a queue, so we can properly process the
8185             property change events from RootWindow (like Activate)
8186           - Generatic synthetic WM_ACTIVE message when the active window is
8187             being destroyed
8188
8189 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
8190
8191         * LinkLabel.cs: Trigger a recalc of our label dimensions when
8192           bounds are changed
8193
8194 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
8195
8196         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
8197           for determining width and height (image might not be assigned if
8198           we're drawing an imagelist)
8199
8200 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
8201
8202         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
8203         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
8204           height from system
8205         * Theme.cs: No longer returns hardcoded menu height, instead calls
8206           new driver method
8207         * Form.cs (OnLoad): Scaling happens before triggering Load events 
8208           on MS (# 78257)
8209
8210 2006-05-01  Mike Kestner  <mkestner@novell.com>
8211
8212         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
8213
8214 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
8215
8216         * TextBoxBase.cs: Removed Fixme
8217         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
8218
8219 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
8220
8221         * XplatUIX11.cs:
8222           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
8223             the rectangle relative to the parent, considering borders. We
8224             don't really want that.
8225           - ScrollWindow: Fixed warning to be more understandable
8226         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
8227           scrollbars and scroll only the visible area
8228         * RichTextBox.cs: Removed debug output
8229
8230 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8231
8232         * NumericUpDown.cs (Text): Just use base
8233         * UpDownBase.cs: Ensure txtView is created before using it
8234
8235 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8236
8237         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
8238           casting to IntPtr to avoid 64bit overflow errors
8239
8240 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8241
8242         * Control.cs:
8243           - AllowDrop: Don't force handle creation.
8244           - CreateHandle: Added call to tell driver if we're allowed to drop
8245
8246 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8247
8248         * FileDialog.cs: Remember the last directory not only for the
8249           current instance but also for new FileDialog instances.
8250
8251 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8252         
8253         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
8254           broke sending async messages
8255
8256 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8257
8258         * XplatUIX11.cs:
8259           - ScrollWindow: Fixed method. We finally generate expose events again
8260             for scrolled areas. This was causing 'garbage' when scrolling
8261             textbox and other controls that used ScrollWindow
8262           - Switched from using the regular queue for paint events to the MS 
8263             model of 'generating' paint events when the queue is empty.
8264             We use the new XQueueEvent.Paint subclass to store which windows
8265             need painting.
8266           - AddExpose now takes the x/y/width/height of the exposed area
8267             and inserts the window into the paint queue if not already there
8268           - InvalidateWholeWindow: Switched to use new AddExpose method
8269           - UpdateMessageQueue: Added which queue to monitor for paint events
8270           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
8271             the unlikely case nothing above handles it. We reset the expose
8272             pending states to get them off the queue.
8273           - GetMessage: Now pulls a paint event if no other events are in the
8274             queue
8275           - Invalidate: Switched to new AddExpose method
8276           - PeekMessage: Updated to understand pending paint events
8277           - UpdateWindow: Fixed logic bug. We were only updating if the window
8278             didn't need updating. Also switched to sending WM_PAINT directly,
8279             like MS does.
8280         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
8281           and random access Remove(). The random access is needed to handle
8282           UpdateWindow() where a WM_PAINT is sent directly without accessing
8283           the queue.
8284         * ScrollBar.cs: Added Update() calls to cause immediate updates to
8285           allow for better feedback when scrolling. Scrollbars are small and
8286           the immediate update should make it 'feel' more responsive without
8287           slowing things down. ScrollBar still needs it's invaliate logic
8288           updated to not always invalidate the whole bar on certain changes.
8289
8290 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8291
8292         * Control.cs:
8293         (BackColor): if the control does not support a transparent background,
8294         return the default backcolor when the parent backcolor is transparent.
8295
8296 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
8297
8298         * Application.cs: Updated to new StartLoop/GetMessage API
8299         * RichTextBox.cs: Provide some output on RTF parsing errors
8300         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
8301           new queue_id argument to GetMessage and PeekMessage to allow faster
8302           handling of per-thread queues in drivers.
8303         * Hwnd.cs: Added Queue tracking and property
8304         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
8305         * XEventQueue.cs: Added thread trackingA
8306         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
8307         * XplatUIX11.cs:
8308           - Implemented new per-thread queue
8309           - GetMessage: Fixed return/break behaviour on several cases. We were
8310             returning stale messages in some cases, instead of just processing
8311             the next message
8312
8313 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8314
8315         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
8316
8317 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
8318
8319         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
8320           fixed off-by-one comparisons between Width/Height and Right/Bottom.
8321
8322 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8323
8324         * PropertyGridView.cs: Fix drop down width.
8325
8326 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8327
8328         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
8329           a mess in DrawToolBar, so I removed one of them.
8330
8331 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8332
8333         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
8334           needed (clip). Otherwise we get artifacts.
8335
8336 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8337
8338         * FixedSizeTextBox.cs: Added constructor to allow specifying which
8339           dimension is fixed
8340         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
8341           and switched FixedSizeTextBox to only be fixed vertical (#78116)
8342         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
8343           if it matches the scale base font (avoids unneeded scaling)
8344
8345 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8346
8347         * X11DesktopColors.cs: One gtk_init_check should be enough
8348
8349 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
8350
8351         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
8352           match MS behaviour
8353
8354 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8355
8356         * TextBoxBase.cs: 
8357           - Generate OnTextChanged for Backspace even if we're only deleting
8358             the current selection
8359           - When setting the Text property, only select all text if the
8360             control does not have focus when it is being set. Otherwise
8361             just place the cursor at the beginning of the control
8362
8363 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8364
8365         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
8366           Added a little helper to draw PropertyGrid ToolBar with a different
8367           border and a different BackColor.
8368         * PropertyGrid.cs: Some background parts didn't get painted with the
8369           correct background color. Added a class that helps us to draw the
8370           correct border for PropertyGridView and a class that helps us to
8371           draw ToolBars with a different backcolor
8372         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
8373
8374 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
8375
8376         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
8377         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
8378
8379 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8380
8381         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
8382           into the palette entries. Also, since we're working on a copy
8383           we needed to copy the palette back onto the bitmap.
8384         * Cursor.cs: Same fix as XplatUIWin32.cs.
8385
8386 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
8387
8388         * ImageListStreamer.cs: Need to read the var (or we're off)
8389
8390 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8391
8392         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
8393           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
8394           TextBoxBase.cs: Unused var fixes
8395         * AxHost.cs: Small 2.0 fix
8396         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
8397           as it seems that is what at least Metacity expects. This will make
8398           icons show up on 64bit platforms. We still have some 64bit size
8399           issues, though, since the startup app window size still won't match.
8400
8401 2006-04-25  Mike Kestner  <mkestner@novell.com>
8402
8403         * *.cs: cleanup newly reported exception var unused warnings.
8404
8405 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8406
8407         * ThemeWin32Classic.cs: Button image alignment now matches exactly
8408           ms
8409
8410 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8411
8412         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
8413           image. The image position is always the same, no matter if the
8414           button is pressed or not.
8415
8416 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8417
8418         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
8419           selection and set the correct filename for SaveFileDialog.
8420           Patch by Emery Conrad.
8421
8422 2006-04-24  Mike Kestner  <mkestner@novell.com>
8423
8424         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
8425         check for item.X outside the ClientRect instead of item.Y. Fixes
8426         #78151.
8427
8428 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8429
8430         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
8431         trust that value blindly and do some sanity check. Fixes bug #77814.
8432
8433 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8434
8435         * ImageListStreamer.cs: save the mask as a 1bpp image.
8436
8437 2006-04-21  Mike Kestner  <mkestner@novell.com>
8438
8439         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
8440         pass Checked and Indeterminate to the Theme Engine. Improve
8441         encapsulation with ListBox.
8442         * ListBox.cs: Keep a StringFormat instead of calculating it every item
8443         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
8444         nested types.  Move all CheckState functionality to CheckedListBox.
8445         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
8446         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
8447         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
8448         single base list. Fix scrollbar sizing and placement to mirror MS.
8449         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
8450         used.
8451         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
8452         for CheckedListBox by using new DrawItemState info.  Center the
8453         checkboxes on the items. Use new StringFormat property.
8454
8455 2006-04-18  Jackson Harper  <jackson@ximian.com>
8456
8457         * Form.cs: MdiChildren don't do default locations the same way as
8458         regular forms.  This prevents a crash when trying to position the
8459         mdi windows.
8460
8461 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
8462
8463         * PropertyGridTextBox.cs: Formatting, copyright
8464         * PropertiesTab.cs: Formatting
8465         * PropertyGrid.cs: Formatting
8466         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
8467           click toggling of values
8468           
8469 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
8470
8471         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
8472         * Control.cs (.ctor): verify_thread_handle is static, don't reset
8473           every time a control is created
8474         * Application.cs: Removed obsolete EnableRTLMirroring method
8475
8476 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
8477
8478         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
8479         SelectedIndex to -1. Fixes bug #78121.
8480
8481 2006-04-17  Jackson Harper  <jackson@ximian.com>
8482
8483         * Binding.cs: Handle null values for Current and BindingContext.
8484         This occurs when binding is a little delayed.
8485         * CurrencyManager.cs: return null for Current when there are no
8486         items in the list.
8487         - Hookup to the listchanged event on the DataView and update
8488         bindings when the list is changed.  This fixes late binding of
8489         controls.
8490
8491 2006-04-17  Jackson Harper  <jackson@ximian.com>
8492
8493         * X11Dnd.cs:
8494         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
8495         Ringenbach.
8496
8497 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
8498
8499         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
8500           place
8501         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
8502           with the correct ButtonState
8503
8504 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
8505
8506         * XplatUIX11.cs: Improved distinguishing between window types to
8507           tell the WM a type closer to what the app wants (Fixes #78107)
8508
8509 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8510
8511         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
8512           GrabHandle
8513
8514 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8515
8516         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
8517           drawing code to reflect the size grip changes
8518
8519 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8520
8521         * ImageListStreamer.cs: fix handling of the mask that follows the main
8522         bitmap when deserializing and serialize it properly. The generated mask
8523         should better be a 1bpp image, but I'll do that later.
8524
8525 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8526
8527         * FileDialog.cs: Show something in the DirComboBox on *nix if the
8528           path doesn't fit into some of our Current.Places
8529
8530 2006-04-13  Jackson Harper  <jackson@ximian.com>
8531
8532         * ComboBox.cs: Use borders instead of drawing our own decorations,
8533         try to obey correct rules for heights.
8534         * Theme.cs:
8535         * ThemeNice.cs:
8536         * ThemeClearLooks.cs:
8537         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
8538         this is now handled by borders.
8539         - Remove unused DrawListBoxDecorationSize method.
8540         
8541 2006-04-13  Mike Kestner  <mkestner@novell.com>
8542
8543         * MenuAPI.cs: null guarding for the disbled click check fixes crash
8544         reported by Alex.
8545
8546 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8547
8548         * ThemeWin32Classic.cs: 
8549           - Fixed CPDrawStringDisabled
8550           - Corrected drawing of disabled menu items
8551           - Fixed drawing of disabled radio buttons (bug #78095)
8552           - Draw check in a disabled CheckBox with color ControlDark 
8553
8554 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8555
8556         * Form.cs: Use the provided width when calculating the menu size;
8557           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
8558           and ClientSize.Width won't be updated yet
8559         * Application.cs: Use Visible instead of Show() to make form visible,
8560           this way we create the handle later and menusize is considered
8561
8562 2006-04-12  Mike Kestner  <mkestner@novell.com>
8563
8564         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
8565         reporting.
8566
8567 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8568
8569         * TextBox.cs: Implemented context menu
8570
8571 2006-04-12  Mike Kestner  <mkestner@novell.com>
8572
8573         * ListView.cs: implement box selection. fixes #77838.
8574         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
8575
8576 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8577
8578         * XplatUIX11.cs: Added setting of window type when transient window
8579           is created (metacity would move it otherwise)
8580         * X11Structs.cs: Added WINDOW_TYPE atoms
8581         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
8582           background (the control is Opaque but still wants transparent
8583           backgrounds)
8584
8585 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8586
8587         * Control.cs: Added OnPaintBackgroundInternal to allow controls
8588           that set Opaque but don't mean it (like all ButtonBase-derived
8589           controls) to still draw their background
8590         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
8591           the background
8592
8593 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8594
8595         * Control.cs (PaintControlBackground): Set the graphics object
8596           on our PaintEvent to null to prevent it from being disposed
8597           when the PaintEvent gets disposed
8598
8599 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
8600
8601         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
8602         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
8603
8604 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8605
8606         * Control.cs: 
8607           - Added transparency check to BackColor property. Transparent
8608             backgrounds are only allowed if the control styles permit it
8609           - Added recursive painting of parent control background and
8610             foreground if a control with a transparent backcolor is drawn
8611             (Thanks to Tim Ringenback for providing his 'hack' as a base
8612              for this patch) Fixes #77985 and #78026.
8613           - Added Opaque style check before calling OnPaintBackground, no
8614             need to draw the background if the control is opaque
8615           - Removed ControlAccessibleObject owner variable (inherited from
8616             base, no need to define again)
8617           - Added some documentation links explaining the drawing events
8618             and styles
8619
8620 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8621
8622         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
8623           that the affected control is the located at the left border of our
8624           parent (Fixes #77936)
8625
8626 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8627
8628         * TextBoxBase.cs: When rendering disabled or readonly controls,
8629           draw the background with 'Control' instead of 'Window' color as
8630           long as the user hasn't specifically set a color
8631
8632 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8633
8634         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
8635           since that won't be updated if the user types text (only if it's
8636           programatically set)
8637
8638 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8639
8640         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
8641           layout changes do to app-triggered resizes will have the proper
8642           display rectangle for layout
8643
8644 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
8645
8646         * ThemeWin32Classic.cs:
8647           - Make use of the SystemBrushes and SystemPens wherever possible
8648           - Corrected some highlight colors
8649           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
8650             drawing
8651         * Theme.cs: Added Empty field to CPColor struct
8652
8653 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8654
8655         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
8656           is displayed when calculating the display rectangle. Thanks to Mike
8657           for teaching me the err of my ways.
8658
8659 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
8660
8661         * ScrollableControl.cs:
8662           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
8663             (instead of 0,0) and we now return the real width/height instead of
8664             just the clientrectangle, adjusted for padding. The rectangle is
8665             now cached and created by the new CalculateDisplayRectangle method.
8666           - Created new CalculateDisplayRectange method, which basically does
8667             what get_DisplayRectangle() did originally, but now using the 
8668             right edge instead of DisplayRectangle to determine the size of
8669             our scrollbars
8670           - get_Canvas(): Fixed it to properly calculate canvas for 
8671             right/bottom controls which seem to be placed to the right/bottom
8672             of any controls that have a fixed location
8673           - Removed TODO that's taken care of
8674           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
8675             and SetDisplayRectLocation according to new MSDN2 docs
8676           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
8677             event when that is called, this is added for compatibility
8678           - ScrollControlIntoView(): Implemented.
8679           - Switched scrollbars to be implicit, they shouldn't be selectable
8680         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
8681           call it when the active control is set/changed
8682         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
8683         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
8684           implicit_control variable (used for native Win32 message generation)
8685         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
8686           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
8687         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
8688         * XplatUIStructs.cs: Added ScrollBarCommands enum
8689
8690 2006-04-10  Jackson Harper  <jackson@ximian.com>
8691
8692         * ButtonBase.cs:
8693         * CheckedListBox.cs:
8694         * ComboBox.cs:
8695         * DataGrid.cs:
8696         * DataGridView.cs:
8697         * Form.cs:
8698         * GroupBox.cs:
8699         * ListBox.cs:
8700         * PrintPreviewControl.cs:
8701         * ProgressBar.cs:
8702         * PropertyGrid.cs:
8703         * Splitter.cs:
8704         * StatusBar.cs:
8705         * TrackBar.cs:
8706         * UpDownBase.cs: Fixup base event overrides.
8707         
8708 2006-04-06  Mike Kestner  <mkestner@novell.com>
8709
8710         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
8711         all user-initiated value changes to min <= value <= max-thumbsz+1.
8712         (set_Value): check for vert/horiz when calculating new thumb position.
8713         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
8714         like MS does.
8715         (OnMouseMoveSB): refactor the thumb dragging code and refine
8716         invalidation logic to reduce flicker.
8717         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
8718         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
8719         (UpdateThumbPosition): small code readability cleanup
8720
8721 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
8722
8723         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
8724           different
8725
8726 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8727
8728         * ThemeNice.cs: Use a better graphics effect when a button is pressed
8729
8730 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8731
8732         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
8733         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
8734           This dramatically reduces the number of Pen.Dispose calls. 
8735           Where possible call ResPool methods only once instead of calling it
8736           over and over again (for example for the same color).
8737
8738 2006-04-06  Mike Kestner  <mkestner@novell.com>
8739
8740         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
8741         Also remove an unused private field on the collection. Fixes #77972.
8742
8743 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8744
8745         * ThemeNice.cs: Added ToolBar drawing code
8746
8747 2006-04-06  Mike Kestner  <mkestner@novell.com>
8748
8749         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
8750         I'm assuming that means we need to look up the toplevel for the
8751         provided control. Fixes the crash trace in #77911 but exposes another
8752         crash in some strange reflection usage in NDocGui.
8753
8754 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8755
8756         * ThemeNice.cs: Gave it a little silver touch and added Images
8757           method
8758         * FontDialog.cs: FontDialog is not resizable
8759         * FileDialg.cs: Added SizeGripStyle.Show
8760
8761 2006-04-05  Jackson Harper  <jackson@ximian.com>
8762
8763         * KeyboardLayouts.cs: Remove warning.
8764
8765 2006-04-05  Jackson Harper  <jackson@ximian.com>
8766
8767         * Control.cs: Enable OnPaintInternal so we can use it for drawing
8768         all of our controls instead of Paint +=.
8769         * ListBox.cs:
8770         * ListView.cs:
8771         * MenuAPI.cs:
8772         * MessageBox.cs:
8773         * NotifyIcon.cs:
8774         * ProgressBar.cs:
8775         * ScrollBar.cs:
8776         * Splitter.cs:
8777         * StatusBar.cs:
8778         * TabControl.cs:
8779         * TextBoxBase.cs:
8780         * ToolBar.cs:
8781         * TrackBar.cs:
8782         * UpDownBase.cs:
8783         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
8784         use OnPaintInternal. Remove Width/Height and Visible checks in
8785         paint handler, this is done at a higher level now.
8786         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
8787         * PaintEventArgs.cs: Add a handled flag so controls that don't
8788         want anymore painting after OnPaintInternal can make sure OnPaint
8789         isn't called.
8790
8791 2006-04-05  Mike Kestner  <mkestner@novell.com>
8792
8793         * Form.cs: fix the menu WndProc hacks to respect the native enabled
8794         state of the form, so that we don't process events when Modal dialogs
8795         are up. Fixes #77922.
8796
8797 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
8798
8799         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
8800           checking is done.
8801
8802 2006-04-05  Mike Kestner  <mkestner@novell.com>
8803
8804         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
8805
8806 2006-04-05  Mike Kestner  <mkestner@novell.com>
8807
8808         * ListView.cs (HeaderMouseMove): null guarding for the over column
8809         when setting up the drag_to_index.  Fixes #78015.
8810
8811 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
8812
8813         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
8814           in the taskbar. Transient windows seem to accomplish that.
8815
8816 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
8817
8818         * Form.cs:
8819           - Re-enabled CreateParams.X/Y code for FormStartPosition
8820           - Added code for manual placement when creating the Control
8821           - Incomplete patch to treat MDI forms differently when
8822             setting the ClientSizeCore. (Still need to figure out handling
8823             x/y coords there)
8824         * XplatUIX11.cs:
8825           - When we're explicitly setting the X/Y position of a non-Child
8826             window, let the WM know. Metacity really wants this.
8827
8828 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8829
8830         * ThemeNice.cs: Added CPDrawButton
8831
8832 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8833
8834         * ThemeNice.cs: Changed the color for focused buttons and activated
8835           the arrows for small scroll buttons.
8836
8837 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8838
8839         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
8840           anymore. Changed some method modifiers to protected (virtual)
8841         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
8842           changes
8843         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
8844           Updated drawing of menus, buttons and progressbars; added
8845           CPDrawBorder3D 
8846
8847 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8848
8849         * ImageListStreamer.cs: implemented serialization/deserialization
8850         of the images.
8851
8852 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
8853
8854         * ThemeWin32Classic.cs:
8855           - Removed all the DrawFrameControl stuff; CPDrawButton,
8856             CPDrawCheckBox and CPDrawRadioButton are now handled directly
8857             inside the methods
8858           - Updated and corrected the drawing code of CPDrawButton,
8859             CPDrawCheckBox and CPDrawRadioButton to better match ms
8860           - Updated theme checkbox and radiobutton code to use the CP*
8861             methods
8862
8863 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8864
8865         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
8866           bug is fixed
8867
8868 2006-03-31  Jackson Harper  <jackson@ximian.com>
8869
8870         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
8871         sometimes.
8872         * UpDownBase.cs: Don't CreateGraphics manually, use a
8873         Refresh. Ideally we would invalidate the correct areas here.
8874
8875 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8876
8877         * XplatUIX11.cs: 
8878           - We now track the mapping state of windows. If a window (or 
8879             one of it's parents) is not mapped we no longer permit
8880             WM_PAINT messages to be generated since we'd otherwise get 
8881             lots of BadMatch X errors. Jackson did all the work figuring
8882             out the problem.
8883           - Destroying the caret if the window it's contained in is 
8884             destroyed. Can't use regular DestroyCaret method since it
8885             might fall into a drawing function (trying to remove the
8886             caret) and with that generate new BadMatch errors. Again,
8887             Jackson tracked this down.
8888           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
8889             make sure we send the messages to all windows. (The old code
8890             would send the WM_DESTROY to the window, and then all child
8891             windows would be 'gone' because the WM_DESTROY handle lookup
8892             would no longer find the destroyed window)
8893         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
8894         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
8895
8896 2006-03-31  Jackson Harper  <jackson@ximian.com>
8897
8898         * ScrollableControl.cs: Dont recalc if we are not visible.
8899
8900 2006-03-31  Mike Kestner  <mkestner@novell.com>
8901
8902         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
8903         the visibility branch.
8904
8905 2006-03-31  Jackson Harper  <jackson@ximian.com>
8906
8907         * ScrollBar.cs: Cap values when incrementing/decrementing.
8908
8909 2006-03-31  Mike Kestner  <mkestner@novell.com>
8910
8911         * MenuAPI.cs: setup menu.tracker for popup/context menus.
8912         * ToolTip.cs: guard against timer expirations with no active control.
8913         Not sure why it happened.
8914
8915 2006-03-31  Mike Kestner  <mkestner@novell.com>
8916
8917         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
8918         text.
8919         * ToolTip.cs: Position the tooltip based on where the cursor is at
8920         popup time, not at MouseEnter time.  Add a Down state so that we don't
8921         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
8922         positioning offset. Lookup DisplaySize at positioning time, since it
8923         can theoretically change during invocation.
8924         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
8925         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
8926
8927 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8928
8929         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
8930           Fixes behaviour when the Text property of the box is String.Empty
8931
8932 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
8933
8934         * XplatUIX11.cs: Only send mouseleave for our client windows, not
8935           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
8936           a window)
8937
8938 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8939
8940         * FileDialog.cs: Visual enhancement for the popup buttons in 
8941           PopupButtonPanel
8942
8943 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8944
8945         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
8946           code
8947
8948 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
8949
8950         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
8951           highlighted menu items to match ms
8952
8953 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
8954
8955         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
8956
8957 2006-03-30  Mike Kestner  <mkestner@novell.com>
8958
8959         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
8960         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
8961         go active to account for HotLight to Selected transition.
8962         * MenuItem.cs: add internal Selected prop. Fill out the Status
8963         property by calculating it from item info. Add HotLight,
8964         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
8965
8966 2006-03-30  Mike Kestner  <mkestner@novell.com>
8967
8968         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
8969
8970 2006-03-29  Jackson Harper  <jackson@ximian.com>
8971
8972         * Form.cs: Implement TODO.
8973
8974 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
8975
8976         * PrintPreviewDialog.cs: Implemented missing methods and events; still
8977           missing proper dialog setup in the constructor
8978
8979 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
8980
8981         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
8982         * Control.cs:
8983           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
8984           - Fixed ResetBindings and removed TODO
8985           - Added check for cross-thread calls to get_Handle()
8986           - Added Marshaller attribute for set_Font to satisfy class status
8987         * FontDialog.cs: Removed TODOs that seemed implemented
8988         * UpDownBase.cs: Removed unneeded TODO and Fixme
8989         * MessageBox.cs: Implemented support for Default button and removed TODO
8990         * FileDialog.cs: Removed obsolete TODO
8991         * DomainUpDown.cs: Removed obsolete TODO
8992         * ButtonBase.cs: Removed obsolete TODO
8993         * XplatUIWin32.cs: Removed obsolete TODO
8994         * Form.cs:
8995           - Removed obsolete TODO
8996           - Calling CheckAcceptButton when the acceptbutton is changed to allow
8997             internal status updates
8998           - Making sure the active control is selected when the control is created
8999         * CurrencyManager.cs: Removed obsolete TODO
9000
9001 2006-03-29  Mike Kestner  <mkestner@novell.com>
9002
9003         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
9004         of PrintPreviewDialog and RichTextBox.
9005
9006 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
9007
9008         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
9009           DarkDark, Light and LightLight colors for a specific color
9010         * ThemeWin32Classic.cs:
9011           - Use Button drawing code to draw RadioButtons and CheckBoxes with
9012             Appearance = Button 
9013           - Make use of the new ResPool helper CPColor
9014           - Draw ProgressBar and StatusBar with correct 3D borders
9015
9016 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
9017
9018         * ColorDialog.cs: Return selected color. Fixes bug #77940.
9019
9020 2006-03-28  Mike Kestner  <mkestner@novell.com>
9021
9022         * ListView.cs: fix Icon layout to plan for scrollbar widths when
9023         calculating col/row counts.
9024
9025 2006-03-28  Mike Kestner  <mkestner@novell.com>
9026
9027         * ColumnHeader.cs:
9028         * ListView.cs:
9029         * ListViewItem.cs:
9030         * Menu.cs: 
9031         switch to explicit interface method implementation for some methods
9032         corcompare identifies as inconsistent with MS.
9033
9034 2006-03-28  Mike Kestner  <mkestner@novell.com>
9035
9036         * MainMenu.cs: 
9037         * Menu.cs:
9038         add a few missing methods from the class status output.
9039
9040 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
9041
9042         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
9043           correct.
9044
9045 2006-03-28  Mike Kestner  <mkestner@novell.com>
9046
9047         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
9048
9049 2006-03-27  Mike Kestner  <mkestner@novell.com>
9050
9051         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
9052         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
9053
9054 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
9055
9056         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
9057
9058 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9059
9060         * ThemeWin32Classic.cs:
9061           - GroupBox: Inserted a little gap between the text and the lines
9062             on the right side
9063           - Made the code in CPDrawBorder3D more readable
9064           - Corrected the drawing location of the up and down arrows in 
9065             CPDrawScrollButton
9066
9067 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9068
9069         * ControlPaint.cs: Corrected line widths in DrawBorder for
9070           ButtonBorderStyle Inset and Outset
9071
9072 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9073
9074         * ThemeWin32Classic.cs:
9075           - Rewrote the totally broken CPDrawBorder3D method. That was
9076             one of the main problems for the terrific ThemeWin32Classic
9077             look
9078           - Updated and corrected Button drawing
9079           - Correct the dimensions of the SizeGrip to match ms ones
9080           - Removed a small drawing glitch in DrawComboBoxEditDecorations
9081         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
9082           Border3DStyle.Sunken to match ms.
9083
9084 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9085
9086         * ThemeWin32Classic.cs: First small part of the "de-uglify
9087           ThemeWin32Classic" effort, SizeGrip
9088
9089 2006-03-24  Jackson Harper  <jackson@ximian.com>
9090
9091         * XplatUIX11.cs: Give a max idle time of one second, this matches
9092         MS and forces an Idle event every second when there are no other
9093         events in the queue.
9094
9095 2006-03-24  Mike Kestner  <mkestner@novell.com>
9096
9097         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
9098         * ListView.Item.cs: fix layout issues with null image lists and images
9099         smaller than checkbox size.
9100         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
9101         mode like MS does.  It's weird, but consistent.  ;-)
9102         Fixes #77890.
9103
9104 2006-03-24  Mike Kestner  <mkestner@novell.com>
9105
9106         * ListView.cs: Scroll wheel support for the item control.  Fixes
9107         #77839.
9108
9109 2006-03-23  Jackson Harper  <jackson@ximian.com>
9110
9111         * ScrollableControl.cs: Special case negative sized areas, not
9112         zero.
9113         * MonthCalendar.cs: Save the rect of the clicked date so we can
9114         use it for invalidation.
9115         - Try to cut down on the number of invalidates
9116         - Invalidate the rect the mouse is over and was over when moving
9117         the mouse, so we get the focus box following the cursor.
9118
9119 2006-03-23  Mike Kestner  <mkestner@novell.com>
9120
9121         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
9122         focus rectangle drawing. Fixes #77835.
9123
9124 2006-03-23  Mike Kestner  <mkestner@novell.com>
9125
9126         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
9127         the if and else if and reverting back to the original == check on the
9128         None conditional.
9129
9130 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9131
9132         * FontDialog.cs: Update the example panel if the selected index of
9133           the fontListBox changes.
9134
9135 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9136
9137         * FileDialog.cs: Make FileDialog remember which directory it was in
9138           last in the same execution.
9139
9140 2006-03-22  Mike Kestner  <mkestner@novell.com>
9141
9142         * FileDialog.cs: make the DropDownMenu on the toolbar display
9143         RadioChecks since they are mutually exclusive and that's what MS does.
9144
9145 2006-03-22  Mike Kestner  <mkestner@novell.com>
9146
9147         * Theme.cs: add Color param to CPDrawMenuGlyph.
9148         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
9149         checks and radio marks and arrows are visible on highlighted items.
9150         * ControlPaint.cs: update to use new Theme signature.
9151
9152 2006-03-22  Mike Kestner  <mkestner@novell.com>
9153
9154         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
9155         is active. Fixes #77870.
9156
9157 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
9158
9159         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
9160           to be focused/selected after startup
9161
9162 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
9163
9164         * ColorDialog.cs: 
9165           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
9166             CustomColors and ShowHelp properties
9167           - Some internal rewrites to get better results when using the
9168             ColorMatrix
9169
9170 2006-03-22  Mike Kestner  <mkestner@novell.com>
9171
9172         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
9173         HoverSelection.  Fixes #77836.
9174
9175 2006-03-22  Mike Kestner  <mkestner@novell.com>
9176
9177         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
9178         ToggleButtons.  (De)Sensitize the Back button around a stack count of
9179         1, not 0.  Update ButtonSize based on a pixel count of the win32
9180         control.  Adjust the toolbar size/location for new button size.
9181
9182 2006-03-22  Jackson Harper  <jackson@ximian.com>
9183
9184         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
9185         true.
9186         * ScrollBar.cs: When doing increments and decrements we need to
9187         set the Value property so that ValueChanged gets raised. A
9188         possible optimization here would be to make an internal SetValue
9189         that doesn't invalidate immediately.
9190         * ToolTip.cs: Tooltips get added to their container (when
9191         supplied) so they get disposed when the container is disposed.
9192         - Don't create tooltips for String.Empty. This prevents all these
9193         little 2-3 pixel windows from showing up when running nunit-gui
9194         and driving me mad.
9195         * Form.cs: Don't set topmost when setting the owner if the handles
9196         haven't been created yet.  The topmost set will happen when the
9197         handles are created.
9198
9199 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
9200
9201         * XplatUIX11.cs:
9202           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
9203           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
9204             visible (to allow them to recalculate their sizes)
9205
9206 2006-03-21  Mike Kestner  <mkestner@novell.com>
9207
9208         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
9209         methods. Removed a ton of redundant code.  Still not really happy with
9210         the border rendering, but I think that's mainly because of the
9211         ControlDarkDark being black instead of a dark grey. Depending on how 
9212         close we want to be, we might want to revisit those color choices.
9213         Among the new features added during the refactor were DropDownArrow
9214         pressed rendering, Disabled image rendering.  Proper flat appearance
9215         boundary rendering.  Removed the Divider and Wrapping dividers since I
9216         can't figure out any combination of themes and conditions to make the
9217         MS control draw a horizontal line on a toolbar despite what the
9218         Divider property docs indicate.
9219         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
9220         conditions and incorrect layout.  Updated to coding standard.
9221         * ToolBarButton.cs: refactored layout and positioning code from
9222         ToolBar to here.  Invalidate wherever possible instead of forcing
9223         redraws of the whole toolbar. 
9224         (Known remaining issues: explicit ButtonSize smaller than provided
9225         images.)
9226
9227 2006-03-21  Mike Kestner  <mkestner@novell.com>
9228
9229         * ContextMenu.cs (Show): use the position parameter instead of just
9230         showing at the MousePosition.
9231
9232 2006-03-21  Jackson Harper  <jackson@ximian.com>
9233
9234         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
9235         control handle this.
9236         * TreeNodeCollection.cs: If we are clearing the root node we need
9237         to reset top_node so calcs can still happen.
9238         * ThemeWin32Classic.cs: This is a Flags so we need to check
9239         properly.
9240         
9241 2006-03-21  Jackson Harper  <jackson@ximian.com>
9242
9243         * DataGrid.cs: Create columns when the binding context has been
9244         changed.
9245         * X11Structs.cs: Keysyms are uints.
9246         - Add size to fix build.
9247
9248 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
9249
9250         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9251           XplatUIOSX.cs: 
9252           - Added ResetMouseHover method to allow controls to retrigger
9253             hovering if they need it more than once
9254           - Implemented MouseHoverTime and MouseHoverSize properties
9255         * Timer.cs: Start() must reset the interval
9256         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
9257           properties
9258
9259 2006-03-21  Jackson Harper  <jackson@ximian.com>
9260
9261         * X11Keyboard.cs: improved layout detection. Move the nonchar
9262         tables into this file.
9263         * KeyboardLayouts.cs: Move the tables into resource files.
9264
9265 2006-03-21  Mike Kestner  <mkestner@novell.com>
9266
9267         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
9268
9269 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
9270
9271         * Mime.cs: Various speed optimizations. Looking up mime types
9272           is now 2 times faster than before
9273
9274 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
9275
9276         * CreateParams.cs: Added internal menu field
9277         * Control.cs: 
9278           - Switched call order for UpdateBounds; now we always call
9279             the one that also takes ClientSize, and we're calculating the 
9280             client size via driver method in the others. The previous
9281             method of tracking client size by difference wasn't working
9282             for forms where even the starting client size wouldn't match
9283             the overall form size (due to borders) (Part of fix for #77729)
9284           - CreateParams(): Do not use parent.Handle unless the handle is
9285             already created. Causes havoc with Nexxia and throws off our
9286             creation of controls
9287         * XplatUIX11.cs:
9288           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
9289           - Switched handling of ConfigureNotify over to new PerformNCCalc 
9290             method (consolidates code)
9291           - Changed RequestNCRecalc to use new PerformNCCalc method
9292           - Added calls to RequestNCRecalc when menus and borders are changed
9293             to allow app to set NC size. (Part of fix for #77729) This matches
9294             when MS send a WM_NCRECALC on Win32 windows.
9295           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
9296             (Part of fix for #77729). This matches what MS does, they also
9297             send that message when the form is made visible.
9298           - XException.GetMessage: Improved usability of X errors by including
9299             a translation of the window into Hwnd and Control class
9300           - Improved debug info for window creation, reparenting and destruction
9301           - Created helper method WindowIsMapped() [Currently not used]
9302         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
9303         * Form.cs:
9304           - CreateParams: Now setting our menu on the new internal menu field
9305           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
9306             avoid calculating the same property twice
9307         * Hwnd.cs:
9308           - Improved usability of ToString() for debugging purposes
9309           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
9310             determine the height of the menu, instead of just the font. This
9311             required to also create a graphics context and to keep a bmp 
9312             around (for performance reasons)
9313
9314 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
9315
9316         * MenuAPI.cs: Added OnMouseUp method
9317         * Form.cs:
9318           - Now remembering the requested client size, avoids size errors
9319           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
9320             instead of base if the menu is active. This is required due to
9321             control now capturing and releasing on down/up and it would
9322             prematurely release our menu capture
9323
9324 2006-03-17  Jackson Harper  <jackson@ximian.com>
9325
9326         * KeyboardLayouts.cs: Add the czech layouts.
9327
9328 2006-03-16  Jackson Harper  <jackson@ximian.com>
9329
9330         * Control.cs: Use the viewport space when sizing not the controls
9331         client size, so things like ScrollableControl that effect the
9332         viewport size (when scrollbars are added) are computed correctly.
9333         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
9334         of ManagerEntrys.
9335         - Handle creating BindingManagers for null data sources.
9336         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
9337         source, otherwise when rows are added they are added to the 'fake'
9338         datasource and we will crash when trying to set the position in
9339         those rows.
9340         - Use Implicit scrollbars on the datagrid so they arent
9341         selectable.
9342         
9343 2006-03-16  Jackson Harper  <jackson@ximian.com>
9344
9345         * Binding.cs:
9346         * InternalWindowManager.cs:
9347         * MdiWindowManager.cs:
9348         * X11Keyboard.cs: I really want Mike to love me again (fix
9349         compiler warnings).
9350
9351 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
9352
9353         * DataGrid.cs:
9354           - OnMouseDown: Switch to editing mode when clicking on the cell
9355                          even if we're clicking on the cell that's currently 
9356                          selected
9357           - ProcessGridKey: Left/Right now wrap like MS.Net does
9358           - ProcessGridKey: Tab now knows to add a new row when tab is
9359                             pressed in the cell of the last column of the 
9360                             last row
9361           - ProcessGridKey: Enter now adds another row  if pressed in the last
9362                             row and selectes the new row, same column cell
9363           - ProcessGridKey: Home/End navigate columns, not rows, like 
9364                             originally implemented
9365           - Broke ProcessKeyPreview code out into an extra Internal method
9366             so it can be called from the edit code
9367         * DataGridTextBox.cs (ProcessKeyMessage):
9368           - Switched to accept Tab keypresses
9369           - Added F2 handling to allow jumping to the end of the edited cell
9370           - Added logic to allow moving caret left/right inside edited cell
9371             and making the edited cell jump when the caret hits cell borders
9372           - Tab and Enter are now passed to the datagrid after being handled
9373         * TextBoxBase.cs:
9374           - Removed capture code now that Control handles it
9375           - set_SelectionStart now ensures caret is visible
9376
9377 2006-03-16  Jackson Harper  <jackson@ximian.com>
9378
9379         * TrackBar.cs: Debackwards the increment/decrement for handling
9380         mouse clicks on the bar with vertical trackbars.
9381         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
9382         bottom to match MS.
9383
9384 2006-03-16  Mike Kestner  <mkestner@novell.com>
9385
9386         * ListView.cs: make shift/ctrl keyboard and mouse selection 
9387         consistent with the MS control. Fix a bug in
9388         SelectedListViewItemCollection.Clear that was pissing me off for the
9389         better part of a day because the collection was being altered
9390         underneath us as we walked the list.
9391
9392 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
9393
9394         * Control.cs: Not sure how we could miss this so long, but it seems
9395           that MS.Net has Capture set all the way from before calling 
9396           OnMouseDown through sending the mouse events until after
9397           OnMouseUp. This will fix DataGrid's selection being set to end
9398           at the location of the MouseUp.
9399
9400 2006-03-15  Jackson Harper  <jackson@ximian.com>
9401
9402         * BindingContext.cs: Check the binding after its added so that it
9403           can initialize the binding managers and hookup to events.
9404         * Binding.cs: Data members seem to sometimes include rows/cols in
9405           the format Row.Column we now take this into account.
9406           - Hookup to the position changed event so we can update the
9407           control when the position has changed in the data set.
9408         * CurrencyManager.cs: Take into account the row/col naming
9409           convention when creating dataset tables.
9410         * BindingContext.cs: Using a newer better way of storing
9411           datasource/datamember pairs.  Hopefully this better matches MS for
9412           looking up binding managers.
9413
9414
9415 2006-03-15  Jackson Harper  <jackson@ximian.com>
9416
9417         * BindingContext.cs: The currency manager needs the data member
9418         name, if the member is a data set we use the name to find the
9419         correct table.
9420         * CurrencyManager.cs: When creating the list prefer an IList over
9421         an IListSource.
9422         - Attempt to create a DataTable from a DataSet (TODO: might need
9423         some better error checking here, although MS doesn't seem to have much)
9424         - If we have a DataTable create a view and use it as our list.
9425
9426 2006-03-15  Mike Kestner  <mkestner@novell.com>
9427
9428         * ListView.cs: keep a matrix of the icon mode layout to facilitate
9429         keyboard navigation. Support Up/Down/Left/Right selection correctly
9430         for all 4 View modes.
9431         * ListViewItem.cs: add internal row/col fields for icon layouts.
9432
9433 2006-03-15  Jackson Harper  <jackson@ximian.com>
9434
9435         * TabControl.cs: Redraw the tabs when we resize so their newly
9436         calculated sizes are drawn on screen.
9437         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
9438         composite characters.
9439         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
9440         - filter events so that composite characters can be created
9441         patches by peter
9442         * X11Structs.cs: Add XIMProperties enum.
9443
9444 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9445
9446         * Control.cs (BringToFront, SendToBack): Don't use window or handle
9447           unless it's created
9448
9449 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9450
9451         * Control.cs (PerformLayout): We don't need to consider visiblity
9452           for anchoring, only for docking. This fixes 'whacky' alignment
9453           in listbox and other controls that use implicit scrollbars after
9454           the previous PerformLayout patch
9455         * ListBox.cs: Switched to use implicit scrollbars
9456           
9457 2006-03-14  Mike Kestner  <mkestner@novell.com>
9458
9459         * ToolBar.cs: 
9460         * VScrollBar.cs:
9461         - chain up the "new event" overrides to base and use
9462         OnEvent to raise them.  Part of fix for bug #76509.
9463
9464 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
9465
9466         * FileDialog.cs: Do not select an item in the parent directory
9467           on backspace
9468
9469 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9470
9471         * Control.cs (PerformLayout): It would seem that we considered
9472           invisible windows for our layout. Not quite the right thing
9473           to do. Now we don't any longer, thereby fixing bug #76889.
9474
9475 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9476
9477         * Control.cs (CanFocus): I goofed. A control can have focus 
9478           even though it's not selectable. Made it match MS docs.
9479
9480 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9481
9482         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
9483           center by default (fixes #76895)
9484         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
9485           all uses of Border3DSides.All with the explicit ORd together
9486           Left|Right|Top|Bottom because I assume that nobody was aware 
9487           that All also implies a center fill. Most places I checked had
9488           a fill right above.
9489         * ProgressBarStyle.cs: Added
9490
9491 2006-03-13  Mike Kestner  <mkestner@novell.com>
9492
9493         * ListView.cs: fix breakage in drag shadow header positioning 
9494         from Peter's csc compilation fix.
9495
9496 2006-03-13  Mike Kestner  <mkestner@novell.com>
9497
9498         * ListView.cs: fix NRE produced by backspacing twice in a focused
9499         FileDialog.
9500
9501 2006-03-13  Mike Kestner  <mkestner@novell.com>
9502
9503         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
9504
9505 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9506
9507         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
9508           be changed
9509         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
9510           the allowed size before making programmatic size changes
9511
9512 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
9513
9514         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
9515           set, metacity is broken and will still use the emty sizes in 
9516           the struct. (Fix for #77089)
9517
9518 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9519
9520         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
9521           WindowExStyles and marked both enums as Flags
9522         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
9523           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
9524           to match WindowStyles split
9525         * XplatUIX11.cs:
9526           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
9527           - Updated to match WindowStyles split
9528         * XplatUIWin32.cs:
9529           - Fixed FosterParent creation, was using ExStyle on the Style field
9530             (This should help with Popup focus issues)
9531           - Updated to match WindowStyles split
9532
9533 2006-03-13  Jackson Harper  <jackson@ximian.com>
9534
9535         * MdiWindowManager.cs: Use the system menu height. Fixes some
9536         strange sizing issues.
9537
9538 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9539
9540         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
9541         * TextBoxBase.cs:
9542           - Scroll to caret after inserting text (#77672)
9543           - Make scroll range one pixel higher, fixes off-by-one error (and
9544             makes underlines visible on the last line)
9545
9546 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
9547
9548         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
9549           the keyboard state from being stuck with keys in 'pressed' state when
9550           focus is switched away via keyboard
9551         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
9552           reset the keyboard if no X11 KeyUp events are expected to come
9553         * X11Structs.cs: Switched type of Visible to bool to match driver
9554
9555 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9556
9557         * TextControl.cs:
9558           - Switched caret to be just 1 pixel wide, matches MS and looks less
9559             clunky
9560           - Moved caret display 1 pixel down from the top of the control
9561             to improve view
9562           - InsertCharAtCharet: Update the selection start if moving the caret
9563             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
9564           - No longer always creating the caret when the caret methods are
9565             called. Only the actual ShowCaret/HideCaret will do that now
9566           - Only setting caret visible if the owner control has focus
9567           - UpdateView: Added invalidation-shortcut logic for center and right 
9568             aligned text. Previously we'd update all according to the left
9569             logic which caused drawing errors. Also fixed height of invalidated
9570             areas, now properly invalidating the whole area (was off-by-one)
9571           - owner_HandleCreated: Always generate the document when the
9572             handle is created; this ensures that 
9573         * TextBoxBase.cs:
9574           - Fixed situation where caret would disappear under the right
9575             window border, also improved scrolling behaviour on left-
9576             aligned textboxes
9577           - Fixed right-aligned textboxes to have a border to the
9578             right instead of the caret being under the right border
9579         * XplatUIX11.cs:
9580           - Switched from 'nested' to simple visible/not visible tracking 
9581             for caret (part of fix for #77671)
9582           - No longer passing through translated FocusIn/FocusOut messages
9583             since we were notifying too often and the wrong windows. Instead
9584             we just notify our focussed window of receiving or loosing focus
9585         * XplatUIWin32.cs: Switched from 'nested' show/hide 
9586           counting for caret to simple visible yes/no behaviour (part of 
9587           fix for #77671)
9588
9589 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9590
9591         * Mime.cs: Remove debug code...
9592
9593 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9594
9595         * MimeGenerated.cs: Removed
9596         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
9597           and subclasses) from /usr/(local/)share/mime and
9598           $HOME/.local/share/mime.
9599
9600 2006-03-10  Jackson Harper  <jackson@ximian.com>
9601
9602         * MdiWindowManager.cs: Recalc the NC area when a window is
9603         maximized/restored so that the menu area is drawn on forms that
9604         don't have a menu.
9605
9606 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9607
9608         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9609           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
9610           us to force a WM_NCCALCRESIZE message being sent. This is needed
9611           for MDI maximizing.
9612
9613 2006-03-10  Jackson Harper  <jackson@ximian.com>
9614
9615         * Form.cs: We need to use the ActiveMenu when calculating menu
9616         height.
9617         - Fix nullref when the window manager hasn't been created yet.
9618         * Control.cs: Fix nullref when we try to bring a control to the
9619         front that has no parent.
9620         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
9621         height.
9622         - Add a dummy item to the maximized menu so it always has the
9623         correct height. Otherwise when there are no menus we don't get our
9624         icon and buttons.
9625         
9626
9627 2006-03-10  Jackson Harper  <jackson@ximian.com>
9628
9629         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
9630         stuff.
9631         * Form.cs: Make the window_state internal so the window managers
9632         can track it.
9633         - When an MDI child is maximized let its window manager create the
9634         main menu (so it can add its icon).
9635         - Notify the window managers of state changes
9636         - Let the window manager paint its buttons and handle button
9637         clicks on the menu when it is maximized.
9638         * InternalWindowManager.cs: Move the prev_bounds into the mdi
9639         window manager, since tool windows don't use it, only mdi windows.
9640         - Tell the main form that we don't want it to handle NCPAINT
9641         itself to avoid extra painting.
9642         - Handle clicks on a maximized windows menu.
9643         - Handle window state changes
9644         - Handle minimize/maximize clicks correctly by setting the window state.
9645         * MdiWindowManager.cs: Add an icon menu that (the menu you get
9646         when clicking on the forms icon).
9647         - New method to create a forms maximized menu. This is its normal
9648         menu + an icon.
9649         - Handle window state changes.
9650         - Handle sizing of maximized windows.  Maximized windows are just
9651         drawn bigger then the parent visible area. All controls are still
9652         there, they are just outside the visible area (this matches windows).
9653         * MdiClient.cs: No scrollbars when a child window is maximized.
9654         - Let the children windows figure out how big they should be when
9655         sizing maximized windows.
9656         - Implement a version of ArrangeIconicWindows somewhat similar to
9657         Windows version.  There are some little differences, but I don't
9658         think any app will rely on the layout of minimized mdi windows.
9659
9660 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9661
9662         * Padding.cs: Several fixes to allow compiling with csc 2.0
9663
9664 2006-03-09  Jackson Harper  <jackson@ximian.com>
9665
9666         * Menu.cs:
9667         * MenuItem.cs: Cheap hack so we can add items to the list without
9668         the events being raised.  This allows adding mdi items during
9669         drawing. TODO: Should probably find a better time to add the items.
9670
9671 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9672
9673         * ThemeWin32Classic.cs:
9674           - CheckBox_DrawText: Added logic to not wrap if not enough space
9675             is available (Fix for bug #77727)
9676           - RadioButton_DrawText: Added logic not to wrap if not enough
9677             space is available (Fix for bug #77727). Also removed some
9678             duplicate code, DrawString always drawing the regular text
9679             before hitting the if statement.
9680
9681 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
9682
9683         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
9684
9685 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9686
9687         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
9688         * ContainerControl.cs: Partial implementation of some 2.0 scaling
9689           methods. Moved the new 2.0 properties into alphabetical order with
9690           other properties and added MonoTODO tags
9691
9692 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9693
9694         * AutoScaleMode.cs: Added. Fix build.
9695
9696 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9697
9698         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9699           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
9700           and was requiring premature handle creation for calls from above
9701         * Form.cs, Control.cs: Removed handle arguments from calls to
9702           CalculateClientRect()
9703
9704 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9705
9706         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
9707           drag_column.column_rect is MarshalByRef and can't be used that way
9708
9709 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9710
9711         * AxHost.cs: Added deserialization constructor for 
9712           AxHost+State (fixes 77743)
9713
9714 2006-03-09  Mike Kestner  <mkestner@novell.com>
9715
9716         * ListView.cs: 
9717         - Added column drag reordering for details view.
9718         - fixed behavior when mouse is dragged off column and
9719         AllowColumnReorder is false.
9720         * ColumnHeader.cs: clone the format too in Clone.
9721         * Theme.cs: add DrawListViewHeaderDragDetails method.
9722         * ThemeWin32Classic.cs:
9723         - impl new method for drawing drag column shadows and targets.
9724         - support column offset for details mode in DrawListViewItem.
9725
9726 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9727
9728         * TextControl.cs: Reset the char_count when the document is cleared
9729           (Fixes bug reported on mono-winforms mailing list)
9730
9731 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9732
9733         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
9734           of calling base we simply process the key ourselves, since both
9735           DefWindowProc and the handled method would set m.Result. 
9736           (Fixes #77732)
9737
9738 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9739
9740         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
9741           method also moves the window; instead implemented a copy of
9742           Control.ScaleCore (Part of fix for #77456)
9743         * TextBoxBase.cs: 
9744           - Created new CreateGraphicsInternal method to allow providing
9745             a graphics context when no handle is created without triggering
9746             handle creation. (Part of fix for #77456)
9747           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9748         * TextControl.cs: 
9749           - Switched Constructor to require TextBoxBase instead of Control (to
9750             allow uncast access to CreateGraphicsInternal)
9751           - Safeguarded use of owner.Handle property. No longer accessing it
9752             unless the handle is already created.
9753           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9754           - Now triggering a recalc when owning control becomes visible
9755         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
9756           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
9757           premature handle creation (Part of fix for #77456)
9758         * Control.cs:
9759           - We now only destroy our double-buffering buffers when the
9760             control is resized or disposed, but not when visibility
9761             changes. (The code even re-created them twice every time)
9762           - Now requiring a redraw of the buffer on visibility changes
9763             (fixes bug 77654 part 2)
9764           - Not passing OnParentVisibleChanged up unless the control
9765             is visible
9766           - CanFocus: Fixed to match MS documentation
9767           - Focus: Fixed to return actual focus state and to check if
9768             setting focus is legal before setting it
9769
9770 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
9771
9772         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
9773           when to draw focus rectangle by looking at parent focus and
9774           selected state instead. This fixes TabPages on Linux sometimes
9775           having none or multiple focus rectangles.
9776         * XplatUIX11.cs (SetFocus): 
9777           - Don't set the focus if the same window already has focus
9778           - Use SendMessage instead of PostMessage (like it's Win32
9779             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
9780             to match MS behaviour
9781         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
9782           are not selectable.
9783
9784 2006-03-07  Jackson Harper  <jackson@ximian.com>
9785
9786         * PictureBox.cs: Revert line I accidently committed last week.
9787
9788 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
9789
9790         * Control.cs: 
9791           - Added new IsRecreating and ParentIsRecreating properties to
9792             allow testing if RecreateHandle has been called on ourselves
9793             or one of our parents
9794           - WndProc(WM_DESTROY): If our control handle is being recreated
9795             we immediately need to create the handle when receiving the
9796             destroy, that way our child windows find a valid parent handle
9797             when they themselves are being recreated upon WM_DESTROY receipt
9798             (fix for bug #77654 part 1)
9799         * XplatUIX11.cs:
9800           - DestroyWindow: WM_DESTROY must be sent to our own window before
9801             notifying any child windows. MS documents that child windows
9802             are still valid when WM_DESTROY is received. (Control now relies on
9803             this behaviour)
9804           - Added some fine-grain debug options
9805
9806 2006-03-06  Jackson Harper  <jackson@ximian.com>
9807
9808         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
9809         box and base calculations off this.
9810         * MdiChildContext.cs:
9811         * MdiWindowManager.cs: Don't need to ensure scrollbars here
9812         anymore.
9813         
9814 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
9815
9816         * Splitter.cs: In situations where the affected control is added
9817           to the parent's control list after the splitter, we would not
9818           populate affected. Now we try populating it on mousedown, if
9819           it's not already set, and force it to be re-set whenever our
9820           parent changes.
9821
9822 2006-03-03  Matt Hargett  <matt@use.net>
9823
9824         * Control.cs: implement Control.Padding
9825         * Padding.cs: -Padding.All returns -1 when constructing with the
9826         implicit default ctor
9827         -Padding.ToString() matches MS.NET
9828         * ContainerControl.cs: implement
9829         ContainerControl.AutoScaleDimensions
9830         * ListControl.cs: implement ListControl.FormattingEnabled
9831         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
9832         * ButtonBase.cs:
9833         * TabPage.cs: Implement UseVisualStyleBackColor.
9834         * PictureBox.cs: Implement PictureBox.InitialImage.
9835
9836 2006-03-03  Mike Kestner  <mkestner@novell.com>
9837
9838         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
9839         event declarations to proxy to base event.
9840         * ListViewItem.cs: update to use ItemControl.
9841         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
9842         * ThemeWin32Classic.cs: update to new ListView theme API and fix
9843         column header label rendering for 0 width columns.
9844
9845 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
9846
9847         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
9848           that causes the control to be created. Fixes #77476.
9849
9850 2006-03-02  Jackson Harper  <jackson@ximian.com>
9851
9852         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
9853         expose_pending.
9854
9855 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
9856
9857         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
9858           passed in for the EventArgs (fixes #77690)
9859
9860 2006-03-01  Jackson Harper  <jackson@ximian.com>
9861
9862         * ScrollBar.cs: Refresh afterbeing resized.
9863
9864 2006-02-28  Mike Kestner  <mkestner@novell.com>
9865
9866         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
9867         Clean up a tracker compile warning.
9868         * MenuItem.cs: add internal PerformPopup method.
9869         [Fixes #77457]
9870
9871 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9872
9873         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
9874           implicit expose) when the text is set to null
9875
9876 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
9877
9878         * RichTextBox.cs (FlushText): When newline is true, we always
9879           need to split the line, even if no text is on it and we may
9880           never eat newlines. (Fixes #77669)
9881
9882 2006-02-28  Mike Kestner  <mkestner@novell.com>
9883
9884         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
9885         and set Selected instead.
9886         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
9887         collections.
9888
9889 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9890
9891         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
9892
9893 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
9894
9895         * FontDialog.cs:
9896           - Got rid of the panel. All controls are now directly added to
9897             the dialog form
9898           - It is now possible to set a font with the Font property
9899           - MinSize and MaxSize property do now what they should
9900           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
9901           - Searching and selecting a font with the font textbox works now,
9902             the same applies to the style and size textbox
9903           - Draw the correct 3D border in the example panel
9904           - Fixed a little mem leak (unused fonts didn't get disposed)
9905           - Many other internal updates/rewrites...
9906           - Fix typo
9907
9908 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9909
9910         * TextControl.cs: 
9911           - InsertRTFFromStream: Added 'number of characters inserted' argument
9912           - set_SelectedRTF: Now using the number of characters to calculate
9913             the new location for the selection and cursor (x/y cannot be used
9914             due to potentially already wrapped text)
9915
9916 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
9917
9918         * TextControl.cs: Added property and implemented means to allow 
9919           disabling recalculation of a document (can be used to speed up
9920           multiple inserts and is needed to make RTF inserts predictable, see
9921           bug #77659)
9922         * RichTextBox.cs: Using the new NoRecalc property of Document to
9923           keep x/y insert locations predictable. Also makes it faster inserting
9924           large chunks of RTF
9925
9926 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9927
9928         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
9929           it's easier for a child control to handle the other messages without
9930           having to duplicate the special functionality
9931         * TextBoxBase.cs
9932           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
9933             code to handle processing the key ourselves, in order to get 
9934             access to the result of KeyEventArgs.Handled. We now only call 
9935             ProcessKey if they key hasn't been handled already. Fixes #77526.
9936           - set_Text: If null or empty string is given, just clear the 
9937             document. Fixes part of #77526
9938
9939 2006-02-27  Jackson Harper  <jackson@ximian.com>
9940
9941         * SizeGrip.cs: Paint the background color before painting the grip
9942         so things look right.
9943         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
9944
9945 2006-02-27  Mike Kestner  <mkestner@novell.com>
9946
9947         * ListView.cs:
9948           - Restructure layout and invalidation model to remove a ton of
9949           flicker from the control and speed up performance in general.
9950           - Add manual column resize, flickers like crazy, but I already have
9951           some ideas on how I'll fix that. (#76822)
9952           - Merge the three Icon-based views into a single layout method.
9953           - Move item selection interaction logic from the item since 
9954           interaction with the collections is more appropriate to the view.
9955           - Deselection on non-item clicks.
9956         * ListViewItem.cs:
9957           - Encapsulate most of the layout. Add some internal props to trigger
9958           layout.  Move to a model where Items invalidate themselves instead
9959           of just invalidating the whole control every time something changes.
9960           - Invalidate on Text/Caption changes.
9961           - switch to an offset based layout model to avoid having to absolute
9962           position every element on item moves.
9963           - correct checkbox layout to conform to MS layout.
9964         * ThemeWin32Classic.cs:
9965           - refactor some column header drawing code.
9966           - fix string justification for column headers (#76821)
9967           - make SmallIcon labels top justified for compat with MS impl.
9968         * ThemeClearlooks.cs:
9969           - adjust to new ListViewItem internal checkbox bounds api.
9970
9971 2006-02-27  Jackson Harper  <jackson@ximian.com>
9972
9973         * Control.cs:  Change where implicit controls fall in the zorder.
9974         They are now on top of all children.
9975         - Synced AddImplicit code with Add
9976         - Removed unused enumerator.
9977         * SizeGrip.cs: Remove the TODO as its been TODONE.
9978
9979 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
9980
9981         * TextControl.cs(Insert): Combine the last lines unless the insertion
9982           string ends with \n\n, otherwise we leave one line too many (Fixes
9983           something I noticed with the testapp for #77526; the bug itself was
9984           already fixed in the previous checkin)
9985
9986 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
9987
9988         * RichTextBox.cs:
9989           - SelectionColor and SelectionFont methods no longer set absolute
9990             styles. Instead, the keep font or color respectively (This 
9991             resolves a long-standing FIXME in the code)
9992           - When flushing RTF text, the insert code now considers text trailing
9993             behind the insertion point (Fixes the bug where when replacing
9994             the selected text via SelectedRTF the remainder of the line behind 
9995             the selection would stay on the first insertion line)
9996         * TextBoxBase.cs:
9997           - AppendText now updates the selection points after inserting text
9998           - AppendText now ensures that the last tag (sometimes 0-length) of
9999             the document is used for the style information (Fixes part of 
10000             bug #77220)
10001         * TextControl.cs:
10002           - Created new FontDefiniton class to allow describing partial style
10003             changes
10004           - StreamLine() now takes a lines argument, to allow it to decide
10005             whether an encountered zero-length tag is the last in the document
10006             (which must be kept to not loose the font/color contained in it,
10007             for later appends)
10008           - Created Combine() and Split() methods for Marker structs, to 
10009             support marker updates due to reformatted documents (soft line
10010             wraps)
10011           - Implemented Document.CaretTag setter
10012           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
10013             of the last line (Not the cause, but also exposed by bug #77220)
10014           - Added LineTag argument to InsertString method, to allow callers
10015             to force a certain tag to be used (required to force use of the
10016             trailing zero-length tag of a document)
10017           - Now updating markers in Combine(), to avoid stale tag markers
10018           - Added some method descriptions to aid maintenance
10019           - Implemented new FormatText concept, allowing additive/subtractive
10020             formatting by only specifying the components that are to be 
10021             changed. This was needed for resolving the RTB.SelectedColor/
10022             RTB.SelectedFont fixmes
10023           - Added Break() support method to allow breaking up linetags (used
10024             for partial formatting)
10025           - Added GenerateTextFormat() method. It is used for partial 
10026             formatting and allows to generate a full font/color from given
10027             attributes and an existing tag.
10028
10029 2006-02-26  Jackson Harper  <jackson@ximian.com>
10030
10031         * XplatUIX11.cs:  Use the correct caption height.
10032         - Translate hittest coordinates to screen coords to match MS.
10033         * XplatUIWin32.cs: When we create MDI windows we need to reset
10034         some of the style flags, so we get a nice blank window, and can
10035         draw all the decorations ourselves.
10036         - Set a clipping rectangle on the non client paint event, the
10037         window manager drawing code needs one.
10038         * Form.cs: The window manager needs to know when the window state
10039         has been updated.
10040         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
10041         don't need to factor in border and title sizes in these
10042         methods. TODO: Remove the args and fix the call points.
10043         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
10044         properly.
10045         - Let the driver set the cursors.
10046         - Improve active window handling
10047         - Correct sizes for title bars and buttons.
10048         - Match MS drawing better
10049         * MdiWindowManager.cs: We don't need to handle border style
10050         updates specially anymore.
10051         - Check for scrollbars when windows are done moving
10052         - Handle Active properly.
10053         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
10054         correctly. I am spewing the exception though, so we don't hide the
10055         bugs.
10056         
10057 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
10058
10059         * DataGridViewRowPostPaintEventArgs.cs,
10060           DataGridViewCellPaintingEventArgs.cs,
10061           DataGridViewRowCollection.cs,
10062           DataGridViewRowPrePaintEventArgs.cs,
10063           DataGridViewCell.cs: Clear a few warnings and implement a few
10064           exceptions that should be thrown.
10065
10066 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
10067
10068         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
10069           'inheriting' our parent's (non-default) cursor. (Part of
10070            the fix for #77479)
10071
10072 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
10073
10074         * XplatUIX11.cs: Fixed cast to make csc happy
10075
10076 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
10077
10078         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
10079           it's for the client area (part of fix for #77479 and needed
10080           for MDI window cursor handling)
10081         * XplatUIX11.cs
10082           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
10083             the appropriate default cursors and also passing the message
10084             up the parent chain 
10085           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
10086             for non-client areas
10087
10088 2006-02-15  Jackson Harper  <jackson@ximian.com>
10089
10090         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
10091         is a real MDI window
10092
10093 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
10094
10095         * X11DesktopColors.cs: Instead of checking the desktop session
10096           string for "KDE" check if it starts with "KDE"
10097
10098 2006-02-10  Jackson Harper  <jackson@ximian.com>
10099
10100         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
10101         systems).
10102
10103 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
10104
10105         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
10106           errors
10107         * ColorDialog.cs:
10108           - Got rid of the panel. All controls are now directly added to
10109             the dialog form
10110           - Changed to mono coding style
10111
10112 2006-02-10  Jackson Harper  <jackson@ximian.com>
10113
10114         * InternalWindowManager.cs: We don't need the set visibility to
10115         false hack anymore now that peter has written beautiful shutdown
10116         code.
10117
10118 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
10119
10120         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
10121           where already explicitly destroyed
10122
10123 2006-02-10  Jackson Harper  <jackson@ximian.com>
10124
10125         * MdiClient.cs: Handle the case where windows are too high or to
10126         the left and we need scrollbars.
10127
10128 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
10129
10130         * MimeIcon.cs: Added some icons
10131         * FileDialog.cs:
10132           - Fixed bug #77477
10133           - Got rid of the panel. All controls are now directly added to
10134             the dialog form
10135           - Changed to mono coding style
10136           - On Linux "My Computer" and "My Network" will now show some
10137             more usefull information. A new class, MasterMount, gathers
10138             this information from /proc/mount. Updated MWFFileView to make
10139             use of this information
10140           - Fixed a bug that caused FileDialog to crash when
10141             ".recently_used" file had a zero size
10142           - FilterIndex does now what it should
10143           - Some Refactoring
10144         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
10145             FileDialog changes
10146
10147 2006-02-09  Jackson Harper  <jackson@ximian.com>
10148
10149         * ComboBox.cs: Don't touch if null.
10150
10151 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
10152
10153         * Cursor.cs: 64bit safeness fix
10154         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
10155
10156 2006-02-09  Jackson Harper  <jackson@ximian.com>
10157
10158         * Form.cs: If a form is made into an MDI form update the styles so
10159         all the props can get set correctly.
10160         - Kill the mdi_container when we dont need it anymore.
10161         * InternalWindowManager.cs: Add missing NOT
10162
10163 2006-02-08  Jackson Harper  <jackson@ximian.com>
10164
10165         * InternalWindowManager.cs: Respek clipping when drawing MDi
10166         decorations.
10167
10168 2006-02-08  Jackson Harper  <jackson@ximian.com>
10169
10170         * Hwnd.cs: Add bits to track non client expose events.
10171         * XplatUIX11.cs: Track non client expose events on the hwnd. This
10172         gives us a proper invalid rect and will allow for some nice
10173         optimizations with NC client drawing
10174         - MDI windows are children windows, so move their style handling
10175         into the child window block.
10176         * InternalWindowManager.cs: Remove a state reset that was
10177         getting invoked at the wrong time. Fixes managed windows getting
10178         into a 'stuck' captured state.
10179
10180 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
10181
10182         * TextControl.cs (Document.ctor): Now initializing 
10183           selection_anchor. Fixes #77493
10184
10185 2006-02-07  Jackson Harper  <jackson@ximian.com>
10186
10187         * TrackBar.cs: The increment/decrements were backwards.
10188
10189 2006-02-07  Mike Kestner  <mkestner@novell.com>
10190
10191         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
10192         to the instance itself.
10193
10194 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
10195
10196         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
10197           on ulongs and pointers, the size differs between 32bit and 64bit
10198           systems. 
10199
10200 2006-02-07  Mike Kestner  <mkestner@novell.com>
10201
10202         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
10203         for 64 bit platforms to work around a metacity bug. 
10204
10205 2006-02-07  Jackson Harper  <jackson@ximian.com>
10206
10207         * TrackBar.cs: Process the input keys we need, and hookup to
10208         KeyDown instead of using WndProc, so we get key messages.
10209
10210 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
10211
10212         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
10213           machine we're on. 
10214         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
10215           we need to translate the XdndVersion atoms array before sending it
10216
10217 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
10218
10219         * XplatUIX11.cs: 
10220           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
10221             number of bits for the property, not the number of bytes. The
10222             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
10223             but would not crash since it specified 8 bits instead of 4 bits)
10224           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
10225             defined as XID -> long in the C headers)
10226           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
10227             references since those are now IntPtr to begin with
10228           - Switched all Atom.XXX 'int' casts to IntPtr casts
10229           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
10230           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
10231           - Added XChangeActivePointerGrab DllImport (for X11DnD)
10232         * X11Structs.cs:
10233           - Changed 'int' type for Atoms in XEvent structures to IntPtr
10234           - Changed atom in HoverStruct to be IntPtr
10235         * X11DnD.cs:
10236           - Removed local DllImports, switched code to use those from XplatUIX11
10237           - Removed/fixed casts related to the switch of Atom to be a IntPtr
10238
10239 2006-02-06  Mike Kestner  <mkestner@novell.com>
10240
10241         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
10242         method signatures in the import region.  There may still be some
10243         lingering struct marshaling issues, as I didn't drill down into those.
10244         Yet.
10245
10246 2006-02-06  Jackson Harper  <jackson@ximian.com>
10247
10248         * ComboBox.cs: Dont manually set the top_item, this is computed
10249         when the scrollbar position is set.
10250
10251 2006-02-06  Mike Kestner  <mkestner@novell.com>
10252
10253         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
10254         startup crashes on amd64.  There's other fixes needed.  All pinvoke
10255         usage of Atom needs to be mapped to IntPtr for example.  And there are
10256         likely other int/long issues to be addressed.
10257
10258 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
10259
10260         * FileDialog.cs: One more...
10261
10262 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10263
10264         * FileDialog.cs: Next try
10265
10266 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10267
10268         * FileDialog.cs: First part of fix for #77464
10269
10270 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10271
10272         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
10273           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
10274           AcceptButton border drawing.
10275
10276 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
10277
10278         * Form.cs: Moved positioning of form after auto scaling is applied,
10279           otherwise it would possibly use wrong form size.
10280
10281 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
10282
10283         * Control.cs (RecreateHandle): No need to re-create any child
10284           controls, the child windows will get destroyed automatically by
10285           the windowing system or driver, and re-created when the handle
10286           is being accessed the first time. Fixes #77456
10287         * Form.cs: No longer setting the form to closing if the handle is 
10288           being recreated. This seems like the right thing to do, don't
10289           have a bug or testcase for this, though.
10290
10291 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10292
10293         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
10294           controls to avoid unwanted side effects
10295
10296 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
10297
10298         * Control.cs: 
10299           - ScaleCore needs to scale the bounds, not the ClientSize of the 
10300             control. Fixes #77416.
10301           - DefaultSize is 0,0 for control
10302         * TextBoxBase.cs: 
10303           - DefaultSize is 100, 20
10304           - SetBoundsCore: Now enforcing the height, no matter if the provided
10305             height is more or less than the preferred one, as long as AutoSize
10306             is on
10307         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
10308
10309 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10310
10311         * Control.cs:
10312           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
10313             call unless both performLayout is true *and* we have a pending
10314             layout change
10315           - ResumeLayout: MS does not completely nest Suspend and Resume,
10316             they bottom out at 0, fixed our code to match that.
10317           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
10318             SetBoundsCore, we were updating even when we shouldn't. This fixes
10319             swf-anchors mis-anchoring when resizing the app fast and lots.
10320           - UpdateDistances: Now only setting the left and top distance if 
10321             we have a parent and are not suspended, this is based on
10322             a suggestion by Don Edvaldson in bug #77355.
10323           - OnVisibleChanged: Fixed logic when to create the control. We may
10324             not create the control if we have no parent or if it's not visible;
10325             switched to using Visible property instead of is_visible field 
10326             since the property also considers parent states. This fixes a bug
10327             when starting Paint.Net
10328
10329 2006-02-02  Jackson Harper  <jackson@ximian.com>
10330
10331         * Form.cs: If the forms handle hasn't been created yet don't call
10332         into xplatui to make it top most, just set the topmost flag on the
10333         form in CreateParams
10334         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
10335
10336 2006-02-01  Jackson Harper  <jackson@ximian.com>
10337
10338         * ScrollableControl.cs: Refactored the Recalculate method a
10339         little, this wasn't handling all the variants of bottom and right
10340         bars needed to be added and added/removed based on their
10341         counterparts being added/removed (which changes the drawable
10342         size). Also we special case client widths and heights of 0 and
10343         don't add the scrollbar for those.
10344
10345 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
10346
10347         * XplatUIX11.cs: 
10348           - Added method to get AbsoluteGeometry(); currently unused, but might
10349             be used in the future, if we try again to figure out toplevel
10350             coordinates with some more crappy window managers
10351           - Added FrameExtents() method to retrieve the WM set decoration size
10352           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
10353             to deal with at least KDE, FVWM and metacity (Fixes #77092)
10354         * Hwnd.cs: 
10355           - Added whacky_wm tracking var for metacity
10356           - Added logic to have default menu height if the actual menu height
10357             has not yet been calculated (part of fix for #77426)
10358         * Form.cs: Keep track whether client size has been set and re-set 
10359           it if a menu is added/removed afterwards (Fixes #77426)
10360
10361 2006-01-31  Jackson Harper  <jackson@ximian.com>
10362
10363         * Control.cs: When a new Site is set on the component attempt to
10364         pull the AmbientProperties from it.
10365
10366 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
10367
10368         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
10369           in the background of the owning form. Fixes #77332
10370
10371 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10372
10373         * MimeIcon.cs: Fix for #77409
10374
10375 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10376
10377         * XplatUIX11GTK.cs: Initial import
10378
10379 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
10380
10381         * FixedSizeTextBox: fixes class signature
10382
10383 2006-01-30  Jackson Harper  <jackson@ximian.com>
10384
10385         * FixedSizeTextBox.cs: New internal class that represents a
10386         textBox that will not be scaled.
10387         * TreeView.cs:
10388         * ComboBox.cs:
10389         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
10390         standard TextBox.
10391                 
10392 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
10393
10394         * XplatUIX11.cs: Retrieve default screen number instead of
10395           assuming 0. Attempted fix for #77318
10396
10397 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
10398
10399         * XplatUIWin32.cs: 
10400           - GetWindowPos: When a window is parented by FosterParent, use 
10401             the desktop instead of FosterParent as the base to get coordinates
10402           - CreateWindow: Don't make FosterParent the parent window for Popups
10403             if we don't want a taskbar entry, Popups automatically don't get one
10404         * Hwnd.cs: Need to call remove to actually remove the key from the
10405           hash table
10406
10407 2006-01-30  Mike Kestner  <mkestner@novell.com>
10408
10409         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
10410
10411 2006-01-30  Jackson Harper  <jackson@ximian.com>
10412
10413         * TreeView.cs:
10414         * TreeNode.cs: Raise events no matter how the treenode is
10415         checked. Patch by Don Edvalson.
10416
10417 2006-01-30  Jackson Harper  <jackson@ximian.com>
10418
10419         * TreeNode.cs: Signature fix.
10420
10421 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
10422
10423         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
10424
10425 2006-01-20  Mike Kestner  <mkestner@novell.com>
10426
10427         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
10428         event forwarding when menus are active.
10429         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
10430         Most of the patch is pdb's with a little rework.
10431
10432 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10433
10434         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
10435           Removed GetMenuDC and ReleaseMenuDC methods; replaced
10436           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
10437         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
10438         * InternalWindowManager.cs: Added use of PaintEventStart/End to
10439           handling of WM_NCPAINT message, now passing the PaintEventArgs to
10440           the PaintWindowDecorations method
10441         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
10442         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
10443         * MenuAPI.cs: Made tracker window invisible
10444         * XplatUIWin32.cs:
10445           - Removed GetMenuDC and ReleaseMenuDC methods
10446           - Implemented the client=false path for PaintEventStart and
10447             PaintEventEnd
10448
10449 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10450
10451         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
10452         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
10453           styles
10454         * Form.cs: 
10455           - MaximizeBox, MinimizeBox: Recreate the handle when setting
10456             the style
10457           - CreateParams: Reworked the styles to match MS look'n'feel,
10458             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
10459             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
10460
10461 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10462
10463         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
10464           window is not mapped, since otherwise every form that's being 
10465           created is considered minimized, which is wrong.
10466         * Form.cs: Catching the exception and returning our internal value
10467           instead
10468
10469 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10470
10471         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
10472           SetWindowMinMax() to have means to tell the driver about the minimum,
10473           maximum and maximized state window sizes. (Part of the fix for #76485)
10474         * Form.cs:
10475           - Implemented tracking of minimum and maximum window size, now calling
10476             new SetWindowMinMax() driver method to tell the driver (Part of the
10477             fix for #76485)
10478           - Finished handling of WM_GETMINMAXINFO method, now setting all values
10479             (Completes fix for #76485)
10480           - Calling new SetWindowMinMax driver method when the handle for a 
10481             form is created, to make sure the driver knows about it even if
10482             the values have been set before the window was created
10483           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
10484             to avoid messing up our anchoring calculations (partial fix
10485             for #77355)
10486         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
10487         * XplatUIX11.cs:
10488           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
10489           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
10490             (and presumably other freedesktop.org compliant WMs). Left the
10491             assumption unmapped=minimized, needed for SetVisible to work.
10492           - Now setting the window state when creating windows
10493           - Fixed SetVisible to consider/set the window state when mapping
10494             a Form. We cannot set the state before it's mapped, and we cannot
10495             use Form.WindowState once it's mapped (since it would ask the
10496             driver and get 'normal'. Therefore, we grab the state before
10497             mapping, map, and then set state.
10498           - Implmemented SetWindowMinMax method; Metacity does not seem to
10499             honor the ZoomHints, though.
10500         * XplatUIWin32.cs:
10501           - Removed MINMAXINFO (moved to XplatUIStructs)
10502           - Added SetWindowMinMax stub (on Win32 the only way to set that
10503             information is in response to the WM_GETMINMAXINFO message, which
10504             is handled in Form.cs)
10505           - Added logic to SetVisible to set the proper window state when a 
10506             form is made visible (fixes #75720)
10507
10508 2006-01-26  Jackson Harper  <jackson@ximian.com>
10509
10510         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
10511         same way we handle them with Invoke.
10512
10513 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
10514
10515         * Form.cs:
10516           - Added tracking of window state so CreateParams can return
10517             the appropriate style
10518           - Moved setting of WS_CAPTION style in CreateParams to allow
10519             styles without caption
10520         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
10521           control if the TextBox property is accessed. Fixes #77345
10522         * Control.cs:
10523           - get_Created: now uses is_disposed and is_created to determine
10524             return value (suggested by Jackson)
10525           - CreateHandle: No longer exits if the handle is being recreated
10526           - RecreateHandle: If the handle is not yet created call the 
10527             appropriate method to create either control or handle. If the
10528             control is already created CreateHandle will simply exit instead
10529             of just creating the handle
10530         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
10531           now SendMessage WM_DESTROY directly to the control when DestroyWindow
10532           is called.
10533         * XplatUIX11.cs: 
10534           - When DestroyWindow is called, instead of waiting for the 
10535             DestroyNotification from X11, we directly post it to the WndProc
10536             and immediately dispose the hwnd object.
10537             Same applies to DestroyChildWindows, and this obsoletes the
10538             expose_pending tracking. Contrary to Win32 behaviour we destroy our
10539             child windows before our own, to avoid X11 errors.
10540           - Removed the direct sending of WM_PAINT on UpdateWindow
10541         * XplatUIWin32.cs:
10542           - Reworked DoEvents and GetMessage to allow access to internal queue
10543             even when trying non-blocking access to the queue.  Fixes #77335. 
10544             Based on a patch suggestion by Don Edvalson. The new private
10545             GetMessage can now also be used as a backend for a PeekMessage
10546             frontend version.
10547         * XplatUI.cs: Improved debug output for CreateWindow
10548
10549 2006-01-25  Jackson Harper  <jackson@ximian.com>
10550
10551         * Help.cs: Allow param to be null. Patch by Don Edvalson.
10552
10553 2006-01-24  Jackson Harper  <jackson@ximian.com>
10554
10555         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
10556         when we have a MaxDropItems lower then the selected index.
10557
10558 2006-01-24  Jackson Harper  <jackson@ximian.com>
10559
10560         * Control.cs: Don't allow selection of non visible controls, allow
10561         selection of controls without parents.
10562
10563 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10564
10565         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
10566         * DataGridDrawingLogic.cs: Add editing row only when is necessary
10567
10568 2006-01-23  Jackson Harper  <jackson@ximian.com>
10569
10570         * UpDownBase.cs: Make the textbox handle all the selection and
10571         tabbing. This fixes tabing to updown controls.
10572
10573 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10574
10575         * TextBoxBase.cs: fixes exception thown the object was null
10576
10577 2006-01-23  Jackson Harper  <jackson@ximian.com>
10578
10579         * ButtonBase.cs: Just use the base CreateParams. They set
10580         visibility and enabled correctly.
10581         * ComboBox.cs:
10582         * TrackBar.cs:
10583         * MonthCalendar.cs: Lets let the base set as much of the
10584         createparams as possible so we don't have duplicate code all over
10585         the place.
10586
10587 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
10588
10589         * ThemeGtk.cs: Added TrackBar and some experimental code to
10590           get double buffering back
10591
10592 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10593
10594         * DataGrid.cs: Allows row number set internally higher than the last
10595         when creating a new row. Restores the editing functionality.
10596
10597 2006-01-20  Mike Kestner  <mkestner@novell.com>
10598
10599         * MimeIcon.cs: delay Image creation until the icons are accessed
10600         instead of creating 190 scaled images on GnomeHandler startup.
10601
10602 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
10603
10604         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
10605           first call base before processing the event. Fixes #77279
10606
10607 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
10608
10609         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
10610           that the stride for the GDI bitmap would match the stride of
10611           a DIB or a Cursor.
10612
10613 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
10614
10615         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
10616
10617 2006-01-19  Jackson Harper  <jackson@ximian.com>
10618
10619         * ComboBox.cs: Hookup the text controls keydown event so we get
10620         those when the text control has the focus.
10621
10622 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10623
10624         * Label.cs: Now using the base events instead of defining new ones;
10625           this allows us to just call the base properties without having to
10626           duplicate all base property logic 
10627
10628 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10629
10630         * Label.cs: A label by default is not a tabstop (Fixes one of our
10631           failing nunit tests)
10632
10633 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10634
10635         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
10636         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
10637
10638 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10639
10640         * Cursor.cs: Reimplemented creating cursor bitmaps without using
10641           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
10642           This fixes #77218
10643         * XplatUIWin32.cs: 
10644           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
10645             constructor creates images that can't be saved. Part of the fix
10646             for #76103
10647           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
10648           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
10649             bug fix for handling window state in forms properly)
10650
10651 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10652
10653         * ThemeGtk.cs: Simplify ScrollBar drawing
10654
10655 2006-01-18  Jackson Harper  <jackson@ximian.com>
10656
10657         * Splitter.cs: Set the default dock style for the splitter control
10658         in the constructor.
10659
10660 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10661
10662         * ThemeGtk.cs: Corrected StateType and ShadowType for
10663           gtk_paint_box
10664
10665 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10666
10667         * Control.cs: Make use of Theme.DoubleBufferingSupported
10668         * ThemeGtk.cs:
10669           - Added drawing for flat style buttons
10670           - Added ScrollBar drawing
10671
10672 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10673
10674         * ThemeClearlooks.cs: Removed some unneeded code.
10675         * ThemeGtk.cs: First part of ThemeGtk enhancements.
10676
10677 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10678
10679         * LinkLabel.cs: We need to update the hover drawing when
10680           leaving the control as well.
10681
10682 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
10683
10684         * DataGrid.cs: Clicking on non empty areas in the columns
10685            area was giving an exception
10686
10687 2006-01-17  Jackson Harper  <jackson@ximian.com>
10688
10689         * ThemeWin32Classic.cs:
10690         * ListView.cs: Do not draw/clip the headers when the header style
10691         is None.
10692
10693 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10694
10695         * DataGrid.cs: Fixes 77260
10696         
10697 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10698
10699         * DataGrid.cs: Clicking on a column on a empty grid was giving
10700           an exception
10701
10702 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10703
10704         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
10705           or any keypress will crash the grid.
10706
10707 2006-01-17  Mike Kestner  <mkestner@novell.com>
10708
10709         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
10710         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
10711         invisible/previously-visible items.
10712         [Fixes #76909]
10713
10714 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
10715
10716         * ThemeClearlooks.cs:
10717         - Added CL_Draw_Button method; now other theme controls that are 
10718           not derived from button or do not have a button can draw buttons
10719           too
10720         - Updated ComboBox drawing
10721         - Beautified RadioButton drawing
10722         - Corrected drawing of bottom and left tabs
10723         - Beautified DateTimePicker and MonthCalendar
10724         - Added CPDrawButton and CPDrawRadioButton
10725
10726 2006-01-16  Jackson Harper  <jackson@ximian.com>
10727
10728         * ComboBox.cs: Set the initial value of the scrollbar to the
10729         current index. Reduce the numbers of refreshs and IndexOfs called.
10730
10731 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
10732
10733         * FileDialog.cs: When the file listview is focused hitting the
10734           backspace key moves the fileview to the parent directory
10735
10736 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10737
10738         * Form.cs: 
10739           - Added RecreateHandle call when changing taskbar visibility to 
10740             trigger reparenting in Win32 driver (Fixes #75719)
10741           - If a window has minimize or maximize buttons, it cannot have
10742             a help button
10743         * XplatUIWin32.cs:
10744           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
10745             the toplevel form with FosterParent (A toolwindow not on the
10746             taskbar) (Fixes #75719)
10747           - Made FosterParent a toolwindow
10748
10749 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10750
10751         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
10752
10753 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10754
10755         * ToolTip.cs: If SetToolTip is called from a control and the mouse
10756           is currently over that control, make sure that tooltip_window.Text
10757           gets updated
10758
10759 2006-01-13  Mike Kestner  <mkestner@novell.com>
10760
10761         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
10762
10763 2006-01-13  Jackson Harper  <jackson@ximian.com>
10764
10765         * TreeView.cs: On MS GetNodeAt never actually factors in the X
10766         value passed.  Also redraw the selected node when we recieve
10767         focus, so tabbing between trees works correctly.
10768
10769 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10770
10771         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
10772           ~/.gconf/%gconf-tree.xml, so use
10773           .gconf/desktop/gnome/interface/%gconf.xml
10774
10775 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10776
10777         * TextControl.cs: Draw text in gray if control is disabled
10778
10779 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10780
10781         * TreeView.cs: Draw the focus rectangle outside the highlight, to
10782           make sure it's always visible. Fixes #76680.
10783
10784 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10785
10786         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
10787
10788 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
10789
10790         * PageSetupDialog.cs: Added.
10791         * PrintDialog.cs: Attributes.
10792         * PrintPreviewControl.cs: Updates.
10793         * PrintPreviewDialog.cs: Updates.
10794         
10795 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10796
10797         * Control.cs: Undid my selection check fix, since it's not needed
10798         * TextBoxBase.cs:
10799           - Now considering the presence of hscroll/vscroll when sizing
10800             vscroll/hscroll respectively. Fixed bug #77077
10801           - Added Left/Up/Down/Right to IsInputKey list to prevent
10802             ContainerControl from stealing them. This fixes what I broke
10803             with my last checkin.
10804
10805 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
10806
10807         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
10808           I finally understand how the property can be set without a setter :-)
10809
10810 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10811
10812         * Application.cs:
10813           - Switched RunLoop to use static Message.Create to create a 
10814             Message object
10815           - Added PreProcessMessage call in runloop for keyboard events; this
10816             is part of the fix for #77219, I overlooked this originally in the
10817             MSDN doc for PreProcessMessage
10818         * Control.cs:
10819           - Removed call to PreProcessMessage from handling of keyboard 
10820             messages; it's supposed to be done in the message pump
10821           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
10822             per MSDN documentation.
10823           - IsInputChar: All chars are input chars by default; removed the 
10824             parent calling chain, MS does not document that
10825           - PreProcessMessage: If IsInputChar is true, we want to return false
10826             to allow dispatching of the message
10827           - When selecting the next control, now also check that we're not
10828             selecting ourselves again and therefore return a false positive.
10829         * TextBoxBase.cs:
10830           - Tried to match return values for IsInputKey and ProcessDialogKey
10831             to what MS returns; moved processing of our special keys outside
10832             ProcessDialogKey since MS does not seem to return true on those.
10833           - Moved code that previously was in ProcessDialogKey into new private
10834             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
10835           - Reworked handling of WM_CHAR to not have to duplicate code from
10836             Control.cs anymore, instead we simply call down to base.
10837            
10838 2006-01-12  Jackson Harper  <jackson@ximian.com>
10839
10840         * ComboBox.cs: We always need to refresh the text area when
10841         EndUpdate is called. Fixes the combobox in the file dialog.
10842         * Control.cs: Don't create the creator_thread until the controls
10843         handle is created.  Also in InvokeRequired we check if the
10844         creator_thread is null. This gives the effect of InvokeRequired
10845         returning true if the controls handle is not created yet, and
10846         matches MS.
10847
10848 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10849
10850         * XplatUI.cs:
10851           - Added StartLoop() driver method. This is used to allow drivers to
10852             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
10853             loop for a particular thread
10854           - Added EndLoop() driver method. This is called once the message
10855             pump for the thread is shut down
10856           - Added SupportsTransparency method to allow the driver to indicate
10857             opacity support for windows
10858         * Form.cs:
10859           - Removed TODO attribute, completed AllowTransparency property
10860           - Added documented logic to Opacity
10861         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
10862           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
10863           versions of CompatibleTextRendering
10864         * X11Structs.cs: Added opacity atom to our atom enumeration
10865         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
10866           of a form might be set before it's reparented by the WM, and we need
10867           the opacity value without calling up to Form)
10868         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
10869           SupportsTransparency() driver methods
10870         * Application.cs: Now calling StartLoop and EndLoop driver methods
10871         * XplatUIX11.cs:
10872           - Added opacity atom registration
10873           - Added StartLoop()/EndLoop() methods. They're empty right now but
10874             will need to get implemented when we switch to a per-thread queue
10875           - Implemented SupportsTransparency() method
10876           - Implemented SetWindowTransparency() method
10877           - Added support for setting the opacity value when a window is
10878             reparented (since the opacity needs to be set on the WM frame)
10879         * XplatUIOSX.cs, XplatUIWin32.cs:
10880           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
10881
10882 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10883
10884         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
10885
10886 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10887
10888         * FileDialog.cs: Added ToolTip for MWFFileView
10889         * MimeIcon.cs: Rewrote GnomeHandler.
10890           - Get currently used gnome icon theme from
10891             ($HOME)/.gconf/%gconf-tree.xml
10892           - Make use of inherited icon themes
10893           - Support SVG icon themes like Tango via librsvg
10894
10895 2006-01-12  Miguel de Icaza  <miguel@novell.com>
10896
10897         Revert's Jackson's revert which broke 2.0 builds.   Fix both
10898         builds. 
10899         
10900         * Application.cs: Move the use_compatible_text_rendering outside
10901         the NET_2_0 define.  If we ever need to use the
10902         use_compatible_text_rendering on the individual controls they will
10903         access the variable from the common shared code paths.
10904
10905 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10906
10907         * XplatUI.cs:
10908           - Added more granular debug options
10909           - Added method to print both window text and id
10910           - Switched debug output to use new Window() debug method
10911           - Added IsEnabled() driver method
10912           - Added EnableWindow() driver method
10913         * Form.cs:
10914           - Removed end_modal; no longer needed, new loop handles termination
10915             via 'closing' variable
10916           - If form is modal, setting DialogResult will now initiate loop
10917             termination via 'closing' variable
10918           - Added support for is_enabled/WS_DISABLED to CreateParams
10919           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
10920             does all the work
10921           - Removed code that's now in RunLoop from ShowDialog()
10922           - Added various documented sanity checks to ShowDialog()
10923           - Added handling of WM_DESTROY message; we set 'closing' on getting
10924             the message to indicate the message pump to terminate
10925           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
10926             send by the Application.ExitThread method. (We send the message
10927             to destroy the window after all other events have been
10928             processed through the queue, instead of destroying the handle 
10929             directly)
10930           - Moved code from Close() method to WM_CLOSE handler; added logic
10931             to only send close-related events if the form is not displayed
10932             modal
10933         * Splitter.cs (..ctor): Fixed typo in resource name
10934         * Control.cs:
10935           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
10936             brush now
10937           - set_Cursor: Now only setting calling into XplatUI if the handle for
10938             the control is already created; this avoids implict handle creation
10939             or crashes if it's not created
10940           - set_Enabled: Now setting the enabled state via the new driver method
10941             instead of just tracking it
10942           - CreateParams: Added logic to set WS_DISABLED based on enabled state
10943           - CreateControl: Reordered event firing and method calls to more
10944             closely fire events in the order MS does. Now setting the
10945             enabled state in the driver when creating the control.
10946           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
10947             match MS order
10948         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
10949           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
10950         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
10951         * Hwnd.cs:
10952           - Added tracking of window enabled state (get_Enabled/set_Enabled)
10953           - Added EnabledHwnd property to easily allow a driver to find the
10954             handle of the first enabled window in the parent chain (this is
10955             used by drivers to pass up input events of disabled windows)
10956         * XplatUIDriver.cs: Added IsEnabled() method
10957         * Application.cs:
10958           - Removed crude and obsolete exiting tracking variable
10959           - Removed internal ModalRun(); replaced by RunLoop()
10960           - Implemented private CloseForms() method to allow closing all 
10961             windows owned by a particular (or all) threads
10962           - Exit() now properly closes all windows without forcing the message
10963             pump to quit
10964           - Removed obsolete InternalExit() method
10965           - Changed Run() methods to use new RunLoop() message pump
10966           - Implemented new RunLoop() method for both modal and non-modal forms
10967         * CommonDialog.cs:
10968           - get_CreateParams: Added setting of WS_DISABLED
10969           - Simplified ShowDialog(); now all the work is done in RunLoop(),
10970             invoked via Form.ShowDialog()
10971         * NativeWindow.cs: We don't remove the window from the collection when
10972           the handle is destroyed; there might still be messages for it in the
10973           queue (mainly the resulting WM_DESTROY); instead it will be removed
10974           when Control calls InvalidateHandle in the WM_DESTROY handler
10975         * XplatUIX11.cs:
10976           - CreateWindow: Added logic to handle the WS_DISABLED window style
10977           - EnableWindow: Implemented based on Hwnd.Enabled
10978           - GetMessage: Reset PostQuitState so the method can be called again
10979           - Implemented support for disabled windows (passing messages to the
10980             first enabled parent) in handling all input messages
10981           - Added optimizations for handling Expose events
10982           - Implemeted new driver method IsEnabled()
10983           - Now always resetting paint pending tracking vars when we start paint
10984           - Re-implemented UpdateWindow via just sending a WM_PAINT message
10985         * XplatUIOSX.cs: Added IsEnabled method stub
10986         * XplatUIWin32.cs: Implemented new IsEnabled() method
10987
10988 2006-01-11  Jackson Harper  <jackson@ximian.com>
10989
10990         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
10991         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
10992         variables a little.
10993         * ColorDialog.cs: Clear out the old form before adding the new
10994         panel.  
10995
10996 2006-01-11  Jackson Harper  <jackson@ximian.com>
10997
10998         * X11Dnd.cs: Make sure to add all the text formats when adding
10999         strings to the data object.
11000         * TreeNodeCollection.cs: When adding to a sorted tree we need to
11001         do some redrawing too.  Also change the UpdateNode to an
11002         UpdateBelow so the newly added node gets painted.
11003         
11004 2006-01-11  Miguel de Icaza  <miguel@novell.com>
11005
11006         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
11007         LinkLabel.cs, PropertyGrid.cs: Implement the
11008         UseCompatibleTextRendering property for 2.x
11009
11010         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
11011
11012 2006-01-11  Jackson Harper  <jackson@ximian.com>
11013
11014         * TreeView.cs: Use the property for setting the selected node so
11015         the correct events get raised.
11016         * TreeNode.cs: Update the tree when the fore/back colours of a
11017         node are set.
11018
11019 2006-01-10  Jackson Harper  <jackson@ximian.com>
11020
11021         * TreeView.cs: Allow setting SelectedNode to null.
11022
11023 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11024
11025         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
11026
11027 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11028
11029         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
11030
11031 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11032
11033         * PrintDialog.cs: Added attributes and set default property values.
11034
11035 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11036
11037         * PrintControllerWithStatusDialog.cs: 
11038         Added PrintControllerWithStatusDialog.
11039
11040 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11041
11042         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
11043         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
11044
11045 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11046
11047         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
11048
11049 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11050
11051         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
11052         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
11053
11054 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
11055
11056         * MimeIcon.cs: Added internal class SVGUtil.
11057
11058 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
11059
11060         * FileDialog.cs: Don't crash if there are two files with the
11061           same name but different locations.
11062
11063 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
11064
11065         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
11066         dates across multiple month grids. Used to not highlight entire 
11067         month, but does now.
11068         
11069 2006-01-06  Jackson Harper  <jackson@ximian.com>
11070
11071         * MonthCalendar.cs: Removed DoEvents call to prevent a running
11072         message loop. Change timer intervals to numbers that seem more
11073         natural.
11074
11075 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
11076
11077         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
11078           object for location info since screen object is now implemented.
11079
11080 2006-01-05  Jackson Harper  <jackson@ximian.com>
11081
11082         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
11083         * AsyncMethodResult.cs: We no longer use a WeakReference for the
11084         AsyncMethodResult, this is because we ALWAYS want the
11085         ManualResetEvent to get set.
11086         * Control.cs: When disposing use an async invoke to call shutdown
11087         code, so that thigns don't block on the finalizer thread.  Also
11088         check if we even have a message loop before trying to send
11089         messages, if we don't then don't bother sending messages.
11090         - No more weak references for async methods
11091         * XplatUIDriver.cs: No more weak references for async methods.
11092
11093 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11094
11095         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
11096           returns two FontFamily with the same name
11097
11098 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
11099
11100         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
11101           drawing disabled text. Instead using the ColorGrayText color
11102
11103 2006-01-04  Jackson Harper  <jackson@ximian.com>
11104
11105         * TreeNode.cs: redraw the node when its image index is changed.
11106
11107 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
11108
11109         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
11110           time I checked there are no others like it.
11111
11112 2006-01-04  Jackson Harper  <jackson@ximian.com>
11113
11114         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
11115         this gives the behavoir I was looking for.
11116         * Control.cs: Special case Invoking EventHandlers, this matches MS
11117         and fixes part of bug #76326.
11118
11119 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11120
11121         * ThemeClearlooks.cs, FileDialog.cs:
11122           - Reflect the latest Theme class changes
11123           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
11124             with DateTime
11125             
11126 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11127
11128         * Theme.cs: Cache UI resource images and resize them if needed
11129
11130 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11131
11132         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
11133           is called. This fixes the crash in Nexxia when setting the font
11134           attributes in the chat. [However, RTF needs a look-over to make sure
11135           that all SelectionXXX methods handle the special case that selection
11136           is empty and therefore the change must be applied to all text starting
11137           at the cursor/selection start]
11138
11139 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
11140
11141         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11142           XplatUIOSX.cs: Added SendMessage and PostMessage methods
11143         * X11Keyboard.cs: Switched to new way of calling PostMessage
11144
11145 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11146
11147         * Theme.cs: Added theme interface for images to allow the theme to
11148           control what images are used for things like FileDialog, MessageBox
11149           icons, etc.
11150         * MessageBox.cs: Now uses the new Theme icon/image interfaces
11151
11152 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
11153
11154         * FileDialog.cs:
11155           - Removed some dead code
11156           - Opening a recently used file does work now
11157           - Small UI enhancements
11158           - Refactoring
11159
11160 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
11161
11162         * FileDialog.cs: Forgot too add __MonoCS__
11163
11164 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
11165
11166         * FileDialog.cs: We are able to read recently used files now let's
11167           go on and write them.
11168
11169 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
11170
11171         * FileDialog.cs: Breathe some life into "last open"/"recently used"
11172           button
11173         * MimeIcon.cs: Do a check for the top level media type also
11174
11175 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
11176
11177         * ThemeClearlooks.cs:
11178           - Added CPDrawStringDisabled
11179           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
11180             some chars if the text doesn't fit into text_rect
11181           - DrawListViewItem: If View = View.LargeIcon center the image;
11182             rewrote the drawing of ListViewItem.Text if View = 
11183             View.LargeIcon
11184
11185 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
11186
11187         * MimeIcon.cs: Use default KDE icon theme if there is no
11188           "48x48" directory for the current icon theme, fixes #77114
11189         * Mime.cs: Disable not working and actually not used code. 
11190         * ThemeWin32Classic.cs:
11191           - Replace "new SolidBrush" in GetControlBackBrush and
11192             GetControlForeBrush with ResPool.GetSolidBrush
11193           - Changed DrawListViewItem from private to protected virtual
11194         * FileDialog.cs:
11195           - Added form.MaximizeBox = true
11196           - Don't throw an exception if there is a broken symbolic link
11197
11198 2005-12-23  Jackson Harper  <jackson@ximian.com>
11199
11200         * TabControl.cs: Give the panels focus, keyboard navigation is
11201         fixed so this works correctly now.
11202         - We need these key events also.
11203         * ToolBar.cs: Remove some of the poor mans double buffering.
11204         
11205 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
11206
11207         * ComboBox.cs: The internal TextBox now returns the focus.
11208
11209 2005-12-23  Jackson Harper  <jackson@ximian.com>
11210
11211         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
11212
11213 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
11214
11215         * Control.cs: Removed debug code
11216         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
11217           implicit children
11218
11219 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
11220
11221         * Control.cs: When creating the control, update the Z-order after
11222           all it's children are created, too. (Fixes nexxia not showing
11223           picturebox bug)
11224
11225 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
11226
11227         * Control.cs: Do not update the anchoring distances if layout is
11228           suspended, instead do it once layout is resumed
11229
11230 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
11231
11232         * Control.cs: 
11233           - After many hours of debugging, for both Jackson and
11234             myself, it turns out that it helps to set the parent of a control
11235             if you want to actually see it onscreen. In the spirit of that
11236             discovery, we're now setting the parent of the control and
11237             it's children when the control's handle is created. This fix
11238             will make Lutz Roeder's Reflector run happily. 
11239           - now just creating the handle instead of the whole control when
11240             getting a graphics context for the control.
11241
11242 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11243
11244         * ScrollableControl.cs: When calculating the canvas, don't consider
11245           the scrollbar widths. Instead, predict if horizontal scrollbar
11246           will affect canvas when deciding on vertical display and vice versa.
11247
11248 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11249
11250         * RichTextBox.cs: Set default RTF font for documents that don't
11251           have a font table (Fixes #77076)
11252
11253 2005-12-22  Jackson Harper  <jackson@ximian.com>
11254
11255         * TextBoxBase.cs: It's difficult to do, but you can have an empty
11256         clipboard. This prevents a NullRef in that case.
11257         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
11258         clipboard. PRIMARY is for the currently selected text only. (We
11259         should implement PRIMARY at some point.
11260
11261 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11262
11263         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
11264           a Unicode function with a structure that was defined in Ansi way.
11265           This fixes #76942.
11266
11267 2005-12-21  Jackson Harper  <jackson@ximian.com>
11268
11269         * StatusBar.cs: Statusbar handles its fore/back colours on it's
11270         on. Because thats how it rolls. (and this avoids it using ambient
11271         colours).
11272         * ThemeWin32Classic.cs: Use the proper back color for filling.
11273         * Menu.cs: Use the system menu bar color for drawing menu
11274         bars. Using the window back color will bring ambient colours into
11275         the picture.
11276
11277 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
11278
11279         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
11280           Bitmaps were created and not disposed.
11281
11282 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11283
11284         * Control.cs (CreateControl): Don't do anything if the control is
11285           already created, otherwise we'd fire the OnCreated event more than
11286           once
11287
11288 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11289
11290         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
11291           will always match. Instead return -1. Fixes #76464.
11292
11293 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11294
11295         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
11296           neither the beginning nor the end of the line (Fixes bug #76479)
11297
11298 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11299
11300         * Control.cs:
11301           - ControlNativeWindow.ControlFromHandle(): Now handling situation
11302             where handle is invalid
11303           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
11304             instead of slower linear search
11305         * NativeWindow.cs: Don't remove the window from the hashtable until
11306           after the driver has destroyed it (since the driver might use
11307           Control.FromHandle to lookup the control object
11308         * Hwnd.cs: Added DestroyPending property to track if a window is 
11309           already destroyed as far as the driver is concerned and only hasn't
11310           yet notified the control
11311         * XplatUIX11.cs:
11312           - Activate(): Check if the window is still valid before using the 
11313             handle
11314           - Implemented DestroyChildWindow() method to mark child windows as
11315             destroyed when a window is destroyed. This prevents situations 
11316             where we might call an X method based on queued events for a
11317             window that already has been destroyed but we haven't yet pulled
11318             the destroy method from the queue.
11319           - Added a call to the new DestroyChildWindow() method to the drivers
11320             DestroyWindow code. Also now marking the destroyed window itself
11321             as pending
11322
11323 2005-12-20  Jackson Harper  <jackson@ximian.com>
11324
11325         * StatusBar.cs:
11326         * StatusBarPanel.cs: Don't calculate panel sizes on draw
11327         anymore. Just do them when needed, also track the rects of panels
11328         so that we can optimize refreshing more in the future.
11329
11330 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
11331
11332         * ColorDialog.cs: Fixed focus drawing in small color controls
11333
11334 2005-12-19  Jackson Harper  <jackson@ximian.com>
11335
11336         * InternalWindowManager.cs:
11337         * MdiWindowManager.cs: Cleanup some coordinate system changes so
11338         moving windows works properly.
11339
11340 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
11341
11342         * Control.cs: 
11343           - Removed call to InitLayout() from SetBoundsCore(); doc says
11344             it's only called when a control is added to a container
11345           - Split InitLayout logic, moved to separate UpdateDistances() method
11346             since we need to perform those calculations more often than just
11347             when adding the control to a container. (Needed to fix #77022)
11348           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
11349           - Reduced the OnBindingContextChanged events count, don't send them
11350             unless the control is created, we still aren't totally matching
11351             MS, but I can't quite figure out some of their rules
11352
11353 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11354
11355         * ThemeClearlooks.cs: Corrected distance between ProgressBar
11356           stripes
11357
11358 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11359
11360         * ThemeClearlooks.cs:
11361           - Updated ProgressBar drawing
11362           - Corrected drawing of ScrollBars and scroll buttons
11363           - Some temporary fixes for minor pixel artefacts
11364
11365 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
11366
11367         * Control.cs:
11368           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
11369             cause events to be sent in the same order as MS does.
11370           - Added ChangeParent() method to trigger various OnXXXChanged events
11371             that need to be fired when a parent changes (This is a reworking
11372             of the patch from r54254, with the X11 errors fixed)
11373           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
11374             since on MS we get OnLayoutChanged events when calling Clear()
11375           - Changed Enabled property to consider parent state as well, if a
11376             parent is not enabled, the control will not be either
11377           - Changed Parent property to simply call Controls.Add() since that
11378             now does all the work required, this way we avoid code duplication
11379           - Threw in a few OnBindingsContextChanged calls to try and match
11380             when MS sends them. We seem to send a few too many, though.
11381           - Added call to CreateControl when adding the control to a parent.
11382             We were never calling CreateControl. Still needs some work, in
11383             some places we treat HandleCreated and ControlCreated as equal, 
11384             which is wrong
11385           - Removed obsolete commented out code from UpdateZOrder()
11386
11387 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11388
11389         * ThemeClearlooks.cs: Updated TrackBar drawing.
11390
11391 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11392
11393         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
11394
11395 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11396
11397         * FileDialog.cs: Add the Help button and the open readonly
11398           checkbox only if needed
11399
11400 2005-12-16  Jackson Harper  <jackson@ximian.com>
11401
11402         * Control.cs: Make sure we have an active menu before trying to
11403         process commands on it. Prevents menu-less forms from crashing
11404         when Alt is pressed.
11405         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
11406         Dieter Bremes.
11407         * RichTextBox.cs: Expand statement to help out gmcs and fix the
11408         2.0 build.
11409
11410 2005-12-16  Jackson Harper  <jackson@ximian.com>
11411
11412         * InternalWindowManager.cs: Don't translate tool windows screen
11413         coordinates. This fixes windows 'bouncing' around when being moved.
11414
11415 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11416
11417         * TextBoxBase.cs:
11418           - MaxLength now treats 2^31-1 equal to unlimited length (this is
11419             not quite MS compatible, MS uses that number only for single line
11420             and 2^32-1 for multi-line, but I figure it won't hurt keeping
11421             the limit at 2GB)
11422           - Now enforcing the MaxLength limit when entering characters
11423           - Added argument to internal Paste() method to track if it's called
11424             from programatically or via keyboard, since keyboard driven pastes
11425             need to enforce max-length
11426           - Added logic to Paste to only paste as many chars as MaxLength 
11427             allows
11428         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
11429         * TextControl.cs:
11430           - Added Length property to return number of characters in document
11431           - Added private CharCount property which only tracks actual chars
11432             in the document (no linefeeds) and fires event when CharCount
11433             changes
11434           - Added tracking of character count to all methods that alter it
11435           - Added LengthChanged event to allow applications to subscribe
11436             to any changes to the document
11437
11438 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11439
11440         * TextBox.cs: 
11441           - Removed local password_char field (moved to TextBoxBase)
11442           - Now setting the document's password var when password is
11443             set
11444         * TextBoxBase.cs:
11445           - Added password_char field (needed here so MultiLine can
11446             access it)
11447           - Added logic to MultiLine property setter to set the document's
11448             variable when password display is allowed
11449           - Removed debug code and made some debug code conditional
11450         * TextControl.cs:
11451           - Added RecalculatePasswordLine() method to handle special password
11452             char only lines
11453           - Added PasswordChar property, also added related tracking vars
11454           - Draw() method now uses local text var for grabbing text to draw,
11455             this var is set to line.text unless we're doing password display,
11456             then it is set to the pre-generated all-password-chars line
11457           - Added calling RecalculatePasswordLine() method for password lines
11458
11459 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11460
11461         * Hwnd.cs: 
11462           - Added Reparented property to allow tracking of Window Manager
11463             reparenting actions (which affect X/Y calculations of toplevel 
11464             windows)
11465           - Made ToString() print window handles in hex
11466         * XplatUIX11.cs:
11467           - AddConfigureNotify(): Now uses reparented state off Hwnd to
11468             determine if X/Y needs offsetting
11469           - AddConfigureNotify(): Fixed offset calculations
11470           - Now adds ReparentNotify messages into the queue
11471           - Now processes ReparentNotify messages and causes a 
11472             WM_WINDOWPOSCHANGED message to be sent upstream if a window
11473             is reparented (as most likely it's X/Y coordinates are changed
11474             due to that)
11475
11476 2005-12-14  Jackson Harper  <jackson@ximian.com>
11477
11478         * XplatUIX11.cs: Tool windows still need to respek focus.
11479
11480 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11481
11482         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
11483           have a working release
11484
11485 2005-12-13  Jackson Harper  <jackson@ximian.com>
11486
11487         * Form.cs: Update styles after setting the border style regardless
11488         of whether or not the window is using a window manager.
11489
11490 2005-12-13  Jackson Harper  <jackson@ximian.com>
11491
11492         * Form.cs: We now hook into an internal window manager instead of just an
11493         MDI subsystem, this is so we can have properly behaving tool windows.
11494         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
11495         * InternalWindowManager.cs: New internal class that acts as a
11496         window manager for tool windows and as a base for mdi windows.
11497         * MdiWindowManager.cs: New class that acts as a window manager for
11498         mdi windows.
11499
11500 2005-12-12  Jackson Harper  <jackson@ximian.com>
11501
11502         * Control.cs: Updates so we match behavoir for for implicit
11503         controls. Fixes explosions in MDI.
11504
11505 2005-12-12  Jackson Harper  <jackson@ximian.com>
11506
11507         * Control.cs: Implement Invalidate (Region).
11508
11509 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
11510
11511         * Control.cs: 
11512           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
11513             the same events as MS does. MS fires events for each property 
11514             except, for unknown reasons, Cursor, when the control is reparented. 
11515             I can't seem to totally match add/remove since MS also fires some 
11516             VisibleChanged events, which makes no sense. Consolidated the
11517             parenting code into a separate method so it can be called from
11518             both Add and Remove. set_Parent no longer needs any special logic
11519             as it calls the parent's add method which implicitly fires
11520             all events
11521           - Removed some obsolete code and debug output
11522           - Enabled state is inherited from parents, if this is enabled
11523
11524 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
11525
11526         * Form.cs: Removed commented out code
11527
11528 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
11529
11530         * Control.cs:
11531           - Added internal version of Invoke, with additional argument 
11532             indicating if we're calling it from a Dispose() handler. That
11533             way we can avoid BeginInvoke throwing an exception if we're
11534             calling for an already destroyed window.
11535           - Added a dispose argument to BeginInvokeInternal, and made the
11536             check if a valid window handle chain exists conditional on
11537             it not being a dispose call
11538           - Removed code in DestroyHandle to destroy our children. Since we
11539             now handle the WM_DESTROY message we will catch all our children
11540             being destroyed.
11541           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
11542         * Form.cs:
11543           - Added a field to track the application context of the form.
11544           - No need to set closing variable as response to WM_CLOSE, instead
11545             we destroy the window. We also call PostQuitMessage if the form
11546             has an application context (which makes it the main app form,
11547             which, when closed terminates the app)
11548         * XplatUI.cs:
11549           - Dropped Exit() method, it's naming was confusing
11550           - Added PostQuitMessage() which causes GetMessage to return false
11551             once the message queue is empty
11552         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
11553           PostQuitMessage()
11554         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
11555           no longer a valid XplatUI method, but left it in since it's used
11556           internally. Added empty PostQuitMessage() method.
11557         * MenuAPI.cs: Replaced call to Exit() with call to
11558           PostQuitMessage, even though this is probably no longer needed.
11559         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
11560         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
11561         * Application.cs:
11562           - Replaced call to XplatUI.Exit() with PostQuitMessage()
11563           - Removed old debug code that would call XplatUI for exception
11564             display, enabled standard exception handling (Still not enabled
11565             though, until NativeWindow's ExternalExceptionHandler define
11566             is removed
11567         * NativeWindow.cs:
11568           - Added internal method to allow control to update NativeWindow
11569             after a window has been destroyed
11570           - Added handling of already destroyed windows when calling i
11571             DestroyWindow
11572           - Added removal of handle from list on ReleaseHandle
11573         * XplatUIX11.cs:
11574           - Dropped GetMessageResult var and related code
11575           - Added PostQuitState to field to track if PostQuitMessage has been
11576             called
11577           - Dropped Exit() method
11578           - Added PostQuitMessage() method
11579           - GetMessage now will return false if PostQuitState is set and no
11580             more messages are in the queue.
11581           - Expose handler will no longer generate WM_PAINT messages if we are
11582             in PostQuitState since it's very likely any windows have already
11583             been destroyed, and since Hwnd won't get updated until we have
11584             processed the DestroyNotify we'd be causing X errors.
11585         
11586 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11587
11588         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
11589           Thanks to Mike for pointing out the err of my ways.
11590
11591 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11592
11593         * Control.cs(PreProcessMessage): Moved menu handling back, but
11594           after all other key handling, to match MS (who handles Menu in
11595           DefWndProc)
11596         * Menu.cs (WndProc): Removed my brainfart
11597
11598 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11599
11600         * Control.cs(PreProcessMessage): Removed special menu handling 
11601         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
11602
11603 2005-12-07  Mike Kestner  <mkestner@novell.com>
11604
11605         * Control.cs : special case SYSKEYUP so that we can adjust keynav
11606         state according in tracker.
11607         * Menu.cs : promote tracker field to base class and provide a tracker
11608         lookup capability.  Add/Remove shortcuts dynamically if the top menu
11609         has a tracker. Unparent items that are removed from the collection.
11610         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
11611         * Theme*.cs: add always_show_hotkeys field to support configurability
11612         of mnemonic display.  win32 doesn't show mnemonics until Alt is
11613         pressed.
11614
11615 2005-12-07  Jackson Harper  <jackson@ximian.com>
11616
11617         * MdiChildContext.cs: Use Control.ResetCursor.
11618         * Control.cs: ResetCursor needs to set the property so that the
11619         correct XplatUI call gets made.
11620
11621 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11622
11623         * Control.cs: More fixes to make our key events match MS. We
11624           were not setting the modifier state on KeyData, and we were
11625           not generating any events when Alt was pressed with a key
11626           since handling of WM_SYSxxx was missing for the OnKey methods.
11627
11628 2005-12-07  Jackson Harper  <jackson@ximian.com>
11629
11630         * MdiChildContext.cs: reenable the sizing code.
11631         - When the mouse leaves a window reset its cursor.
11632
11633 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11634
11635         * ThemeClearlooks.cs: Reflect latest Hwnd changes
11636
11637 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11638
11639         * Hwnd.cs: Now using the theme 3d bordersize to calculate
11640           widths of Fixed3D borders
11641
11642 2005-12-07  Jackson Harper  <jackson@ximian.com>
11643
11644         * MdiClient.cs: Fix warnings. Earn Mike's love.
11645
11646 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11647
11648         * ThemeClearlooks.cs:
11649           - Adjusted mouse over button color
11650           - Added first parts of CheckBox drawing
11651           - Added correct color for selected text background
11652           - Fixed ComboBox drawing
11653           - Added CPDrawBorder3D and CPDrawBorder
11654
11655 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11656
11657         * XplatUIX11.cs: Added call to XBell for AudibleAlert
11658
11659 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
11660
11661         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11662           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
11663           alert users via sound. We could add an enum arg with different
11664           types of alerts in the future
11665
11666 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11667
11668         * Control.cs: Fix behaviour problems pointed out by Mike
11669
11670 2005-12-05  Mike Kestner  <mkestner@novell.com>
11671
11672         * StatusBarPanel.cs: add Invalidate method and hook it into all the
11673         prop setters.  Calls parent.Refresh for now, but could be maybe be
11674         optimized with an internal method on StatusBar at some point.
11675         [Fixes #76513]
11676
11677 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
11678
11679         * RichTextBox.cs: Implemented get_SelectionColor
11680
11681 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
11682
11683         * ThemeClearlooks.cs:
11684           - Removed dead code
11685           - Draw black button border only if button is Form.AcceptButton
11686           - Draw correct button color for pressed RadioButton if the mouse 
11687             has entered the button
11688           - Updated ProgressBar drawing!
11689           - Updated CPDrawSizeGrip drawing
11690           - Updated StatusBarPanel drawing
11691
11692 2005-12-05  Mike Kestner  <mkestner@novell.com>
11693
11694         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
11695         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
11696
11697 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
11698
11699         * ThemeClearlooks.cs: Initial check-in, activate with
11700           export MONO_THEME=clearlooks
11701         * ThemeEngine.cs: Added ThemeClearlooks
11702
11703 2005-12-03  Mike Kestner  <mkestner@novell.com>
11704
11705         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
11706         [Fixes #76897]
11707
11708 2005-12-02  Jackson Harper  <jackson@ximian.com>
11709
11710         * Form.cs: If the child form has no menu the default main menu is
11711         used as the active menu.
11712
11713 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
11714
11715         * ListBox.cs: Check if any items exist before trying to resolve 
11716           coordinates into items
11717
11718 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11719
11720         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
11721           as the second color for the background hatch
11722
11723 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11724
11725         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
11726         * RichTextBox.cs: FormatText position arguments are 1-based, now making
11727           sure that what we pass to FormatText is always 1-based. Fixes #76885
11728
11729 2005-11-29  Miguel de Icaza  <miguel@novell.com>
11730
11731         * NumericUpDown.cs (EndInit): When we are done initializing,
11732         reflect any updates on the UI.
11733
11734 2005-12-02  Jackson Harper  <jackson@ximian.com>
11735
11736         * ImplicitHScrollBar.cs:
11737         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
11738         their container controls.
11739         * TreeView.cs: Use the new implicit scrollbars.
11740
11741 2005-12-02  Jackson Harper  <jackson@ximian.com>
11742
11743         * TreeView.cs: Make top_node internal so the TreeNodeCollections
11744         can play with it.
11745         * TreeNodeCollection.cs: If we remove the topnode we need to
11746         update topnode to the next node in line.
11747         - When clearing nodes go through the same process as removing
11748         them, so they get depareneted and checked if they are top node.
11749
11750 2005-12-01  Jackson Harper  <jackson@ximian.com>
11751
11752         * TreeView.cs: When imagelists are used the image area is
11753         selectable as well as the text.
11754         - If there are no selected nodes select the first one.
11755         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
11756         so don't do it more then we need to.
11757
11758 2005-12-01  Jackson Harper  <jackson@ximian.com>
11759
11760         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
11761         that arrows can be scaled.
11762
11763 2005-12-01  Jackson Harper  <jackson@ximian.com>
11764
11765         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
11766         fail. Patch by Dieter Bremes
11767
11768 2005-11-30  Jackson Harper  <jackson@ximian.com>
11769
11770         * Form.cs: Property is 2.0 only
11771         * PrintDialog.cs: Signature fix.
11772
11773 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11774
11775         * TextControl.cs: 
11776           - No longer artificially moves text 2 pixels down (now that we have
11777             borders this is no longer needed)
11778           - Added calcs for left, hanging and right indent
11779
11780 2005-11-23  Mike Kestner  <mkestner@novell.com>
11781
11782         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
11783
11784 2005-11-30  Jackson Harper  <jackson@ximian.com>
11785
11786         * MdiChildContext.cs: Set the cloned menus forms, as these don't
11787         get cloned as part of CloneMenu ().
11788         * Menu.cs: Make sure the parent of the items get set correctly
11789         when they are added.  And the owners are notified of the changes.
11790         * Form.cs: Create an ActiveMenu property, so that when MDI is used
11791         we can change the menu being displayed/handled by the form without
11792         changing the menu assosciated with the form.
11793         - Don't let Mdi children draw/handle menus.
11794         
11795 2005-11-30  Jackson Harper  <jackson@ximian.com>
11796
11797         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
11798         a MenuChanged event. Just to make the API a little more
11799         consistent.
11800         * MainMenu.cs:
11801         * MenuItem.cs: Use the new OnMenuChanged
11802         * MdiChildContext.cs: Handle menu merging.
11803         * Form.cs: Implement MergedMenu.
11804         
11805 2005-11-30  Jackson Harper  <jackson@ximian.com>
11806
11807         * Menu.cs: We were misusing Add. Add goes behind the specified
11808         index according to the docs, and does not replace the specified
11809         index. So I added an Insert method.
11810
11811 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11812
11813         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
11814           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
11815           is for Jackson
11816         * RichTextBox.cs: Added calls to base for DnD events
11817
11818 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
11819
11820         * TextControl.cs:
11821           - Fixed drag-selection related crash; style fixes
11822           - Implemented undo class
11823             o Implemented method to capture document state for specified
11824               range in document tree
11825             o Implemented method to restore captured document state
11826             o Implemented cursor tracking
11827             o Implemented basic undo stack
11828           - Added undo cursor tracking to methods altering cursor location
11829           - Added undo tracking to selection deletion (still missing
11830             other text-altering hookups)
11831         * RichTextBox.cs:
11832           - Added SelectionLength property
11833           - Implemented CanPaste()
11834           - Implemented Paste()
11835           - Added missing protected methods
11836           - Fixed RTF->Document conversion; now uses font index 0 and color 
11837             index 0 as the default font for the parsed text
11838           - Fixed RTF<->Document font size translation
11839           - Fixed RTF generation, now properly handles cross-tag boundaries
11840             for single line selection
11841           - No longer always appends blank line to generated RTF
11842           - Removed TODOs
11843           - Added missing attributes
11844           - Hooked up undo-related methods
11845         * TextBoxBase.cs:
11846           - Implemented Copy()
11847           - Implemented Paste()
11848           - Implemented Cut()
11849           - Fixed caret mis-behaviour on backspace across line-boundaries
11850
11851 2005-11-29  Jackson Harper  <jackson@ximian.com>
11852
11853         * MdiClient.cs: Add a method for activating mdi children. Very
11854         basic right now. I imagine someday it might need more girth.
11855         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
11856         children windows names are added to the menu item.
11857         * ThemeWin32Classic.cs: Draw the arrow if the item is an
11858         mdilist. This happens regardless of whether or not there are any
11859         mdi windows to see in the list, and according to my tests happens
11860         before the items are even added. Also happens if there isn't even
11861         an mdi client to get windows from.
11862
11863 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
11864
11865         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
11866         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
11867
11868 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
11869
11870         * DataGridTableStyle.cs:
11871           - Create always the styles for the missing columns even if they are
11872             provided by the user (not default table style)
11873         * DataGrid.cs:
11874           - Fixes bug 76770
11875           - Fixes SetDataBinding (always re-attach source)
11876           - Fixes SetNewDataSource (only clear styles if they are not for 
11877             this source)
11878          -  Expands OnTableStylesCollectionChanged to handle style refresh 
11879             and remove properly
11880
11881 2005-11-29  Jackson Harper  <jackson@ximian.com>
11882
11883         * FileDialog.cs: Implement missing bits, remove some dead
11884         code.
11885         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
11886         creation of the panel so that the options set on the dialog are
11887         seen when the panel is created.
11888         * TreeView.cs: raise a click when items are clicked.
11889         
11890 2005-11-29  Jackson Harper  <jackson@ximian.com>
11891
11892         * MdiClient.cs: Pass some signature methods through to base.
11893
11894 2005-11-28  Jackson Harper  <jackson@ximian.com>
11895
11896         * ListView.cs: Raise the click event when items are clicked.
11897
11898 2005-11-28  Jackson Harper  <jackson@ximian.com>
11899
11900         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
11901         a nullref.
11902
11903 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
11904
11905         * ThemeNice.cs: - Removed 1 pixel bitmaps
11906           - Use SmoothingMode.AntiAlias where it makes sense
11907             (ScrollButton arrow for example)
11908           - Enhanced Button focus drawing
11909           - Fixed ComboBox drawing (no artefacts anymore, focus
11910             rectangle is back again, reduced size of ComboButton, etc.)
11911           - Fixed RadioButton focus drawing for Appearence.Button
11912           - Slight ScrollButton redesign
11913           - Some LinearGradientBrush size fixes
11914           - GroupBoxes have now rounded edges
11915           - Fixed StatusBar drawing
11916
11917 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
11918
11919         * ThemeNice.cs: - Remove dead code
11920           - use correct background colors for menus, etc.
11921           - Fake pixel drawing with 1 pixel bitmaps
11922
11923 2005-11-24  Jackson Harper  <jackson@ximian.com>
11924
11925         * MdiClient.cs: Size the scrollbars when resizing the window.
11926         - Resize the maximized windows when the client is resized
11927         * Form.cs: Make the child context available
11928         
11929 2005-11-23  Jackson Harper  <jackson@ximian.com>
11930
11931         * MdiChildContext.cs: Don't size windows if they are maximized.
11932
11933 2005-11-23  Mike Kestner  <mkestner@novell.com>
11934
11935         * ContextMenu.cs: use MenuTracker.
11936         * Control.cs: remove menu handle usage.
11937         * Form.cs: remove menu handle usage.
11938         * Hwnd.cs: remove menu handle usage.
11939         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
11940         motion and clicks to the new Tracker handlers.
11941         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
11942         and handle usage.
11943         * MenuAPI.cs: refactored to combine popup and menubar event handling.
11944         Killed the MENU and MENUITEM data types and associated collections
11945         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
11946         MenuTracker class that exposes the leftovers from the old MenuAPI
11947         static methods. Restructured Capture handling so that only one grab is
11948         done for the entire menu hierarchy instead of handing off grabs to
11949         submenus. Tracker now has an invisible control to Capture when active.
11950         * MenuItem.cs: add sizing accessors, kill Create
11951         and handle usage.
11952         * Theme.cs: remove menu handle and MENU(ITEM) usage.
11953         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
11954         MENU(ITEM). remove menu handle usage, use Menu directly.
11955         * XplatUIDriver.cs: remove menu handle usage.
11956         * XplatUIOSX.cs: remove menu handle usage.
11957         * XplatUIWin32.cs: remove menu handle usage.
11958         * XplatUIX11.cs: remove menu handle usage.
11959
11960 2005-11-22  Jackson Harper  <jackson@ximian.com>
11961
11962         * Hwnd.cs: Don't compute the menu size for
11963         DefaultClientRectangle.
11964         - Reenable menu sizes being computed for GetClienRectangle.
11965         * Form.cs: Remove comment of trechery
11966         
11967 2005-11-22  Jackson Harper  <jackson@ximian.com>
11968
11969         * Hwnd.cs: The adjustments for the menu bar are made when it is
11970         attached to the form.
11971
11972 2005-11-19  Jackson Harper  <jackson@ximian.com>
11973
11974         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
11975         (just like on windows).
11976
11977 2005-11-19  Jackson Harper  <jackson@ximian.com>
11978
11979         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
11980         use real buttons anymore because they are in non client area. The
11981         one TODO here is that I need to somehow invalidate a section of
11982         the non client area.
11983
11984 2005-11-18  Jackson Harper  <jackson@ximian.com>
11985
11986         * Control.cs: Put the enum check back in now that MDI doesnt have
11987         to use this to set border styles.
11988         * Form.cs: Only set mdi child windows borders if the handle has
11989         been created.
11990         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
11991         this directly on to the driver.
11992         - Get the move start position before adjusting for the titlebar
11993         height, this fixes the windows "skipping" when they are first
11994         moved.
11995
11996 2005-11-18  Jackson Harper  <jackson@ximian.com>
11997
11998         * XplatUIX11.cs: Just compute the mdi borders separately as they
11999         don't totally match up with normal form borders.
12000
12001 2005-11-18  Jackson Harper  <jackson@ximian.com>
12002
12003         * Control.cs: Set WS_ styles for borders, so that the driver does
12004         not have to retrieve the control instance to figure out what kind
12005         of borders it should have.
12006         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
12007         driver can know its an mdi child easily.
12008         * XplatUIX11.cs: Get the border styles and whether the window is
12009         MDI from the Styles and ExStyles params instead of having to get a
12010         control. This prevents a chicken and egg problem.       
12011
12012 2005-11-18  Jackson Harper  <jackson@ximian.com>
12013
12014         * MdiClient.cs: Fix typo so scrollbars show up correctly.
12015
12016 2005-11-18  Jackson Harper  <jackson@ximian.com>
12017
12018         * MdiClient.cs: Calculate when to add and remove scrollbars
12019         correctly.
12020         * MdiChildContext.cs: Adjust the y position to take the titlebar
12021         into account.
12022         - No height for FormBorderStyle.None
12023
12024 2005-11-18  Jackson Harper  <jackson@ximian.com>
12025
12026         * Control.cs: Allow non enum values to be used for
12027         InternalBorderStyle.  MDI does this to set a special border style.
12028         - New utility methods for converting points to/from client coords
12029         - Add the newly created control to the Controls collection before
12030         updating its style. This way UpdateStyle can walk the control
12031         heirarchy to find the control if needed.
12032         so I don't need to create a new Point object all the time.
12033         * Form.cs: Let MDI windows handle their border styles.
12034         - Set styles on MDI windows so the correct title style is derived.
12035         * MdiChildContext.cs: Move all the painting and window handling
12036         into the non client area.
12037         - Use correct sizing and put correct buttons on frames based on
12038         the FormBorderStyle.
12039         - Notify the mdi client about scrolling
12040         - Need to handle the buttons ourselves now, because they are all
12041         in non client areas and we can't add controls there.
12042         * MdiClient.cs: Halfway to scrolling, this implementation is
12043         somewhat broken though, we need to check to make sure other
12044         windows aren't causing scrolling before removing the bars. Also
12045         the bars need to be drawn on top, maybe I can switch implicit
12046         controls to be on top.
12047         * Hwnd.cs: caption_height and tool_caption_height are now
12048         properties of an hwnd, this way they can be set by the driver
12049         based on the type of window they are.  In X11 the window manager
12050         handles the decorations so caption_height is zero unless its an
12051         MDI window.
12052         - Add 3 pixel borders for MDI windows (0xFFFF).
12053         - Get rid of some code duplication, have DefaultClientRectanle
12054         just call GetClientRectangle.
12055         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
12056         Hwnd now.
12057         - Set border styles differently for mdi windows.
12058         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
12059         Hwnd now.
12060         
12061 2005-11-15  Mike Kestner  <mkestner@novell.com>
12062
12063         * Menu.cs: when adding an item to the collection, if item is already 
12064         parented, remove it from the parent.
12065
12066 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
12067
12068         * X11DesktopColors.cs: Added KDE support
12069
12070 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
12071
12072         * XplatUIWin32.cs: 
12073           - Clipboard methods now can translate Rtf format
12074           - No longer removes clipboard contents whenever a new format is added
12075             to allow placing multiple formats on the clipboard
12076         * Clipboard.cs: Clipboard now supports getting a IDataObject and
12077           will place all formats contained in it onto the clipboard. Also
12078           now cleans the clipboard before placing a new object onto it
12079         * RichTextBox.cs:
12080           - Implemented set_Rtf
12081           - Implemented set_SelectedRtf
12082           - Created InsertRTFFromStream() method to allow single code base
12083             for all properties and methods that insert RTF into document
12084           - Removed debug output
12085         * TextControl.cs:
12086           - Fixed Delete(int) to fix up line numbers
12087           - Fixed ReplaceSelection to combine start and end line
12088           - Fixed serious DeleteChars bug that would leave the document tree
12089             broken
12090           - Improved DumpTree with several logic checks to detect broken
12091             document trees
12092           - Removed debug lines
12093           - Fixed Caret.WordForward/WordBack moving code, now always also 
12094             updates caret.tag (fixes crash when word-selecting across tag
12095             boundaries via keyboard)
12096           - Added Insert() method for inserting multiline text into documents
12097           - Fixed DeleteChars() calculation errors that would cause a broken
12098             tag chain with multiple tag lines
12099           - DeleteChars() no longer crashes on multi-tag lines if not all tags
12100           - Split() no longer moves caret if split is at caret location
12101           - ReplaceSelection() now updates the cursor and re-displays it
12102           - ReplaceSelection() now uses new Insert() method to avoid code
12103             duplication
12104           - FormatText() can now handle formatting partial lines
12105         * TextBoxBase.cs:
12106           - Append now uses new TextControl.Insert() method (this avoids 
12107             duplicate code)
12108           - Implemented Ctrl-X (Cut) (
12109           - Implemented Ctrl-C (Copy)
12110           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
12111             regeneration when pasting text; roundtripping Copy&Paste within
12112             edit control still fails due to some calculation bugs in GenerateRTF)
12113           - The Delete key will now remove the current selection if it is visible
12114         * TextBox.cs: Removed debug lines
12115         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
12116           driver to be initialized and can't therefore be done via a static ctor)
12117
12118 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
12119
12120         * TextControl.cs: Added backend code for finding char arrays and strings
12121         * TextBoxBase.cs:
12122           - Added mouse wheel scroll support
12123           - Added support for VScroll and HScroll events
12124         * RichTextBox.cs:
12125           - Implemented all seven Find() variants
12126           - Implemented GetCharFromPosition()
12127           - Implemented GetCharIndexFromPosition()
12128           - Implemented GetLineFromIndex()
12129           - Implemented GetPositionFromCharIndex();
12130           - Implemented SaveFile for PlainText and UnicodeText
12131           - Fixed set_Font, now setting a new font applies that font to
12132             the whole document
12133           - Implemented generic Document to RTF converter
12134           - Implemented SaveFile for RichText format (still missing unicode
12135             conversion for non-ansi chars)
12136           - Implemented get_Rtf
12137           - Implemented get_SelectedRtf
12138
12139 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
12140
12141         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
12142           to allow any captures to be released before triggering OnClick. This
12143           way a click handler may capture the mouse without interference.
12144         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
12145           This way we send them even though X may not allow a grab (if the window
12146           isn't visible, for example)
12147
12148 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
12149
12150         * DataGridViewRowEventArgs.cs: DataGridView implementation
12151         * DataGridViewElement.cs: DataGridView implementation
12152         * DataGridViewComboBoxCell.cs: DataGridView implementation
12153         * DataGridViewDataErrorContexts.cs: DataGridView implementation
12154         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
12155         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
12156         * ImageLayout.cs: DataGridView implementation
12157         * DataGridViewComboBoxColumn.cs: DataGridView implementation
12158         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
12159         * DataGridViewSelectionMode.cs: DataGridView implementation
12160         * IDataGridViewEditingControl.cs: DataGridView implementation
12161         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
12162         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
12163         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
12164         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
12165         * DataGridViewColumnSortMode.cs: DataGridView implementation
12166         * DataGridView.cs: DataGridView implementation
12167         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
12168         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
12169         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
12170         * Padding.cs: DataGridView implementation
12171         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
12172         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
12173         * DataGridViewRowEventHandler.cs: DataGridView implementation
12174         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
12175         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
12176         * DataGridViewButtonCell.cs: DataGridView implementation
12177         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
12178         * DataGridViewEditMode.cs: DataGridView implementation
12179         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
12180         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
12181         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
12182         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
12183         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
12184         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
12185         * DataGridViewCellEventHandler.cs: DataGridView implementation
12186         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
12187         * DataGridViewCellStyleConverter.cs: DataGridView implementation
12188         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
12189         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
12190         * DataGridViewColumnEventArgs.cs: DataGridView implementation
12191         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
12192         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
12193         * QuestionEventArgs.cs: DataGridView implementation
12194         * IDataGridViewEditingCell.cs: DataGridView implementation
12195         * DataGridViewTriState.cs: DataGridView implementation
12196         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
12197         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
12198         * DataGridViewColumnCollection.cs: DataGridView implementation
12199         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
12200         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
12201         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
12202         * DataGridViewColumn.cs: DataGridView implementation
12203         * DataGridViewCellBorderStyle.cs: DataGridView implementation
12204         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
12205         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
12206         * DataGridViewRow.cs: DataGridView implementation
12207         * DataGridViewImageCellLayout.cs: DataGridView implementation
12208         * DataGridViewImageCell.cs: DataGridView implementation
12209         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
12210         * DataGridViewCheckBoxCell.cs: DataGridView implementation
12211         * DataGridViewHeaderCell.cs: DataGridView implementation
12212         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
12213         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
12214         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
12215         * DataGridViewTextBoxColumn.cs: DataGridView implementation
12216         * QuestionEventHandler.cs: DataGridView implementation
12217         * DataGridViewCellStyleScopes.cs: DataGridView implementation
12218         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
12219         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
12220         * DataGridViewCell.cs: DataGridView implementation
12221         * DataGridViewCellEventArgs.cs: DataGridView implementation
12222         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
12223         * DataGridViewCellStyle.cs: DataGridView implementation
12224         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
12225         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
12226         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
12227         * TextFormatFlags.cs: DataGridView implementation
12228         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
12229         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
12230         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
12231         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
12232         * DataGridViewButtonColumn.cs: DataGridView implementation
12233         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
12234         * HandledMouseEventArgs.cs: DataGridView implementation
12235         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
12236         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
12237         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
12238         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
12239         * DataGridViewRowCollection.cs: DataGridView implementation
12240         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
12241         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
12242         * DataGridViewHitTestType.cs: DataGridView implementation
12243         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
12244         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
12245         * DataGridViewColumnEventHandler.cs: DataGridView implementation
12246         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
12247         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
12248         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
12249         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
12250         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
12251         * DataGridViewContentAlignment.cs: DataGridView implementation
12252         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
12253         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
12254         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
12255         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
12256         * DataGridViewPaintParts.cs: DataGridView implementation
12257         * DataGridViewCellCollection.cs: DataGridView implementation
12258         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
12259         * DataGridViewImageColumn.cs: DataGridView implementation
12260         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
12261         * DataGridViewElementStates.cs: DataGridView implementation
12262         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
12263         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
12264         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
12265         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
12266         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
12267         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
12268         * DataGridViewRowHeaderCell.cs: DataGridView implementation
12269         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
12270         * DataGridViewTextBoxCell.cs: DataGridView implementation
12271         * DataGridViewBand.cs: DataGridView implementation
12272         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
12273         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
12274         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
12275         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
12276         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
12277         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
12278         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
12279         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
12280         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
12281         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
12282         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
12283
12284 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
12285
12286         * ThemeWin32Classic.cs: 
12287           - Draw the outside focus rectangle around buttons
12288           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
12289             doesn't use end caps for every dash of a line anymore. This
12290             workaround ignores the forecolor.
12291
12292 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
12293
12294         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
12295           endian safe.
12296
12297 2005-11-07  Jackson Harper  <jackson@ximian.com>
12298
12299         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
12300
12301 2005-11-07  Jackson Harper  <jackson@ximian.com>
12302
12303         * ScrollableControl.cs: Calculate the maximum and change vars
12304         (more) correctly so that scrollbars appear as a sensible size.
12305
12306 2005-11-04  Jackson Harper  <jackson@ximian.com>
12307
12308         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
12309         collection.
12310         * TreeView.cs: When the tree is sorted null out the top_node so
12311         that it is recalculated.
12312         - Use dotted lines instead of dashed lines to match MS better.
12313
12314 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
12315
12316         * ListView.cs: 
12317           - Implements key search for items. Useful when browsing files with FileDialog
12318           - When changing view mode or when clear the items reset scrollbar positions
12319
12320 2005-11-04  Jackson Harper  <jackson@ximian.com>
12321
12322         * CurrencyManager.cs: Implement the MetaDataChanged event, the
12323         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
12324         as to what the method may do as there is no real way of creating a
12325         derived CurrencyManager and calling the method. 
12326
12327 2005-11-03  Jackson Harper  <jackson@ximian.com>
12328
12329         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
12330         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
12331         method which seems to just be used internally to refresh the tabs.
12332
12333 2005-11-03  Jackson Harper  <jackson@ximian.com>
12334
12335         * TabControl.cs: Implement the remove method. Fix some broken
12336         comments.
12337
12338 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12339
12340         * DateTimePicker.cs:
12341           - Added missing DateTimePickerAccessibleObject class
12342           - Added missing events
12343           - Added OnFontChanged method
12344         * Form.cs: Added missing attributes
12345         * TreeView.cs: Added missing attributes
12346
12347 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
12348
12349         * GridItemCollection.cs: Fix signatures
12350
12351 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12352
12353         * XplatUI.cs: Updated build rev/date
12354         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
12355           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
12356         * Application.cs: Trigger context-specific ExitThread events
12357
12358 2005-11-03  Jackson Harper  <jackson@ximian.com>
12359
12360         * Menu.cs:
12361         * MainMenu.cs:
12362         * GridTableStylesCollection.cs:
12363         * Timer.cs:
12364         * TabPage.cs:
12365         * HelpProvider.cs:
12366         * StatusBar.cs:
12367         * MonthCalendar.cs: Signature fixes
12368
12369 2005-11-03  Jackson Harper  <jackson@ximian.com>
12370
12371         * TreeNodeCollection.cs: Remove should not be virtual.
12372         * TreeView.cs: Implement the last of the missing methods.
12373
12374 2005-11-03  Jackson Harper  <jackson@ximian.com>
12375
12376         * TreeNodeConverter.cs: Implement to get off my class-status back.
12377
12378 2005-11-03  Jackson Harper  <jackson@ximian.com>
12379
12380         * TreeView.cs: Hookup the bits for drag and drop.
12381         * TreeNode.cs: Don't cache the tree_view or index anymore, now
12382         that nodes can be moved from tree to tree easily this just causes
12383         all sorts of problems.
12384         * TreeNodeCollection: Don't need to give treenodes an index and
12385         treeview anymore when they are added, these are computed on the
12386         fly. Also make sure to remove a node before its added.
12387
12388 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12389
12390         * TextControl.cs:
12391           - Added CaretSelection enum
12392           - Added comparison methods to Marker struct, makes selection code
12393             more readable
12394           - Added SelectionStart and SelectionEnd as 'moveable' location for
12395             the CaretDirection enum and handler
12396           - Added selection_prev variable to track optimized invalidation for
12397             word and line selection
12398           - Added SelectionVisible property (returns true if there is a valid 
12399             selection)
12400           - Switched CaretHasFocus to only display the caret if there is no
12401             visible selection
12402           - Avoiding StringBuilder.ToString to retrieve a single char, instead
12403             using the direct character index; should be much faster
12404           - Added various conditional debug statements
12405           - Fixed invalidation calculation for selection ranges
12406           - Added ExpandSelection() method to support word and line selection
12407           - Switched SetSelectionToCaret to use new Marker compare overloads
12408           - Added central IsWordSeparator() method to determine word 
12409             separators/whitespace and FindWordSeparator() to streamline common
12410             usage of IsWordSeparator()
12411         * TextBoxBase.cs:
12412           - Removed unneeded grabbed variable, it was just mirroring
12413             Control.Capture
12414           - No longer firing OnTextChanged event when Text setter is called,
12415             since the base will fire the event for us
12416           - Added handling of Ctrl-Up/Down selection
12417           - Added handling of Shift-Cursorkey selection
12418           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
12419             words
12420           - Added handling of Shift and Ctrl-Shift-Home/End selection
12421           - Removed some debug output
12422           - Added handling for single/double/tripple-click to place caret/
12423             select word/select line respectively (Fixes bug #76031)
12424           - Added support for drag expansion of word/line selection
12425         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
12426           current selection
12427
12428 2005-11-02  Jackson Harper  <jackson@ximian.com>
12429
12430         * X11Dnd.cs: If the drag is going to and from a MWF window just
12431         copy the data instead of sending it out through the X Selection
12432         mechanism.
12433
12434 2005-11-02  Jackson Harper  <jackson@ximian.com>
12435
12436         * X11Dnd.cs:
12437         * XplatUIX11.cs: When in a drag we don't want motion notify
12438         messages to get passed on to the other controls. This prevents
12439         mouse move messages from showing up in the drag source.
12440
12441 2005-11-02  Jackson Harper  <jackson@ximian.com>
12442
12443         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
12444         the correct button is release to end a drag.
12445         * XplatUIX11.cs: Make the button state internal so the drag system
12446         can access it.  Dragging needs to know about all button releases,
12447         not just left button.
12448
12449 2005-11-02  Miguel de Icaza  <miguel@novell.com>
12450
12451         * Form.cs (Icon): If the icon is null, reset the icon to the
12452         default value. 
12453
12454         * Cursor.cs: When writing the AND-mask bitmap do not include the
12455         number of colors, but hardcode those to two (black and white),
12456         fixes the loading of color cursors (Paint Dot Net).
12457
12458         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
12459         turn off autoscaling.
12460
12461         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
12462
12463 2005-11-02  Jackson Harper  <jackson@ximian.com>
12464
12465         * X11Dnd.cs: Make sure to send a status message if the pointer
12466         enters a control that can not accept a drop, otherwise the cursor
12467         isn't updated correctly. Also tried to compress the lines of code
12468         a bit.
12469
12470 2005-11-02  Jackson Harper  <jackson@ximian.com>
12471
12472         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
12473         set actions correctly.  This isn't perfect as XDND and win32 have
12474         some differences on how you allow actions. I'll clear this up by
12475         adding a path for drag from MWF to MWF windows.
12476         * XplatUIX11.cs: Hook into the dnd system.
12477
12478 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
12479
12480         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
12481         previously shown but they are no longer need it. Very obvious when 
12482         browsing files with FileDialog.
12483
12484 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
12485
12486         * Control.cs: We always need to call OnPaintBackground. We pretty much
12487           ignore AllPaintingInWmPaint and always do the painting there, whether 
12488           it's set or not, since we always ignore the WM_ERASEBKGND message 
12489           (which we don't generate on X11). This fixes #76616.
12490         * Panel.cs: Removed unneeded background painting. This happens properly
12491           in Control.cs already
12492
12493 2005-10-31  Mike Kestner  <mkestner@novell.com>
12494
12495         * Menu.cs: Add items to collection before setting their index.
12496         * MenuItem.cs : add range checking with ArgumentException like MS.
12497         [Fixes #76510]
12498
12499 2005-10-31  Jackson Harper  <jackson@ximian.com>
12500
12501         * ListBox.cs: Invalidate if the area is visible at all not just
12502         contained in the visible rect. Fixes unselection of semi visible
12503         items.
12504
12505 2005-10-31  Jackson Harper  <jackson@ximian.com>
12506
12507         * Control.cs: Consistently name the dnd methods. Make them
12508         internal so we can override them to match some MS behavoir
12509         internally.
12510         * Win32DnD.cs: Use the new consistent names.
12511
12512 2005-10-31  Jackson Harper  <jackson@ximian.com>
12513
12514         * TreeView.cs: Don't draw the selected node when we lose focus.
12515
12516 2005-10-31  Jackson Harper  <jackson@ximian.com>
12517
12518         * X11Dnd.cs: We still need to reset the state even though a full
12519         reset isn't being done, otherwise status's still get sent all over
12520         the place.
12521
12522 2005-10-31  Jackson Harper  <jackson@ximian.com>
12523
12524         * Control.cs: Make the dnd_aware flag internal so the dnd
12525         subsystem can check it. Catch exceptions thrown in dnd handlers to
12526         match MS behavoir.
12527         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
12528         * X11Dnd.cs: Handle null data in the converters. Set the XDND
12529         version when sending a XdndEnter. Use the control/hwnd dnd_aware
12530         flags to reduce the number of dnd enters/status's sent.
12531
12532 2005-10-31  Jackson Harper  <jackson@ximian.com>
12533
12534         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
12535
12536 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
12537
12538         * PictureBox.cs: Fixes 76512
12539
12540 2005-10-28  Jackson Harper  <jackson@ximian.com>
12541
12542         * X11Dnd.cs: Early implementation to support winforms being a drag
12543         source for data on X11. Also restructured the converters so they
12544         can go both ways now.
12545         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
12546         
12547 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
12548
12549         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
12550           clipboard requests
12551
12552 2005-10-27  Jackson Harper  <jackson@ximian.com>
12553
12554         * TreeNode.cs: Implement serialization so my DnD examples will work.
12555
12556 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
12557
12558         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
12559           TreeView.cs: Don't dispose objects that are not owned.
12560           
12561 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
12562
12563         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
12564           should retrieve the current cursor and report that, but XplatUI
12565           doesn't (yet) have an interface for that (and I'm not sure I even
12566           can, on X11)
12567         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
12568           until any message loop processing is done (and the WM_SETCURSOR
12569           replaces the cursor to the proper one)
12570         * XplatUIX11.cs: 
12571           - Fixed override behaviour, we can't set the cursor globally on X11, 
12572             just for our windows.
12573           - Invalidating the System.Drawing X11 display handle when we are
12574             shutting down
12575         * Control.cs: Fix to make csc happy
12576
12577 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
12578
12579         * TextBoxBase.cs: 
12580           - get_Text: Add last line (without trailing newline) to returned
12581             value (Fixes 76212)
12582           - get_TextLength: Count last line in returned length
12583           - ToString: Call Text property instead of duplicating code
12584
12585 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
12586
12587         * ImageList.cs: Dispose ImageAttributes objects.
12588
12589 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12590
12591         * ImageList.cs: Use attribute constructors with less arguments where
12592           possible.
12593
12594 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12595
12596         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
12597           Use typeof instead of strings when assembly is referenced. Added
12598           some more comments.
12599
12600 2005-10-21  Jackson Harper  <jackson@ximian.com>
12601
12602         * ListView.cs: Raise a double click event. Also tried to somewhat
12603         fix when the selectedindexchanged event is raised. Its still
12604         broken though.
12605
12606 2005-10-21  Jackson Harper  <jackson@ximian.com>
12607
12608         * TreeView.cs: New method to invalidate the plus minus area of a
12609         node without invalidating the whole node (maybe this can be used
12610         in some more places).
12611         * TreeNodeCollection.cs: When adding to an empty node we need to
12612         invalidate its plus minus area so the little block shows up.
12613         
12614 2005-10-21  Jackson Harper  <jackson@ximian.com>
12615
12616         * TreeView.cs: Make sure that when we invalidate a node the bounds
12617         are big enough to cover the selected box and the focus
12618         rectangle. Use a different colour for the lines connecting nodes
12619         so they show up with all themes.
12620
12621 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12622
12623         * NativeWindow.cs: Don't call anything that could call into the driver,
12624           we might be on a different thread.
12625
12626 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
12627
12628         * Control.cs(Dispose): Since Dispose might run on a different thread,
12629           make sure that we call methods that could call into the driver via
12630           invoke, to avoid thread issues
12631
12632 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12633
12634         * XplatUI.cs: Removed finalizer
12635         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
12636           not allowing to be called on the finalizer thread.
12637
12638 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
12639
12640         * ImageList.cs:
12641           - Reverted r51889 and r51891.
12642           - Added ImageListItem class that stores unmodified image items and image
12643             properties required to create list images until handle is created.
12644           - Added AddItem and moved image creation logic to AddItemInternal.
12645           - Added CreateHandle method that creates images based on unmodified items.
12646           - Added DestroyHandle that changes state to store unmodified items.
12647           - Add and AddStrip methods no more create handle.
12648           - ReduceColorDepth has no return value.
12649           - Dispose destroys handle.
12650           - Modified other methods to reflect the above changes.
12651           - Implemented key support.
12652           - Added profile 2.0 members and attributes.
12653           - Added private Reset and ShouldSerialize methods that provide the same
12654             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
12655             them as they are private.
12656           - Added some more comments about implementation details.
12657
12658 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12659
12660         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
12661
12662 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12663
12664         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
12665
12666 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12667
12668         * DataGridDrawingLogic.cs: Fixes column hit calcultation
12669         * DataGridColumnStyle.cs: Remove debug message
12670
12671 2005-10-20  Jackson Harper  <jackson@ximian.com>
12672
12673         * TreeView.cs: We can always get input keys regardless of whether
12674         or not editing is enabled. They are used for navigation.
12675
12676 2005-10-20  Jackson Harper  <jackson@ximian.com>
12677
12678         * TreeNode.cs: Use the viewport rect for determining if a node
12679         needs to be moved for visibility. Don't use Begin/End edit. This
12680         calls a full refresh when its done.
12681         * TreeView.cs: New SetBottom works correctly.  Make the viewport
12682         rect property internal so the treenodes can see it. When clicking
12683         on a node we need to ensure that its visible because it might just
12684         be partly visible when clicked.
12685
12686 2005-10-20  Jackson Harper  <jackson@ximian.com>
12687
12688         * TreeNodeCollection.cs: Remove debug code.
12689
12690 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12691
12692         * Datagrid.cs: Implements column sorting in Datagrid
12693         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
12694
12695 2005-10-20  Jackson Harper  <jackson@ximian.com>
12696
12697         * TreeNodeCollection.cs: Remove items properly. Update the correct
12698         area after removing them.
12699
12700 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12701
12702         * Datagrid.cs: Should not call base.OnPaintBackground
12703
12704 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12705
12706         * XplatUIX11.cs (GetMessage):
12707           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
12708             window instead of client window
12709           - Now properly calculates NC_xBUTTONUP message coordinates
12710           - ScreenToMenu now properly calculates it's coordinates of whole 
12711             window, since menus are in the whole window, not in the client
12712             window
12713           - Added WholeToScreen coordinate translation method
12714
12715 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
12716
12717         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
12718           want to return a message, loop back to the beginning of the function
12719           and grab the next real message to process instead.
12720
12721 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12722
12723         * Splitter.cs: Properly set limits if no filler control is used
12724
12725 2005-10-19  Jackson Harper  <jackson@ximian.com>
12726
12727         * ColorDialog.cs: Don't show the help button if it is not enabled
12728         instead of disabling it (this is what MS does). Don't create the
12729         panel until the dialog is run, otherwise the vars (such as
12730         ShowHelp) are not set yet.
12731
12732 2005-10-19  Jackson Harper  <jackson@ximian.com>
12733
12734         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
12735         are reduced when adding nodes.
12736         * TreeNode.cs:
12737         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
12738         tree.
12739         
12740 2005-10-19  Jackson Harper  <jackson@ximian.com>
12741
12742         * FolderBrowserDialog.cs: End editing our treeview so the window
12743         actually gets refreshed.
12744
12745 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12746
12747         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
12748           Obsoleted handling of WM_ERASEBKGND, now always draws our background
12749           inside of WM_PAINT
12750
12751 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12752
12753         * MenuAPI.cs: Returns after Hidding window
12754         * XplatUIX11.cs: Added TODO found while debugging menu issues
12755
12756 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12757
12758         * XplatUIX11.cs: Do not re-map the whole window when it's size
12759           becomes non-zero unless it's supposed to be actually visible
12760
12761 2005-10-18  Jackson Harper  <jackson@ximian.com>
12762
12763         * TreeView.cs: We don't need to keep a count anymore.
12764         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
12765         use the Grow method.
12766
12767 2005-10-18  Jackson Harper  <jackson@ximian.com>
12768
12769         * TreeNodeCollection.cs: Insert is not supported on arrays, so
12770         implement it manually here.
12771
12772 2005-10-18  Jackson Harper  <jackson@ximian.com>
12773
12774         * ImageList.cs: Dont kill the list when the colour depth is
12775         changed, just change the colour depth of all the images.
12776         - Same goes for setting the image size. Just resize them all
12777         instead of killing the list softly.
12778
12779 2005-10-18  Jackson Harper  <jackson@ximian.com>
12780
12781         * Control.cs: Don't invalidate empty rectangles.
12782
12783 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12784
12785         * ListViewItem.cs:
12786           - Adds checked item to the Checked/Item lists (where empty before)
12787           - Do not add items to the Selected lists if they are already present
12788         * ListView.cs:
12789           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
12790           - When deleting items make sure that we delete them for the Selected
12791           and Checked list also.
12792
12793 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12794
12795         * Label.cs: Dispose objects no longer used
12796         * ThemeWin32Classic.cs: Dispose objects no longer used
12797
12798 2005-10-18  Jackson Harper  <jackson@ximian.com>
12799
12800         * TabControl.cs: Don't refresh the whole control when the tabs are
12801         scrolled, we just need to refresh the tab area.
12802
12803 2005-10-17  Jackson Harper  <jackson@ximian.com>
12804
12805         * XplatUIX11.cs: Compress code a little bit. Only calculate the
12806         after handle when we need it.
12807
12808 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12809
12810         * Control.cs: When the parent size changes, recalculate anchor 
12811           positions. Partial fix for #76462
12812
12813 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12814
12815         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
12816           drawn. Fixes #76462
12817
12818 2005-10-17  Jackson Harper  <jackson@ximian.com>
12819
12820         * MonthCalendar.cs: Don't create the numeric up down until our
12821         handle is created. Otherwise our handle is created in the
12822         constructor and we don't know if we are a WS_CHILD or WS_POPUP
12823         yet.
12824
12825 2005-10-17  Jackson Harper  <jackson@ximian.com>
12826
12827         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
12828         correctly.
12829
12830 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12831         * TreeNode.cs : small logical fix (was using local var instead of field)
12832         
12833 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12834
12835         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
12836
12837 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12838
12839         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
12840
12841 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
12842
12843         * Control.cs: 
12844           - Re-implemented anchoring code. My first version was really broken.
12845             This fixes bug #76033. Unlike the previous implementation we will
12846             no longer have round errors since all numbers are calculated from
12847             scratch every time. Removed various anchor-related obsolete vars.
12848           - InitLayout no longer causes layout event firing and layout to be 
12849             performed
12850
12851 2005-10-16  Jackson Harper  <jackson@ximian.com>
12852
12853         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
12854         which was broken).
12855
12856 2005-10-16  Jackson Harper  <jackson@ximian.com>
12857
12858         * TabControl.cs: Remove debug code.
12859
12860 2005-10-16  Jackson Harper  <jackson@ximian.com>
12861
12862         * XEventQueue.cs: Increase the default queue size (very simple
12863         apps needed to grow the queue).
12864         * Hwnd.cs: No finalizer so we don't need to suppress
12865         finalization. Compute the invalid area manually so a new rectangle
12866         does not newto be created.
12867         * ScrollableControl.cs: Don't set any params (otherwise visibility
12868         isn't set correctly).
12869         * MdiChildContext.cs: New constructor takes the mdi parent so it
12870         doesn't have to be computed and avoids a crash on windows. Draw
12871         the window icon properly, and allow the text to be seen.
12872         * Form.cs: Use new MdiChildContext constructor. Make sure the
12873         child context isn't null in wndproc.
12874         * TabControl.cs: Don't set focus, this is muddling keyboard
12875         behavoir. Expand the tab rows when a window size increase will
12876         allow extra tabs to be seen. Don't allow tabs smaller than the
12877         width of a window to be scrolled out of view.
12878         * TreeNode.cs:
12879         * TreeView.cs: Use measure string to calculate a nodes width, the
12880         width is cached and only updated when the text or the font is
12881         changed. Don't check for expand/collapse clicks on the first level
12882         nodes if root lines are disabled.
12883         
12884 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
12885
12886         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
12887
12888 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12889
12890         * DataGridBoolColumn.cs: fixes warning
12891
12892 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12893
12894         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
12895         to match more to match more precisely the MS Net behavior
12896
12897 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12898
12899         * Hwnd.cs: Added field to track if window is mapped
12900         * XplatUIX11.cs: 
12901           - Unmap windows if they become 0-size, re-map when 
12902             they are >0 again; fixes #76035
12903           - Re-set our error handler after initializing X11Desktop
12904             to override any error handlers Gtk or whatever was called
12905             may have set.
12906
12907 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12908
12909         * CheckedListBox.cs: Removed unused vars
12910         * ListView.cs: Fixed signatures
12911         * RichTextBox.cs: Removed unused vars
12912         * TextBoxBase.cs: Removed unused vars
12913         * XplatUIWin32.cs: Removed unused vars
12914         * XplatUIX11.cs: Removed unused vars
12915         * XplatUI.cs: Updated version and date to latest published
12916
12917 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12918
12919         * Cursor.cs: Added private .ctor to work around a bug in
12920           resourceset (Thanks to Geoff Norton for the help on this)
12921         * SplitterEventArgs.cs: Made fields accessible so we don't
12922           waste boatloads of objects and can reuse the same one
12923           in Splitter
12924         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
12925           any captions and borders when generating screen coordinates
12926         * Splitter.cs: Reimplemented control, now fully complete, uses
12927           rubberband drawing, supports and obeys all properties, has
12928           proper cursors
12929
12930 2005-10-13  Miguel de Icaza  <miguel@novell.com>
12931
12932         * Form.cs (Form): Setup default values for autoscale and
12933         autoscale_base_size;  Make these instance variables, not static
12934         variables. 
12935
12936         (OnLoad): on the first load, adjust the size of the form.
12937
12938 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12939
12940         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
12941           width argument to DrawReversibleRectangle()
12942         * XplatUIWin32.cs, XplatUIX11.cs: 
12943           - Implemented width for DrawReversibleRectangle()
12944           - Added logic to DrawReversibleRectangle that recognizes a zero
12945             width or height and only draws a line in that situation
12946         
12947 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
12948
12949         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
12950         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
12951         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
12952           method (it uses our FosterParent window to get a graphics context)
12953
12954 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
12955
12956         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
12957           and SetWindowBackground methods
12958         * Control.cs:
12959           - Setting proper ControlStyles
12960           - We no longer call XplatUI.SetWindowBackground and XplatUI.
12961             EraseWindowBackground, instead we draw the window background
12962             ourselves in PaintControlBackground. This behaviour is
12963             required to match MS, where, when OnPaintBackground is not
12964             called, the background is not drawn.
12965           - Removed unneeded Refresh() in set_Text
12966         * Hwnd.cs: Dropped the ErasePending support. No longer needed
12967         * XplatUIX11.cs:
12968           - Created DeriveStyles method to translate from CreateParams to
12969             FormBorderStyle and TitleStyle, also handles BorderStyle (which
12970             matches FormBorderStyle enum values)
12971           - Consolidated SetHwndStyles and CalculateWindowRect border/title
12972             style calculations into single DeriveStyles method
12973           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
12974             from redrawing the whole window on any resize or expose.
12975           - Fixed CreateWindow usage of SetWindowValuemask. Before not
12976             all styles were applied to our whole/client window appropriately
12977           - Removed EraseWindowBackground() and SetWindowBackground() methods
12978           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
12979             no longer clear/redraw the background through X
12980           - Removed handling of erase_pending bit, we have no use for it (or
12981             so it seems)
12982         * XplatUIOSX.cs:
12983           - Removed generation and handling of WM_ERASEBKGND message
12984           - Removed EraseWindowBackground() and SetWindowBackground() methods
12985           - Removed handling of hwnd.ErasePending flag
12986         * XplatUIWin32.cs:
12987           - Removed EraseWindowBackground() and SetWindowBackground() methods
12988           - We no longer call EraseWindowBackground on PaintEventStart, we 
12989             ignore the fErase flag, erasing is handled in Control in the
12990             background handler
12991         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
12992           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
12993           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
12994           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
12995           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
12996           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
12997           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
12998
12999 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
13000
13001         * PropertyGrids.cs: Get sub properties
13002         * PropertyGridView.cs: Fix drawing code
13003
13004 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13005
13006         * ListBox.cs: Fixes 76383
13007
13008 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13009
13010         * DataGridTextBoxColumn.cs: Sets location and size before attachment
13011         * ThemeWin32Classic.cs: Fixes border drawing and calculations
13012         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
13013
13014
13015 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13016
13017         * ComboBox.cs: Fixes border drawing
13018
13019 2005-10-10  Miguel de Icaza  <miguel@novell.com>
13020
13021         * MimeIcon.cs: Ignore errors if the file can not be read.
13022
13023 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13024
13025         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
13026          - Fixed border calculations
13027          - Fixed horizontal scrolling in single column listboxes
13028          - Fixed drawing issues
13029
13030 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
13031
13032         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
13033           FormBorderStyle enum
13034         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
13035           code to determine FormBorderStyles from CreateParams
13036         * Form.cs:
13037           - Fixed bug where we'd set the wrong window styles if we were
13038             not creating an MDI window
13039           - Added call to XplatUI.SetBorderStyle when form borders are set
13040         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
13041         * Hwnd.cs:
13042           - Removed obsolete edge style
13043           - Switched from BorderStyle to FormBorderStyle
13044         
13045 2005-10-10  Jackson Harper  <jackson@ximian.com>
13046
13047         * Form.cs: Use the property to get the window handle instead of
13048         accessing it directly. Prevents a null reference exception.
13049
13050 2005-10-10  Jackson Harper  <jackson@ximian.com>
13051
13052         * TreeView.cs: Don't adjust the rect given to DrawString now that
13053         our libgdiplus draws correctly.
13054
13055 2005-10-08  Jackson Harper  <jackson@ximian.com>
13056
13057         * TreeView.cs: Don't try to find the clicked on node if there are
13058         no nodes in the tree.
13059
13060 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
13061
13062         * RichTextBox.cs:
13063
13064           restore
13065
13066 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
13067
13068         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
13069           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
13070           ErrorProvider.cs:
13071           Use ResPool for brushes and dispose System.Drawing objects that
13072           are not used anymore.
13073
13074 2005-10-07  Jackson Harper  <jackson@ximian.com>
13075
13076         * MdiChildContext.cs: Use the new borders instead of drawing them
13077         ourselves.
13078
13079 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
13080
13081         * Calling UpdateBounds after changing the window's BorderStyle 
13082         since the style can change the ClientSize
13083
13084 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13085
13086         * Control.cs: Made PaintControlBackground virtual
13087         * Panel.cs: Overriding PaintControlBackground instead of using paint
13088           event; paint event method was interfering with 'real' users of the
13089           event.
13090
13091 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
13092
13093         * ThemeWin32Classic.cs: remove border drawing since it is handled
13094         by the base control class now and was causing double border drawing.
13095
13096 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13097
13098         * Panel.cs: Redraw our background on paint. Not a pretty solution,
13099           but it does seem to match MS behaviour. This fixes bug #75324
13100
13101 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13102
13103         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
13104           somewhat hackish looking
13105
13106 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13107
13108         * TextBoxBase.cs:
13109           - We now accept Enter even if AcceptEnter is false, if the containing
13110             form does not have an AcceptButton configured (fixes bug #76355)
13111           - Calculations are now fixed to no longer use Width/Height, but
13112             ClientSize.Width/Height, since we now support borders (this was
13113             a result of fixing borders and therefore bug #76166)
13114           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
13115             true (fixes bug #76354)
13116         
13117 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13118
13119         * Control.cs: 
13120           - Defaulting BorderStyle and setting it in XplatUI when our window 
13121             is created
13122           - Added enum check to InternalBorderStyle setter
13123         * XplatUIX11.cs: 
13124           - Added drawing of window borders
13125           - Now properly calculates WM decorations offset for toplevel 
13126             windows (fixes bug #74763)
13127         * XplatUIWin32.cs: 
13128           - Implemented BorderStyles for windows (we're letting win32 draw 
13129             the border for us)
13130           - Fixed the signature for SetWindowLong
13131         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
13132           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
13133           setting borders
13134         * UpDownBase.cs: Remove drawing of borders, this is handled by
13135           the driver, outside the client area
13136         * ListView.cs: Removed bogus border calculations. The control should
13137           be oblivious to borders, since those are not part of the client
13138           area. 
13139         * X11DesktopColors.cs: Commented out (currently) unneeded variables
13140         * ThemeWin32Classic.cs: Removed border calculations from ListView 
13141           drawing code
13142
13143 2005-10-06  Jackson Harper  <jackson@ximian.com>
13144
13145         * MdiChildContext.cs: Clear out the old virtual position remove
13146         all the unneeded calls to CreateGraphics.
13147
13148 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13149
13150         * TextControl.cs: Use proper color for highlighted text; fixes #76350
13151
13152 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13153
13154         * Form.cs: 
13155           - Added loading and setting of our new default icon
13156           - Only set icon if window is already created
13157
13158 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13159
13160         * Label.cs:
13161           - Do not explicitly set the foreground and background colors, to
13162             allow inheriting from parents (fixes #76302)
13163           - Use Control's InternalBorderStyle property to deal with borders
13164
13165 2005-10-06  Jackson Harper  <jackson@ximian.com>
13166
13167         * MdiChildContext.cs: Use the new xplatui function to draw a
13168         reversible rect.
13169
13170 2005-10-06  Jackson Harper  <jackson@ximian.com>
13171
13172         * Form.cs: Add the parent before creating the child context cause
13173         we need the parent when setting up the child.
13174
13175 2005-10-06  Jackson Harper  <jackson@ximian.com>
13176
13177         * FolderBrowserDialog.cs: redo the tree population code so a
13178         second thread isn't used. Should be a lot faster and more stable
13179         now.
13180
13181 2005-10-05  Jackson Harper  <jackson@ximian.com>
13182
13183         * TreeView.cs: There are no expand/collapse boxes if the node has
13184         no children.
13185
13186 2005-10-05  Jackson Harper  <jackson@ximian.com>
13187
13188         * X11DesktopColors.cs: Get menu colours for the gtk theme.
13189
13190 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
13191
13192         * FileDialog.cs: Fix InitialDirectory
13193
13194 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
13195
13196         * ComboBox.cs:
13197                 - Fixes changing between styles
13198                 - Fixes simple mode
13199                 - Fixes last item crashing when navigating with keyboard
13200
13201 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
13202
13203         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
13204
13205 2005-10-05  Jackson Harper  <jackson@ximian.com>
13206
13207         * TreeView.cs: If updating the root node do a full refresh.
13208         * TreeNode.cs: The root node should be expanded by default. Also
13209         added a utility prop to tell if we are the root node.
13210         * TreeNodeCollection.cs: Only refresh if the node we are being
13211         added to is expanded. Also added a comment on a potential
13212         optimization.
13213         
13214 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
13215
13216         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
13217           in dispose method. Fixes #76330
13218
13219 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
13220
13221         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
13222
13223                 - Implements vertical and horizontal scrolling using XplatUI
13224                 - Fixes keyboard navagation
13225                 - Fixes EnsureVisible
13226                 - Drawing fixes
13227                 - Handles and draws focus properly
13228
13229
13230 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
13231
13232         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
13233           Create handle. NET_2_0: Destroy handle when value is null.
13234
13235 2005-10-03  Jackson Harper  <jackson@ximian.com>
13236
13237         * ScrollBar.cs: My last scrollbar patch was broken. This is a
13238         revert and a new patch to prevent the thumb from refreshing so
13239         much.
13240
13241 2005-10-02  Jackson Harper  <jackson@ximian.com>
13242
13243         * ScrollBar.cs: Don't update position if it hasn't actually
13244         changed. This occurs when you hold down the increment/decrement
13245         buttons and the thumb gets to the max/min.
13246
13247 2005-10-01  Jackson Harper  <jackson@ximian.com>
13248
13249         * Form.cs:
13250         * MdiChildContext.cs:
13251         * MdiClient.cs: Implement ActiveMdiChild in Form.
13252
13253 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
13254
13255         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
13256
13257 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
13258
13259         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
13260           be found
13261
13262 2005-09-30  Jackson Harper  <jackson@ximian.com>
13263
13264         * ListBox.cs: Don't do a full refresh unless some data has
13265         actually changed.
13266
13267 2005-09-30  Jackson Harper  <jackson@ximian.com>
13268
13269         * TreeView.cs: Make sure that the checkboxes size is factored in
13270         even when not visible.
13271
13272 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13273
13274         * FileDialog.cs: Fix Jordi's build break
13275
13276 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13277
13278         * FileDialog.cs: 
13279                 - Use standard the Windows colours for the combobox as espected
13280                 - Dispose objects that use resouces when no longer need them
13281
13282 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13283
13284         * X11DesktopColors.cs: Initial incomplete implementation
13285         * XplatUIX11.cs: Added call to initialize X11DesktopColors
13286
13287 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
13288
13289         * Theme.cs: 
13290           - Switched Theme color names to match the names defined in 
13291             System.Drawing.KnownColors. Life's hard enough, no need to make 
13292             it harder.
13293           - Added setters to all theme color properties so themes can set
13294             their color schemes. The setters also propagate the color changes
13295             to System.Drawing.KnownColors via reflection
13296         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
13297           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
13298           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
13299           use the new, more logical theme color names
13300         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
13301           post-NT colors
13302         * ThemeWin32Classic.cs:
13303           - Removed code to set the old classic Windows colors. Instead it
13304             now relies on the colors returned by System.Drawing.KnownColors
13305             which will be either modern static colors (Unix) or colors
13306             read from the user's configuration (Win32)
13307           - Updated to use the new, more logical theme color names
13308           - Switched DataGrid drawing code to use only Theme colors instead of
13309             a mix of System.Drawing.KnownColors and Theme colors
13310           - DrawFrameControl(): Removed code that fills the button area, the
13311             fill would overwrite any previous fill done by a control. This
13312             fixes bug #75338 
13313           - Added DrawReversibleRectangle() stub
13314         * ScrollableControl.cs: Set visible state to false when scrollbars
13315           are removed (pdn fix)
13316         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
13317           DrawReversibleRectangle() method to allow drawing primitive 
13318           'rubber bands'
13319         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
13320
13321 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13322
13323         * ImageList.cs: Add(Icon): Create handle.
13324
13325 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13326
13327         * ListView.cs:
13328         * ThemeWin32Classic.cs:
13329                 - Fixes detail mode
13330                 - Sets clippings
13331                 - Issues with drawing
13332
13333 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13334
13335         * ImageList.cs: Moved RecreateHandle back to ImageList as event
13336           source has to be the ImageList.
13337
13338 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13339
13340         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
13341
13342 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13343
13344         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
13345
13346 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13347
13348         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
13349
13350 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
13351         * GridItem.cs: Fixed TODOs
13352         * GridItemCollection.cs: Added ICollection interface
13353
13354 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13355
13356         * ImageList.cs: Resize icons when needed.
13357
13358 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
13359
13360         * ListViewItem.cs
13361                 - Fixes GetBounds and returns on screen rects
13362         * ListView.cs:
13363                 - Fixes vertical and horzintal scrolling of items
13364         * ThemeWin32Classic.cs:
13365                 - Fixes drawing
13366                 
13367 2005-09-29  Raja R Harinath  <harinath@gmail.com>
13368
13369         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
13370
13371 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
13372
13373         * ImageList.cs: Added comments about handle creation. Moved Handle,
13374           HandleCreated and OnRecreateHandle implementations to ImageCollection.
13375           Handle is created in Add methods.
13376
13377 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13378          
13379         * DataGridDrawingLogic.cs: 
13380                 - Takes rows into account on Colum calculations
13381                 - Returns the column when clickig
13382         * DataGrid.cs:
13383                 - Fixes default HitTestInfo values
13384                 - Fixes HitTestInfo.ToString
13385                 - Fixes ResetBackColor          
13386         
13387 2005-09-28  Jackson Harper  <jackson@ximian.com>
13388
13389         * MdiChildContext.cs: Obey rules for fixed sized windows (no
13390         sizing or cursor changes). Also added some temp code to draw the
13391         titlebars text (Makes dev a little easier).
13392
13393 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13394
13395         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
13396
13397 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13398          
13399         * ListBox.cs: Fixes bug 76253
13400
13401 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13402
13403         * ImageList.cs: Added comments about the current implementation. Added
13404           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
13405           Format32bppArgb to preserve transparency and can use Graphics.FromImage
13406           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
13407           with Bitmap.LockBits for better performance. Revised the whole file to
13408           match MS.NET behaviour and provide better performance. Non-public
13409           interface members are calling public members even when they throw
13410           NotSupportedException for better maintainability. Moved ColorDepth,
13411           ImageSize, ImageStream and TransparentColor implementations to
13412           ImageCollection for better performance as these properties are not used
13413           by ImageList.
13414         * ImageListStreamer.cs: Added a new internal constructor that takes an
13415           ImageList.ImageCollection and serializes Images based on
13416           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
13417           match ImageList property name.
13418
13419 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
13420
13421         * ListBox.cs: Fixes IndexFromPoint for last item
13422
13423 2005-09-27  Jackson Harper  <jackson@ximian.com>
13424
13425         * Form.cs: Set the position of new mdi children correctly.
13426
13427 2005-09-27  Jackson Harper  <jackson@ximian.com>
13428
13429         * MdiClient.cs: New mdi children need to be added to the back of
13430         the controls collection so the zorder is set correctly. Also add a
13431         count of all the child windows that have been created.
13432
13433 2005-09-27  Jackson Harper  <jackson@ximian.com>
13434
13435         * Form.cs (CreateParams): Setup MDI forms correctly.
13436
13437 2005-09-27  Jackson Harper  <jackson@ximian.com>
13438
13439         * MdiChildContext.cs:
13440         * MonthCalendar.cs:
13441         * UpDownBase.cs:
13442         * ListBox.cs:
13443         * ListView.cs:
13444         * TextBoxBase.cs:
13445         * TreeView.cs:
13446         * ScrollableControl.cs:
13447         * ComboBox.cs: Add implicit controls using the new implict control
13448         functionality in ControlCollection. Also try to block multiple
13449         control add in a suspend/resume layout to save some cycles.
13450         
13451 2005-09-27  Jackson Harper  <jackson@ximian.com>
13452
13453         * Control.cs: Add functionality to the controls collection to add
13454         'implicit controls' these are controls that are created by the
13455         containing control but should not be exposed to the user. Such as
13456         scrollbars in the treeview.
13457         * Form.cs: The list var of the ControlsCollection is no longer
13458         available because of the potential of implicit controls getting
13459         ignored by someone accessing the list directly.
13460
13461 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
13462
13463         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
13464           loose it's parent. (Fixed bug introduced in r49103 when we added
13465           setting the child parent to null on Remove)
13466
13467 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
13468
13469         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
13470         * Splitter.cs: Added missing attributes for BorderStyle property.
13471         * TextBoxBase.cs: Marked Calculate* methods internal.
13472         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
13473         MS.NET.
13474
13475 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
13476          
13477         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
13478
13479 2005-09-25  Jackson Harper  <jackson@ximian.com>
13480
13481         * TreeView.cs: Update the node bounds correctly regardless of
13482         whether the node is visible.
13483
13484 2005-09-25  Jackson Harper  <jackson@ximian.com>
13485
13486         * ImageList.cs: Don't dispose the image after it is added to the
13487         image list. Only reformat images that need to be resized.
13488
13489 2005-09-25  Jackson Harper  <jackson@ximian.com>
13490
13491         * ImageList.cs: Don't set the format when changing the image.
13492
13493 2005-09-25  Jackson Harper  <jackson@ximian.com>
13494
13495         * TreeView.cs: We can't just assume the node has a font. Use the
13496         treeviews font if no node font is available.
13497
13498 2005-09-25  Jackson Harper  <jackson@ximian.com>
13499
13500         * TreeView.cs: Allow the scrollbars to be reset with negative
13501         values.
13502         - Don't add scrollbars to negative sized windows.
13503
13504 2005-09-23  Jackson Harper  <jackson@ximian.com>
13505
13506         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
13507         old Mono.Posix. Also remove some stray code that shouldn't have
13508         been committed.
13509
13510 2005-09-23  Jackson Harper  <jackson@ximian.com>
13511
13512         * TreeView.cs: Attempt at proper sizing of the horizontal
13513         scrollbar. Also don't resize the scrollbars unless they are
13514         visible.
13515
13516 2005-09-23  Jackson Harper  <jackson@ximian.com>
13517
13518         * TreeView.cs: We don't need to expand the invalid area when the
13519         selection changes, as this is all drawn in the node's bounding
13520         box. The area needs to be expanded (previous typo was contracting
13521         it) when the focus rect moves.
13522
13523 2005-09-23  Jackson Harper  <jackson@ximian.com>
13524
13525         * TreeView.cs: Display the selection box under the correct
13526         circumstances. We were rendering white text with no selection box
13527         before.
13528
13529 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
13530
13531         * TextControl.cs(Split): Now updates selection start/end if it points 
13532           into a line that's being split. Fixes a FIXME and bug #75258
13533
13534 2005-09-23  Jackson Harper  <jackson@ximian.com>
13535
13536         * Binding.cs:
13537         * ListControl.cs: Don't use the path when retrieving binding
13538         managers from the binding context. My bat sense tells me that the
13539         path is only used on insertion.
13540
13541 2005-09-22  Jackson Harper  <jackson@ximian.com>
13542
13543         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
13544
13545 2005-09-22  Jackson Harper  <jackson@ximian.com>
13546
13547         * Splitter.cs: There are special cursors used for splitting.
13548         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
13549
13550 2005-09-22  Jackson Harper  <jackson@ximian.com>
13551
13552         * Splitter.cs: Change the cursor appropriately when the splitter
13553         is moused over, so the user actually knows there is a splitter
13554         there.
13555
13556 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13557
13558        * Label.cs : Fix ToString method to give same output as MS.NET
13559
13560 2005-09-22  Jackson Harper  <jackson@ximian.com>
13561
13562         * TreeView.cs: Create the scrollbars when the handle is created
13563         and add them right away, just make them invisble. Also account for
13564         the window being shrunk vertically to the point that the vert
13565         scrollbar needs to be added.
13566         - Remove some 0.5 adjustments to get around anti aliasing issues.
13567         
13568 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
13569          
13570         * MainMenu.cs: Fixes default value
13571         * MenuItem.cs: Fixes default value
13572
13573 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
13574
13575         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
13576
13577 2005-09-21  Jackson Harper  <jackson@ximian.com>
13578
13579         * Control.cs: Don't try to set the border style on the window if
13580         it hasn't been created. When the window is created the border
13581         style will be used.
13582
13583 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13584
13585         * Control.cs (Update): Don't call XplatUI if we don't have a
13586           window handle yet
13587
13588 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13589
13590         * ContainerControl.cs: Instead of throwing an exception, print
13591           a one-time warning about Validate not being implemented
13592         * XplatUIWin32.cs: Removed debug output
13593
13594 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13595
13596         * Control.cs: Only set XplatUI background if we expect the windowing
13597           system to handle the background. This stops controls that draw their
13598           own background from flickering
13599
13600         * XplatUIX11.cs: Support custom visuals and colormaps for window 
13601           creation. This allows, amongst other things, using MWF X11 windows 
13602           with OpenGL.
13603
13604 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13605
13606         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
13607           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
13608           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
13609           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
13610           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
13611           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
13612           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
13613           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
13614           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
13615           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
13616           GridColumnStylesCollection.cs, 
13617           IDataGridColumnStyleEditingNotificationService.cs,
13618           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
13619           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
13620           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
13621           TreeNodeCollection.cs, AmbientProperties.cs, 
13622           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13623           DataObject.cs, ErrorProvider.cs, Splitter.cs,
13624           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
13625           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
13626           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
13627           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
13628           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
13629           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
13630           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
13631           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
13632           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
13633           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
13634           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
13635           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
13636           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
13637           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
13638           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
13639           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
13640           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
13641           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
13642           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
13643           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
13644           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
13645           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
13646           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
13647           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
13648           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
13649           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
13650           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
13651           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
13652           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
13653           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
13654           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
13655           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
13656           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
13657           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
13658           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
13659
13660 2005-09-21  Jackson Harper  <jackson@ximian.com>
13661
13662         * TreeNode.cs: Call Before/After Expand not Collapse when
13663         expanding.
13664
13665 2005-09-20  Jackson Harper  <jackson@ximian.com>
13666         
13667         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
13668
13669 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13670          
13671         * ListViewItem.cs:
13672                 - Fixes bug 76120
13673                 - Fixes proper storing of subitems
13674                 - Fixes not updated items
13675
13676 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
13677
13678         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
13679           things if our window handle isn't created yet. Also disabled 
13680           debug for TextBoxBase
13681
13682 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
13683
13684         * MenuAPI.cs: Remove filtering of events to allow menu usage
13685
13686 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13687
13688         * Cursor.cs: Allow null to be passed to Cursor.Current.
13689
13690 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
13691
13692         * ThemeWin32Classic.cs:
13693           - Change some private methods/fields to protected virtual so that 
13694             they can be accessed and overriden in derived classes
13695           - First refactoring of some methods. Derived themes now don't 
13696             need to duplicate the complete code from ThemeWin32Classic
13697         * ThemeNice.cs:
13698           - Added nice StatusBar
13699           - Derive from ThemeWin32Classic and not Theme
13700           - Removed duplicate ThemeWin32Classic code
13701
13702 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13703
13704         * Control.cs (ControlCollection.Add): If the value null is passed
13705         the control is ignored. 
13706
13707         Optimize this loop.
13708
13709 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
13710
13711         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
13712           PostQuitMessage state.
13713         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
13714
13715 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
13716
13717         * Application.cs: Our constructor will never get called, move 
13718           initialization to fields; fixes bug #75933
13719
13720 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13721
13722         * FileDialog.cs :
13723                 - Allow files to be selected properly using file name
13724                 combo box.
13725                 - Add ability to change diretory (absolute / relative)
13726                 using file name combo box.
13727
13728 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13729          
13730         * ListBox.cs: 
13731                 - Fixes Multicolumn listboxes item wrong calculations
13732                 - Allows to click when only one item is in the listbox
13733                 - Fixes crash when no items using keyboard navigation
13734
13735 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
13736
13737         * ComboBox.cs: Reverted almost everything from the latest patch which
13738           broke ComboBox
13739
13740 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
13741         
13742         * ToolTip.cs:
13743                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
13744         * ComboBox.cs:
13745                 - When DropDownStyle is Simple, it does not show scrollbar 
13746                 to the last item of the list.
13747                 - When DropDownStyle is Simple, it crashed when the list was 
13748                 scrolled down with the down cursor key.
13749                 - Fixed a bug that when DropDownStyle is DropDownList, the 
13750                 selected item was not shown.
13751                 - The position of the selected item was not preserved when 
13752                 the next dropdown happened.
13753         * ThemeWin32Classic.cs:
13754                 - Items were wrapped at the right end.
13755         * CheckedListBox.cs:
13756                 - Fixed Add method
13757         * ListBox.cs:
13758                 - Items should be fully shown.
13759                 - When resizing and vertical scrollbar disappeared, the item 
13760                 of index 0 should be on the top of the list.
13761                 - GetItemRectangle should consider the size of ver. scrollbar
13762         * StatusBar.cs:
13763                 - SizingGrip area should not be allocated when it is not 
13764                 displayed.
13765                 - Now it reflects MinWidth of the containing panel and 
13766                 fixed a crash that happens when its width becomes so small.
13767
13768 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13769
13770         * CheckedListBox.cs: Fixes bug 76028
13771         * ListBox.cs: Fixes bug 76028
13772
13773 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13774
13775         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
13776         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
13777
13778 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
13779
13780         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
13781
13782 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13783
13784         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
13785
13786 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13787
13788         * IRootGridEntry.cs: Added
13789         * PropertyGridCommands.cs: Added
13790         * PropertiesTab.cs: Added missing methods and property
13791         * PropertyGridView.cs: Made class internal
13792         * PropertyGridTextBox.cs: Made class internal
13793
13794 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13795
13796         * MimeIcon.cs: Try to check some other environment variables
13797           if "DESKTOP_SESSION" returns "default"
13798
13799 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13800
13801         * ThemeNice.cs: Corrected background colors (e.g. menus)
13802         * ColorDialog.cs: Use correct background colors for controls
13803
13804 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13805
13806         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
13807
13808 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
13809
13810         * RichTextBox.cs: Added initial implementation
13811         * lang.cs: Removed. Was accidentally checked in long time ago
13812         * TODO: Removed. Contents were obsolete
13813
13814 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13815                                                                                 
13816         * PropertiesTab.cs : Added
13817
13818 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13819                                                                                 
13820         * PropertyGrid.cs : Update
13821         * PropertyGridView.cs : Update
13822         * System.Windows.Forms.resx : Added images and strings
13823
13824 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
13825
13826         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
13827  
13828 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
13829
13830         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
13831           a busy loop right after the Ungrab the X11 display is otherwise 
13832           blocked
13833
13834 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
13835
13836         * ThemeWin32Classic.cs: Optimise the use of clipping
13837
13838 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
13839
13840         * DataGrid.cs: fixes recursion bug
13841
13842 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
13843
13844         * ThemeNice.cs: 
13845           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
13846           - Cleanup
13847
13848 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
13849
13850         * ThemeNice.cs: Draw nice ProgressBars
13851
13852 2005-09-01  Miguel de Icaza  <miguel@novell.com>
13853
13854         * VScrollBar.cs: Another buglet found by Aaron's tool. 
13855
13856         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
13857         bug finder.
13858
13859 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
13860
13861         * ThemeNice.cs:
13862           - Added nicer menu drawing
13863           - Updated DrawTab
13864           - some refactoring
13865
13866 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13867
13868         * CreateParams.cs (ToString): Made output match MS
13869         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
13870             handle is already created (to avoid forcing window creation)
13871         * XplatUIX11.cs: Set window text to caption after creating window,
13872           in case Text was set before window was created
13873         * Form.cs: Use this.Text instead of a static string as caption
13874
13875 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13876
13877         * NotifyIcon.cs: Don't set the window to visible; this screws
13878           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
13879           OnPaint without a bitmap)
13880         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
13881           happen very often anyway; we could add the check to the WM_PAINT 
13882           event generation code
13883
13884 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13885
13886         * NotifyIcon.cs: Fill the icon area with a background color, to 
13887           avoid 'residue' when transparent icons are drawn
13888         * XplatUIX11.cs:
13889           - Handle whole_window == client_window when destroying windows
13890           - SystrayAdd(): Set client_window to whole_window value to
13891             get mouse and other events passed to NotifyIcon
13892
13893 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13894
13895         * Form.cs: Set proper default for Opacity property
13896         * NotifyIcon.cs:
13897           - ShowSystray(): Don't bother creating telling the OS
13898             about the systray item if no icon is provided
13899           - Now handles WM_NCPAINT message to deal with whole/client window
13900             split
13901           - Create window as visible to not get caught by Expose optimization
13902         * Hwnd.cs: Removed debug message
13903         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
13904           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
13905             PaintEventStart/End to use new client argument
13906         * TextBoxBase.cs:
13907           - Commented out debug messages
13908           - Switched PaintEventStart/End to use new client argument
13909         * XplatUI.cs: Added client window bool to PaintEventStart()/
13910           PaintEventEnd() calls, to support drawing in non-client areas
13911         * XplatUIDriver.cs: 
13912           - Added client window bool to PaintEventStart()/PaintEventEnd() 
13913             calls, to support drawing in non-client areas
13914           - Added conditional compile to allow using MWF BeginInvoke 
13915             on MS runtime
13916         * XplatUIX11.cs:
13917           - Added some conditional debug output
13918           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
13919             whole/client window split
13920           - Implemented handling of client argument to PaintEventStart()/End()
13921         * Control.cs:
13922           - Throw exception if BeginInvoke() is called and the window handle
13923             or one of the window's parent handles is not created
13924           - Added conditional compile to allow using MWF BeginInvoke on
13925             MS runtime
13926           - get_Parent(): Only sets parent if handle is created. This avoids
13927             forcing window handle creation when parent is set.
13928           - Now fires Layout and Parent changed events in proper order
13929           - Switched to use Handle instead of window.Handle for Z-Order setting,
13930             the get_Parent() patch above causes us to possibly get null for 'window'
13931           - Implemented handling of client argument to PaintEventStart()/End()
13932           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
13933             default handling)
13934           - Now sends a Refresh() to all child windows when Refresh() is called
13935
13936 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
13937
13938         * Form.cs: Added (non-functional) Opacity property
13939         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
13940
13941 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
13942         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
13943           use export MONO_THEME=nice to activate it.
13944           Currently supported controls:
13945           - Button
13946           - ComboBox
13947           - ScrollBar
13948           - TabControl (TabAlignment.Top only, other will follow)
13949         * ThemeEngine.cs: Add theme nice
13950         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
13951           if enabled
13952
13953 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
13954
13955         * Splitter.cs: Resize docked control and its neighbor.
13956
13957 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13958         -- Making Windows with Menus layout correctly --
13959         * Form.cs : The first leg of the fix
13960                 Menu setter - adjust Client Size as needed to make space for the menu
13961                 SetClientSizeCore - doesn't call base version to be able to pass the 
13962                         menu handle to XplatUI.CalculateWindowRect
13963         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
13964         * XplatUIX11.cs: The critical second leg of the fix
13965                 GetWindowPos needs to use a recalculated client_rect
13966                 so that resizing the window doesn't break layout of child controls. 
13967                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
13968                 Lots of \t\n killed
13969
13970 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13971
13972         * Label.cs: Now properly recalculates width and height on Font and Text
13973           changes if AutoSize is set
13974
13975 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13976         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
13977
13978 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
13979
13980         * ImageList.cs: Makes ToString method compatible with MS
13981
13982 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
13983
13984         * MenuAPI.cs: fixes bug 75716
13985
13986 2005-08-11 Umadevi S <sumadevi@novell.com>
13987         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
13988
13989 2005-08-11 Umadevi S <sumadevi@novell.com>
13990         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
13991
13992 2005-08-10  Umadevi S <sumadevi@novell.com>
13993         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
13994
13995 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
13996
13997         * Menu.cs: fixes bug 75700
13998         * MenuAPI.cs: fixes navigation issues
13999
14000 2005-08-09  Umadevi S <sumadevi@novell.com>
14001         * CheckedListBox.cs - simple fix for GetItemChecked.
14002
14003 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
14004
14005         * ComboBox.cs: Serveral fixes
14006         * ListBox.cs: Serveral fixes
14007
14008 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
14009
14010         * ComboBox.cs: Fixes FindString methods and GetItemHeight
14011         * ListBox.cs: Fixes FindString methods
14012
14013 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
14014
14015         * DataGrid.cs: fixes bugs exposed by new tests
14016
14017 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
14018
14019         * Mime.cs: Compile Mono assembly references only if compiling
14020           with Mono (Allows to build with VS.Net again)
14021
14022 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
14023
14024         * Control.cs (PaintControlBackground): Draw background image
14025         corrrectly.
14026         (CheckForIllegalCrossThreadCalls): Stubbed.
14027         
14028         * Form.cs (OnCreateControl): Center when should be centered.
14029         
14030         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
14031
14032 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
14033
14034         * Binding.cs: Binding to properties should be case unsensitive
14035
14036 2005-07-18 vlindos@nucleusys.com
14037
14038         * DataGrid.cs: fixes setmember order
14039
14040 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
14041
14042         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
14043         * FileDialog.cs: FileDialog is now resizable and uses the new
14044           MimeIconEngine
14045
14046 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
14047
14048         * DataGridTextBoxColumn.cs: default value
14049         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
14050         * GridTableStylesCollection.cs: fixes checking MappingName
14051         * DataGridDrawingLogic.cs: fixes drawing logic issues
14052         * DataSourceHelper.cs: rewritten to make compatible with more data sources
14053         * DataGrid.cs: fixes    
14054
14055 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
14056
14057         * MimeGenerated.cs: Use case sensitive comparer for
14058           NameValueCollections
14059
14060 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
14061
14062         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
14063         * ThemeWin32Classic.cs: bug fixes, code refactoring
14064         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
14065         * DataGrid.cs: bug fixes, code refactoring
14066         * DataGridTextBox.cs: bug fixes, code refactoring
14067         * DataGridColumnStyle.cs:  bug fixes, code refactoring
14068         * Theme.cs:  bug fixes, code refactoring
14069
14070 2005-07-01  Peter Bartok  <pbartok@novell.com> 
14071
14072         * TextControl.cs: Quick fix for the reported crash on ColorDialog
14073           and other text box usage
14074
14075 2005-07-01  Jackson Harper  <jackson@ximian.com>
14076
14077         * TabControl.cs: Make sure the bottom of the tab covers the pages
14078         border.
14079
14080 2005-06-30  Peter Bartok  <pbartok@novell.com> 
14081
14082         * Form.cs (ShowDialog): Assign owner of the dialog
14083         * TextBoxBase.cs: Always refresh caret size when deleting, caret
14084           might have been moved to a tag with different height
14085
14086 2005-06-30  Jackson Harper  <jackson@ximian.com>
14087
14088         * Form.cs: Don't create an infinite loop when setting focus
14089         * MenuItem.cs: Don't dirty the parents if we don't have any
14090
14091 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
14092
14093         * LibSupport.cs: Rename
14094
14095 2005-06-29  Peter Bartok  <pbartok@novell.com>
14096
14097         * TextBoxBase.cs: Re-align caret after deleting a character
14098         * TextControl.cs:
14099           - DeleteChars(): Ensure that tag covers the provided position
14100           - StreamLine(): Drop reference for dropped tag
14101
14102 2005-06-29  Peter Bartok  <pbartok@novell.com> 
14103
14104         * TextControl.cs: 
14105           - Selections now work properly, anchoring at the initial location
14106             and properly extending in either direction (SetSelectionToCaret(),
14107             SetSelectionStart() and SetSelectionEnd())
14108           - No longer redraws the whole control on selection change, now
14109             calculates delta between previous and new selection and only
14110             invalidates/redraws that area
14111           - Fixed FindPos() math off-by-one errors
14112           - Changed DeleteChars() to verify the provided tag covers the
14113             provided position, selections may have a tag that doesn't cover
14114             the position if the selection is at a tag border
14115           - Fixed off-by-one errors in DeleteChars()
14116           - Added missing streamlining check in DeleteChars() to remove
14117             zero-length tags
14118           - Implemented Invalidate() method, now properly calculates exposures
14119             between two given lines/positions
14120           - Implemented SetSelection()
14121           - Obsoleted and removed FixupSelection()
14122           - Improved RecalculateDocument() logic, removing code duplication
14123
14124 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14125
14126         * LibSupport.cs: changes to match different input/output arguments.
14127
14128 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14129
14130         * LibSupport.cs: added libsupport.so init routine.
14131
14132 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
14133         
14134         * ControlBindingsCollection.cs
14135                 - Throws an exception on null datasource when adding
14136                 - Checks for duplicated bindings when adding
14137
14138 2005-06-28  Jackson Harper  <jackson@ximian.com>
14139
14140         * TreeView.cs (OnKeyDown): Support left and right properly
14141         (navigates as well as expanding and collapsing.
14142         - Add support for Multiply, this expands all the selected nodes
14143         children.
14144         - Fix some tabbing.
14145
14146 2005-06-28  Jackson Harper  <jackson@ximian.com>
14147
14148         * TreeView.cs: Implement keyboard navigation, currently supports,
14149         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
14150         support for toggling checkboxes with the space bar.
14151
14152 2005-06-28  Jackson Harper  <jackson@ximian.com>
14153
14154         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
14155         tree.
14156
14157 2005-06-28  Jackson Harper  <jackson@ximian.com>
14158
14159         * TreeView.cs: Add missing event.
14160
14161 2005-06-27  Peter Bartok  <pbartok@novell.com> 
14162
14163         * TextControl.cs:
14164           - Made line ending size configurable (now allows for counting 
14165             lineendings as \n or \r\n)
14166           - Added margin to viewport to keep caret visible on right side
14167           - Fixed translation routines for line/pos to documentpos to consider
14168             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
14169           - Fixed some line-endings to be unix style
14170           - Fixed Document.FormatText to perform it's calculations 1-based
14171           - Added descriptions for a few methods that might otherwise get 
14172             used wrong
14173           - Added NOTE section with some basic conventions to remember at 
14174             the top of the file
14175           - Major fixup for RichTextBox selection drawing:
14176             * Fixed crashes when multiple tags on a single line were selected
14177             * fixed selection box drawing not overlaying text
14178             * fixed bogus offset calculation for tags not starting at index 1
14179             * Switched behaviour from using multiple Substrings of a 
14180               StringBuilder.ToString() to using multiple 
14181               StringBuilder.ToString(start, length) statements, hoping this is
14182               faster (kept original version commented out in the code, in case
14183               original version was faster)
14184         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
14185           alignment != Left
14186         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
14187           call it as well
14188
14189 2005-06-27  Jackson Harper  <jackson@ximian.com>
14190
14191         * TabControl.cs: Move to the left and right with the arrow
14192         keys. These keys don't cycle beyond first and last like
14193         tab. Refresh all the tabs when scrolling them to the left or
14194         right.
14195
14196 2005-06-27  Jackson Harper  <jackson@ximian.com>
14197
14198         * TabControl.cs:
14199           - ToString: Added method
14200           - CreateParams: Remove TODO and comment
14201           - OnKeyDown: Cycle through bounds properly.
14202           - SelectedIndex: Scroll to the right or left if we need to
14203           display the newly selected tab.
14204
14205 2005-06-23  Jackson Harper  <jackson@ximian.com>
14206
14207         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
14208         set.
14209
14210 2005-06-23  Jackson Harper  <jackson@ximian.com>
14211
14212         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
14213         CTRL-SHIFT-TAB, and HOME, END are there any others?
14214
14215 2005-06-23  Jackson Harper  <jackson@ximian.com>
14216
14217         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
14218
14219 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
14220         
14221         * DataGridTextBoxColumn.cs: fixes and enhancements
14222         * ThemeWin32Classic.cs: fixes and enhancements
14223         * DataGridBoolColumn.cs:  fixes and enhancements
14224         * DataGridDrawingLogic.cs:  fixes and enhancements
14225         * CurrencyManager.cs: fixes and enhancements
14226         * DataGrid.cs: fixes and enhancements
14227         * DataGridColumnStyle.cs:  fixes and enhancements
14228
14229 2005-06-22  Jackson Harper  <jackson@ximian.com>
14230
14231         * TabControl.cs: Add some missing methods that just call into the
14232         base. Make the TabPageCollection's IList interface behave in the
14233         same manner as the MS implementation.
14234
14235 2005-06-22  Peter Bartok  <pbartok@novell.com> 
14236
14237         * TextControl.cs: Added sanity check
14238         * TextBoxBase.cs: 
14239           - Fixed wrapping behaviour, don't set wrap on single line controls
14240             (this fixes the breakage of colordialog introduced in an earlier
14241              checkin)
14242           - Added rudimentary support for autoscrolling right-aligned controls
14243             (still needs fixing, also, center alignment scroll is missing)
14244
14245 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
14246         
14247         * ScrollBar.cs: Fixes thumbpos on Maximum values
14248
14249 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
14250         
14251         * PropertyGridView.cs: Pass context information to UITypeEditors 
14252
14253 2005-06-21  Peter Bartok  <pbartok@novell.com> 
14254
14255         * TextBoxBase.cs:
14256           - Now calling PositionCaret with absolute space coordinates
14257           - Enabled vertical scrolling
14258           - Better tracking of scrollbar changes, tied into WidthChange
14259             event
14260           - Improved cursor tracking
14261           - Removed debug output
14262         * TextControl.cs:
14263           - PositionCaret coordinates are now works in absolute space, not 
14264             the canvas
14265           - Improved tracking of document size
14266           - Added events for width and height changes
14267
14268 2005-06-21  Peter Bartok  <pbartok@novell.com>
14269
14270         * Form.cs: Set focus to active control when form is activated
14271         * TextControl.cs: 
14272           - Added word-wrap functionality to RecalculateLine() 
14273           - Added some short function descriptions for VS.Net to aid in
14274             writing dependent controls
14275           - Added Caret property, returning the current coords of the caret
14276           - Added ViewPortWidth and ViewPortHeight properties
14277           - Added Wrap property
14278           - Added CaretMoved event
14279           - Removed some old debug code
14280           - Split() can now create soft splits
14281           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
14282           - Added method to format existing text
14283           - Fixed size/alignment calculations to use viewport
14284           - RecalculateDocument now can handle changing line-numbers while
14285             calculating lines
14286
14287         * TextBox.cs:
14288           - Added some wrap logic, we don't wrap if alignment is not left
14289           - Added casts for scrollbar var, base class switched types to
14290             also support RichTextBoxA
14291           - Implemented handling of scrollbar visibility flags
14292
14293         * TextBoxBase.cs:
14294           - Switched scrollbars type to RichTextBoxScrollBars to support
14295             RichTextBox
14296           - Added tracking of canvas width/height
14297           - Switched scrollbars to be not selectable (to keep focus on text)
14298           - Added central CalculateDocument() method to handle all redraw
14299             requirements
14300           - Added ReadOnly support
14301           - Added WordWrap support
14302           - Fixed handling of Enter key (we now treat it as a DialogKey)
14303           - Fixed caret positioning when h or v scroll is not zero
14304           - Fixed placing/generation of vertical scrollbar
14305           - Added CalculateScrollBars() method to allow updating scrollbar
14306             limits and visibility
14307           - Fixed handling of horizontal scroll
14308           - Added handling of vertical scroll
14309           - Implemented auto-'jump' when caret moves to close to a left or
14310             right border and there is text to be scrolled into view (currently
14311             there's the potential for a stack overflow, until a bug in
14312             scrollbar is fixed)
14313
14314 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
14315         
14316         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
14317
14318 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
14319
14320         * Mime.cs:
14321         - added inodes.
14322         - return application/x-zerosize for files with size zero
14323           (if no extension pattern matches).
14324         - check matches collection for strings too.
14325         - return only the first mime type if the name value
14326           collection has more than one mime type.
14327
14328 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
14329         
14330         * PropertyGrid.cs: Cleaned up some TODOs
14331         * PropertyGridView.cs: Added support for UITypeEditors
14332
14333 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14334         
14335         * DataGrid.cs: clears cached value
14336
14337 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14338
14339         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
14340         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
14341         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
14342         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
14343         
14344 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
14345
14346         * ThemeWin32Classic.cs: fixes colour
14347
14348 2005-06-15  Peter Bartok  <pbartok@novell.com>
14349
14350         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
14351         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
14352         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
14353         * Control.cs: Added some MWFCategory and MWFDescription attributes
14354         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
14355
14356 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
14357
14358         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
14359         usage
14360
14361 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
14362
14363         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
14364         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
14365         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
14366         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
14367         * DataGrid.cs: default datagrid settings for Default Styles, fixes
14368         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
14369
14370 2005-06-13  Jackson Harper  <jackson@ximian.com>
14371
14372         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
14373         isn't printed when the user enables dropping. (X11 does accept
14374         drops).
14375         
14376 2005-06-13  Jackson Harper  <jackson@ximian.com>
14377
14378         * TreeView.cs: Remove some TODOS.
14379
14380 2005-06-13  Jackson Harper  <jackson@ximian.com>
14381
14382         * Form.cs: Hook into the mdi framework.
14383         * MdiClient.cs: Use the base control collections add method so
14384         parents get setup correctly. Set the default back colour and dock
14385         style.
14386         * MdiChildContext.cs: New class, this bad actor handles an
14387         instance of an MDI window. Right now there is only basic
14388         support. You can drag, close, and resize windows. Minimize and
14389         Maximize are partially implemented.
14390
14391 2005-06-13  Jackson Harper  <jackson@ximian.com>
14392
14393         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
14394         freaky when both vals are negative. NOTE: There are probably other
14395         places in XplatUIX11 that this needs to be done.
14396
14397 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
14398
14399         * DataGrid.cs: implement missing methods, move KeyboardNavigation
14400         * DataGridColumnStyle.cs: fixes signature
14401
14402 2005-06-12  Jackson Harper  <jackson@ximian.com>
14403
14404         * XplatUIX11.cs: Use sizing cursors similar to the ones on
14405         windows.
14406
14407 2005-06-11  Jackson Harper  <jackson@ximian.com>
14408
14409         * StatusBarPanel.cs: Signature cleanups. Implement
14410         BeginInit/EndInit.
14411
14412 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
14413
14414         * DataGridTextBoxColumn.cs: Honors aligment
14415         * GridColumnStylesCollection.cs: Contains is case unsensitive
14416         * GridTableStylesCollection.cs: several fixes
14417         * DataGridTableStyle.cs: default column creation
14418         * DataGridDrawingLogic.cs: fixes
14419         * CurrencyManager.cs: ListName property
14420         * DataGrid.cs: multiple styles support
14421         * DataGridColumnStyle.cs: fixes
14422         
14423
14424 2005-06-10  Peter Bartok  <pbartok@novell.com>
14425
14426         * Control.cs(Select): Moved SetFocus call to avoid potential
14427           loops if controls change the active control when getting focus
14428         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
14429           the up/down buttons
14430
14431 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
14432
14433         * ImageListConverter.cs: Implemented
14434
14435 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14436
14437         * MonthCalendar.cs: Wired in NumericUpDown control for year
14438
14439 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14440
14441         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
14442           DoubleClick events, since they are not meant to be fired.
14443
14444 2005-06-09  Peter Bartok  <pbartok@novell.com>
14445
14446         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
14447           Jonathan's standalone controls into MWF, implemented missing
14448           events, attributes and methods; added xxxAccessible classes
14449         * AccessibleObject.cs: Made fields internal so other classes
14450           can change them if needed
14451
14452 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
14453
14454         * UpDownBase.cs: Complete implementation
14455         * NumericUpDown.cs: Complete implementation
14456         * DomainUpDown.cs: Complete implementation
14457
14458 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
14459
14460         * DataGridTextBoxColumn.cs: drawing fixes
14461         * DataGridCell.cs: fixes ToString method to match MSNet
14462         * DataGridTableStyle.cs: fixes
14463         * DataGridBoolColumn.cs: fixes, drawing
14464         * DataGridDrawingLogic.cs: fixes, new methods
14465         * DataGridTextBox.cs: Keyboard and fixes
14466         * DataGrid.cs:
14467                 - Keyboard navigation
14468                 - Scrolling fixes
14469                 - Row selection (single, multiple, deletion, etc)
14470                 - Lots of fixes
14471         
14472 2005-06-07  Jackson Harper  <jackson@ximian.com>
14473
14474         * ThemeWin32Classic.cs: Clear the background area when drawing
14475         buttons.
14476
14477 2005-06-06  Peter Bartok  <pbartok@novell.com>
14478
14479         * ImageListStreamer.cs: Fixed signature for GetData
14480         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
14481         * ComboBox.cs:
14482           - Added missing ChildAccessibleObject class
14483           - Added missing OnXXXFocus overrides, switched to using those
14484             instead of the event handler
14485         * Control.cs:
14486           - Added Parent property for ControlAccessibleObject
14487           - Fixed signatures
14488           - Fixed attributes
14489           - Added ResetBindings()
14490         * ListBindingConverter.cs: Implemented some methods
14491         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
14492         * ImageList.cs: Implemented basic handle scheme, removed TODOs
14493         * ContainerControl.cs: Fixed signature, now subscribing to the
14494           ControlRemoved event instead of overriding the handler, LAMESPEC
14495         * CurrencyManager.cs: Added missing attribute
14496         * MonthCalendar.cs: Added missing properties
14497
14498 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14499
14500         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
14501         
14502 2005-06-06  Gaurav Vaish and Ankit Jain
14503
14504         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
14505         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
14506         
14507 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14508
14509         * Control.cs: fixes CreateParams Width / Height.
14510
14511 2005-06-05  Peter Bartok  <pbartok@novell.com>
14512
14513         * Win32DnD.cs: Removed compilation warnings
14514
14515 2005-06-05  Peter Bartok  <pbartok@novell.com>
14516
14517         * Control.cs (CreateParams): Since we don't know if one of the
14518           properties we use is overridden, lets make sure if we fail accessing
14519           we continue with a backup plan
14520
14521 2005-06-05  Peter Bartok  <pbartok@novell.com>
14522
14523         * Win32DnD.cs:
14524           - Removed debug output
14525           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
14526             struct
14527           - Plugged resource leak
14528         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
14529           MS size
14530
14531 2005-06-05  Peter Bartok  <pbartok@novell.com>
14532
14533         * XplatUIWin32.cs: Removed DnD code
14534         * Win32DnD.cs: Implemented drop source and drop target functionality
14535
14536 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14537
14538         * UpDownBase.cs: remove duplicate addition of event, enable some code
14539         that was commented out.
14540         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
14541         Validate input when a key is pressed. It works fine now for every
14542         combination of Hexadecimal. Only missing some drawing love when sharing
14543         space with other controls.
14544
14545 2005-06-04  Peter Bartok  <pbartok@novell.com>
14546
14547         * Control.cs:
14548           - We need to pass a window for DragDrop, so enable callback events
14549           - Added DnD callback events when being a DragSource
14550         * XplatUI.cs (StartDrag): Added window handle argument
14551         * XplatUIDriver.cs (StartDrag): Added window handle argument
14552         * QueryContinueDragEventArgs: Made fields internally accessible so
14553           drivers can set them
14554         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
14555           can set them
14556
14557 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
14558
14559         * DataGridTextBoxColumn.cs: column text editing
14560         * DataGridTableStyle.cs: Respect columns styles created by the user
14561         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
14562         * DataGridBoolColumn.cs: bool column editing
14563         * DataGrid.cs: fixes to scrolling, properties, etc
14564         * DataGridTextBox.cs: handle keyboard
14565         * DataGridColumnStyle.cs: fixes
14566
14567 2005-06-02  Jackson Harper  <jackson@ximian.com>
14568
14569         * ImageListStreamer.cs: Somewhat broken implementation of
14570         GetObjectData. The RLE needs some work to match MS properly.
14571
14572 2005-06-02  Jackson Harper  <jackson@ximian.com>
14573
14574         * X11Dnd.cs: Attempting to keep at least one file in MWF
14575         monostyled.
14576
14577 2005-06-02  Peter Bartok  <pbartok@novell.com>
14578
14579         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
14580           that way
14581
14582 2005-06-02  Peter Bartok  <pbartok@novell.com>
14583
14584         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
14585         * XplatUI.cs: Added DoDragDrop() method
14586         * XplatUIDriver.cs: Added DoDragDrop() method
14587
14588 2005-06-02  Jackson Harper  <jackson@ximian.com>
14589
14590         * Splitter.cs: Implement BorderStyle.
14591
14592 2005-06-02  Jackson Harper  <jackson@ximian.com>
14593
14594         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
14595         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
14596         X11 using XDND.
14597
14598 2005-06-02  Peter Bartok  <pbartok@novell.com>
14599
14600         * DataObject.cs:
14601           - Added Data setter
14602           - Fixed broken insertion code for SetData, now also
14603             overwrites any existing entry of the same format name
14604         * Hwnd.cs: Added list of pointers that automatically gets
14605           freed when the window is disposed
14606         * XplatUI.cs: Call driver initialization method when loading
14607           a driver
14608         * Control.cs:
14609           - OnDragLeave takes EventArgs, not DragEventArgs
14610           - Added setting of WS_EX_ACCEPTFILES style when dropping is
14611             supported
14612           - Forces style update when drop state changes
14613         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
14614           not perfect since we cannot (yet) call the IDataObject.GetData()
14615           method, we keep getting 0x80004005 error, dunno why)
14616
14617 2005-06-02  Peter Bartok  <pbartok@novell.com>
14618
14619         * DragEventArgs.cs: Make fields internal so we can cache the
14620           object and re-set the fields from XplatUI
14621
14622 2005-06-02  Jackson Harper  <jackson@ximian.com>
14623
14624         * Control.cs: Add some internal methods so the DnD subsystem can
14625         raise DnD events. Also call into the driver when AllowDrop is set.
14626         * XplatUI.cs:
14627         * XplatUIDriver.cs: New method for setting whether or not a window
14628         is allowed to accept drag and drop messages.
14629                 
14630 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
14631         
14632         * ScrollBar.cs: Make sure that values sent in Scroll events
14633         are always between Maximum and Minimum.
14634
14635 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
14636
14637         * Menu.cs: Call MenuChanged when menuitem visibility has been
14638         changed.
14639         * MenuItem.cs: Rebuild menu when item is (not) visible.
14640         * MainMenu.cs: MainMenu has special MenuChanged.
14641         * Theme.cs: Caption and FrameBorderSize are not fixed.
14642         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
14643         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
14644         * XplatUIX11.cs,
14645         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
14646         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
14647
14648 2005-05-30  Jackson Harper  <jackson@ximian.com>
14649
14650         * DataFormat.cs: We can't statically initialize this stuff because
14651         it calls into the xplatui and could create a loop. So we lazy init
14652         it.
14653
14654 2005-05-28  Jackson Harper  <jackson@ximian.com>
14655
14656         * Control.cs: Proper implementation of Product(Name/Version).
14657
14658 2005-05-27  Jackson Harper  <jackson@ximian.com>
14659
14660         * DataObject.cs: Dont crash if no data is found.
14661
14662 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
14663         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
14664                 as per status page, guessing it should be set to true
14665
14666 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
14667
14668         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
14669         * DataGridTableStyle.cs: set proper formatting text, def header text
14670         * ThemeWin32Classic.cs: new themable paramaters
14671         * DataGridBoolColumn.cs: paint check box, get data, fixes
14672         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
14673         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
14674         * DataGridColumnStyle.cs: fixes
14675         * Theme.cs: new themable paramaters
14676                 
14677 2005-05-26  Peter Bartok  <pbartok@novell.com>
14678
14679         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
14680
14681 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14682         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
14683
14684 2005-05-24  Peter Bartok  <pbartok@novell.com>
14685
14686         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
14687           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
14688           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
14689           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
14690           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
14691           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
14692           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
14693           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
14694           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
14695           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
14696           missing attributes, etc
14697         * DataGridPreferredColumnWidthTypeConverter.cs: Added
14698
14699 2005-05-24  Peter Bartok  <pbartok@novell.com>
14700
14701         * Help.cs: Added, implemented trivial functions, throws up MessageBox
14702           when user tries to get help
14703         * DataObject.cs, DataFormats.cs, LinkArea.cs,
14704           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
14705           to suppress warnings
14706         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
14707           avoid unreachable code warning
14708
14709 2005-05-20  Peter Bartok  <pbartok@novell.com>
14710
14711         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
14712
14713 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14714
14715         * DataGridTextBoxColumn.cs: Basic painting methods
14716         * DataGridTableStyle.cs: Set table style in the column
14717         * ThemeWin32Classic.cs: Use Theme for colors
14718         * DataGridDrawingLogic.cs: Implement more drawing
14719         * DataGrid.cs: drawing, theming, enhacements, fixes
14720         * DataGridColumnStyle.cs: fixes, drawing
14721         * Theme.cs: theming for Datagrid
14722
14723 2005-05-20  Peter Bartok  <pbartok@novell.com>
14724
14725         * Cursor.cs: Implemented GetObjectData() method
14726
14727 2005-05-20  Peter Bartok  <pbartok@novell.com>
14728
14729         * Cursors.cs: Added setting of cursor name
14730         * Cursor.cs:
14731           - Implemented constructors
14732           - Implemented Draw and DrawStretched
14733           - Implemented Current property
14734           - Implemented == and != operators
14735           - Implemented Dispose()
14736           - Implemented ToString
14737           - Added missing attributes
14738         * XplatUIX11.cs:
14739           - Added missing reset for OverrideCursor when DoEvents is called
14740           - Fixed creation of cursor, logic was wrong
14741         * XplatUIWin32.cs:
14742           - Added missing reset for OverrideCursor when DoEvents is called
14743           - Fixed creation of cursor, bit arrays were swapped
14744         * Clipboard.cs: Removed obsolete MonoTODO attribute
14745
14746 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14747
14748         * ComboBox.cs: fixes OnSelectedItemChanged
14749         * ControlBindingsCollection.cs: fixes item range check
14750
14751 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14752
14753         * UpDownBase.cs:
14754                 - Calc preferred height properly
14755                 - Implement missing properties
14756                 
14757         * NumericUpDown.cs: Implement missing events
14758
14759 2005-05-19  Jackson Harper  <jackson@ximian.com>
14760
14761         * TabControl.cs: New method that resizes the tab pages before
14762         redrawing them. This as needed as the control is double buffered
14763         and sizing will not be recalculated unless ResizeTabPages is
14764         called.
14765         * TabPage.cs: Set base.Text instead of Text in the constructor so
14766         that UpdateOwner does not get called. Use the new Redraw method of
14767         TabControl instead of Refresh so the sizing is recalculated.
14768         * ThemeWin32Classic.cs: Draw the text for button tabs.
14769
14770 2005-05-19  Jackson Harper  <jackson@ximian.com>
14771
14772         * Control.cs: Paint control background images. Fix typo where
14773         PaintControlBackground was not getting called correctly.
14774
14775 2005-05-19  Peter Bartok  <pbartok@novell.com>
14776
14777         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
14778           I can investigate, apparently I broke FileDialog
14779
14780 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
14781
14782         * AxHost.cs: Some simple properties.
14783         * Control.cs: window must be accessible after ctor.
14784         * Form.cs: Added TransparencyKey property.
14785         * TextBoxBase.cs: Implemented Clear. Text property can be null.
14786         * XplatUIWin32.cs: SetBorderStyle implemented.
14787
14788 2005-05-18  Peter Bartok  <pbartok@novell.com>
14789
14790         * DataObject.cs: Entries are not global but particular to the
14791           DataObject, now it behaves that way
14792         * XplatUIWin32.cs: Implemented Clipboard methods
14793         * Clipboard.cs: Implemented
14794         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
14795         * XplatUIOSX.cs: Updated to final clipboard prototypes
14796         * XplatUIX11.cs: Implemented Clipboard methods
14797         * XplatUIDriver.cs: Updated to final clipboard prototypes
14798         * XplatUIStructs.cs:
14799           - Added BITMAPINFOHEADER struct
14800           - Added ClipboardFormats enum
14801         * X11Structs.cs:
14802           - Added ClipboardStruct
14803           - Added Atom enum items for clipboard types
14804           - Fixed atom types for Selection event structures
14805         * DataFormats.cs:
14806           - Added internal properties and methods for drivers to enumerate
14807             all known formats
14808           - Switched initialization method to allow drivers to assign their
14809             own IDs even for the MS predefined clipboard IDs
14810         * XplatUI.cs: Updated to final clipboard interface
14811
14812 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14813         * PropertyGridView.cs: Fixed compiler warnings.
14814
14815 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14816         * PropertyGrid.cs: Added some event calls
14817         * PropertyGridView.cs: Change drawing code to use double buffering
14818         * PropertyGridTextBox.cs: Changed Text property name
14819         * GridItem.cs: Added Bounds property.
14820         * GridEntry.cs: Added Bounds property.
14821
14822 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
14823
14824         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
14825         since GetType() may not return the correct type if the object is
14826         a remoting proxy.
14827
14828 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
14829
14830         * TreeNodeCollection.cs: fixes get/set item ranges
14831         
14832 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14833
14834         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
14835                 
14836 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14837
14838         * ComboBox.cs: Fix item range comparation
14839         * ListView.cs: Fix item range comparation
14840
14841 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14842
14843         * FontDialog.cs:
14844           - Clear example panel when OnPaint is called
14845           - Better solution for displaying the example panel text
14846           - Select default indexes in the ListBoxes
14847
14848 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14849
14850         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
14851
14852 2005-05-11  Peter Bartok  <pbartok@novell.com>
14853
14854         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
14855         * SelectionRangeConverter.cs: Implemented
14856         * PropertyGrid.cs: Fixed attribute value
14857         * Control.cs:
14858           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
14859           - Added Sebastien Pouliot's CAS Stack Propagation fixes
14860         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
14861           that's common to all drivers. First methods to go there are
14862           Sebastien Pouliot's CAS Stack Propagation helper methods
14863         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
14864           Sebastien Pouliot for CAS Stack Propagation
14865
14866 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14867
14868         * OSXStructs.cs:
14869           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
14870
14871 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
14872
14873         * DataGridTextBoxColumn.cs: fixed some members
14874         * GridColumnStylesCollection.cs: indexed column is case insensitive
14875         * DataGridTableStyle.cs: fixes
14876         * ThemeWin32Classic.cs: add new theme parameter
14877         * Theme.cs: add new theme parameter
14878         * DataGridDrawingLogic.cs: Datagrid's drawing logic
14879         * DataGrid.cs: fixes, new internal properties, etc.
14880         * DataGridColumnStyle.cs: allows to set grid value
14881         *
14882
14883 2005-05-10  Peter Bartok  <pbartok@novell.com>
14884
14885         * AccessibleObject.cs:
14886           - Removed MonoTODO attribute on help, method is correct
14887           - Fixed Bounds property
14888         * AxHost.cs: Moved MonoTODO
14889         * ButtonBase.cs: Now setting AccessibleObject properties
14890         * RadioButton.cs: Setting proper AccessibleObject role
14891         * CheckBox.cs: Setting proper AccessibleObject role
14892         * ControlBindingsCollection.cs: Added properties, methods and attributes
14893         * DataFormats.cs: Fixed awkward internal API, and changed to enable
14894           userdefined DataFormats.Format items as well
14895         * ListControl.cs: Removed data_member from the public eye
14896         * OpenFileDialog.cs:
14897           - Made class sealed
14898           - Added missing attributes
14899         * SaveFileDialog.cs: Added missing attributes
14900         * ImageListStreamer.cs: Fixed code that caused warnings
14901         * LinkLabel.cs: Removed unreachable code
14902         * TreeView.cs: Fixed code that caused warnings
14903         * PropertyGridView.cs: Fixed code that caused warnings
14904         * GridColumnStylesCollection.cs: Added missing attributes
14905         * GridTableStylesCollection: Added missing attribute
14906         * PropertyManager: Added .ctor
14907         * SecurityIDType: Added
14908         * DataObject.cs: Implemented class
14909         * LinkArea.cs: Added missing attribute
14910
14911 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
14912
14913         * RadioButton.cs: call base method to allow to fire OnClick event
14914         * UpDownBase.cs: OnMouseUp call base method
14915         * CheckedListBox.cs: call base method before returning
14916         * TrackBar.cs: call base method before returning
14917         
14918
14919 2005-05-10  Peter Bartok  <pbartok@novell.com>
14920
14921         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
14922           for messages
14923
14924 2005-05-10  Peter Bartok  <pbartok@novell.com>
14925
14926         * DataFormats.cs: Implemented
14927         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
14928           XplatUIX11.cs: Added Clipboard APIs
14929         * XplatUIWin32.cs: Implemented Clipboard APIs
14930         * FolderBrowserDialog.cs: Added missing event, attributes
14931
14932 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
14933
14934         * CheckBox.cs: call base method to allow to fire OnClick event
14935
14936 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
14937
14938         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
14939
14940 2005-05-06  Peter Bartok  <pbartok@novell.com>
14941
14942         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
14943         * Screen.cs: Implemented
14944         * HelpNavigator.cs: Added
14945         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
14946           property
14947         * HelpProvider.cs: Implemented all we can do until we have a CHM
14948           help library (which means that "What's This" does work now)
14949
14950 2005-05-06  Jackson Harper  <jackson@ximian.com>
14951
14952         * XplatUIX11.cs: Fix waking up the main loop.
14953                 
14954 2005-05-05  Peter Bartok  <pbartok@novell.com>
14955
14956         * XplatUI.cs: Updated revision
14957         * Form.cs: Removed enless loop
14958         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
14959         * Label.cs (OnPaint): Added call to base.OnPaint()
14960         * ToolTip.cs: Made ToolTipWindow reusable for other controls
14961         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
14962         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
14963         * AxHost.cs: Added
14964         * ButtonBase.cs: Moved base.OnPaint() call to end of method
14965         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
14966           to ToolTip.ToolTipWindow for drawing and size methods; this allows
14967           reuse of ToolTipWindow by other controls
14968         * SizeGrip.cs: Moved base.OnPaint() call to end of method
14969         * XplatUIX11.cs: Now clipping drawing area (experimental)
14970         * PictureBox.cs: Moved base.OnPaint() call to end of method
14971         * Theme.cs: Fixed ToolTip abstracts to match new format
14972         * ErrorProvider.cs: Implemented
14973
14974 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
14975
14976         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
14977         * LinkLabel.cs:
14978                 - Adds cursors
14979                 - Handles focus
14980                 - Implements LinkBehavior
14981                 - Fixes many issues
14982
14983 2005-05-03  Jackson Harper  <jackson@ximian.com>
14984
14985         * ListView.cs: Calculate the scrollbar positioning on resize and
14986         paint, so they get put in the correct place.
14987
14988 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14989
14990         * ColorDialogs.cs: The small color panels are now handled by
14991           SmallColorControl. This fixes drawing of the focus rectangle
14992           and adds a 3D border.
14993
14994 2005-05-03  Peter Bartok  <pbartok@novell.com>
14995
14996         * Control.cs: Modified version of Jonathan Chamber's fix for
14997           double-buffering
14998
14999 2005-05-03  Jackson Harper  <jackson@ximian.com>
15000
15001         * ListView.cs: Remove redraw variable. Control now handles whether
15002         or not a redraw needs to be done, and will only raise the paint
15003         event if redrawing is needed.
15004
15005 2005-05-03  Jackson Harper  <jackson@ximian.com>
15006
15007         * Splitter.cs: No decorations for the splitter form. Cache the
15008         hatch brush.
15009
15010 2005-05-03  Jackson Harper  <jackson@ximian.com>
15011
15012         * TreeView.cs: Use dashed lines to connect nodes. Use the
15013         ControlPaint method for drawing the focus rect instead of doing
15014         that in treeview.
15015
15016 2005-05-02  Peter Bartok  <pbartok@novell.com>
15017
15018         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
15019
15020 2005-04-29  Jackson Harper  <jackson@ximian.com>
15021
15022         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
15023         entire image buffer. Just clear the clipping rectangle.
15024
15025 2005-04-29  Jackson Harper  <jackson@ximian.com>
15026
15027         * ThemeWin32Classic.cs: Don't draw list view items that are
15028         outside the clipping rectangle.
15029
15030 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
15031
15032         * ListBox.cs: added horizontal item scroll
15033
15034 2005-04-29  Jackson Harper  <jackson@ximian.com>
15035
15036         * ThemeWin32Classic.cs: Remove some old debug code that was
15037         causing flicker with the new double buffering code.
15038
15039 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
15040
15041         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
15042         behave like combobox and comboboxlist (still not sure if this is
15043         correct though).
15044
15045 2005-04-28  Jackson Harper  <jackson@ximian.com>
15046
15047         * ThemeWin32Classic.cs: Don't fill the middle of progress
15048         bars. This fills areas outside of the clip bounds that don't need
15049         to be filled.
15050
15051 2005-04-28  Jackson Harper  <jackson@ximian.com>
15052
15053         * Control.cs: Don't expose functionality to touch the image buffers.
15054         * ProgressBar.cs:
15055         * ListView.cs: We do not need to (and no longer can) manipulate
15056         the image buffers directly. All of this is handled by Control.
15057
15058 2005-04-28  Peter Bartok  <pbartok@novell.com>
15059
15060         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15061           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
15062           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
15063
15064 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
15065
15066         * Combobox:
15067                 - Adjust control's height for non-simple comboboxes (bug fix)
15068                 - Remove dead code
15069         * MenuAPI.cs: remove unused var
15070         * ScrollBar.cs: remove unsed var
15071                  
15072         * ListBox.cs: unselect items when clearing
15073
15074 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
15075
15076         * ListControl.cs: honors OnPositionChanged and default Selected Item
15077         * ListBox.cs: unselect items when clearing
15078
15079 2005-04-27  Jackson Harper  <jackson@ximian.com>
15080
15081         * X11Keyboard.cs: Initialize a default keyboard and give a warning
15082         if a "correct" keyboard is not found. This will make us not crash,
15083         but might give some users bad keyboard layouts...seems to be the
15084         same thing rewind does.
15085
15086 2005-04-27  Jackson Harper  <jackson@ximian.com>
15087
15088         * BindingManagerBase.cs: Attach the current/position changed
15089         handlers to their respective events.
15090
15091 2005-04-27  Jackson Harper  <jackson@ximian.com>
15092
15093         * Control.cs: Make sure that the first WM_PAINT does a full draw,
15094         not just a blit.
15095         * ThemeWin32Classic.cs: Don't fill the background for picture
15096         boxes. This could overright user drawing.
15097         * ComboBox.cs: Just fill the clipping rect not the entire client
15098         rect when drawing the background. This prevents pieces of the
15099         image buffer from getting overwritten and is theoretically faster.
15100
15101 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
15102
15103         * ComboBox.cs: Databinding support fixes, fire missing events
15104         * ListControl.cs: implement missing methods and properties, fixes
15105         * ThemeWin32Classic.cs: Databiding support on Drawing
15106         * CheckedListBox.cs: Databinding support fixes, fire missing events
15107         * ListBox.cs: Databinding support fixes, fire missing events
15108         
15109 2005-04-25  Peter Bartok  <pbartok@novell.com>
15110
15111         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
15112
15113 2005-04-25  Jackson Harper  <jackson@ximian.com>
15114
15115         * TreeView.cs: Use the horizontal scrollbars height not width when
15116         determining how much of the client area is available.
15117
15118 2005-04-25  Jackson Harper  <jackson@ximian.com>
15119
15120         * Control.cs: Double buffering is handled differently now. As per
15121         the spec, the extra buffer is created in the WM_PAINT message and
15122         passed down to the control's drawing code.
15123         * GroupBox.cs:
15124         * Label.cs:
15125         * CheckBox.cs:
15126         * ProgressBar.cs:
15127         * RadioButton.cs:
15128         * ColorDialog.cs:
15129         * ComboBox.cs:
15130         * PropertyGridView.cs:
15131         * UpDownBase.cs:
15132         * MessageBox.cs:
15133         * MenuAPI.cs:
15134         * ListView.cs:
15135         * ButtonBase.cs:
15136         * SizeGrip.cs:
15137         * ScrollBar.cs:
15138         * ListBox.cs:
15139         * TrackBar.cs:
15140         * ToolBar.cs:
15141         * PictureBox.cs:
15142         * DateTimePicker.cs:
15143         * StatusBar.cs:
15144         * TreeView.cs: Update to new double buffering system.
15145         * MonthCalendar.cs: Uncomment block, as Capture is now
15146         working. Update to new double buffering
15147         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
15148         * PaintEventArgs.cs: New internal method allows us to set the
15149         graphics object. This is used for double buffering.
15150         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
15151         rectangle. The internal paint_area var has been removed from
15152         StatusBar. The clipping rect should be used instead.
15153         * Theme.cs: Give the PictureBox drawing method a clipping rect.
15154         * TabPage.cs: The RefreshTabs method was removed, so just call the
15155         tab controls Refresh method now.
15156         * TabControl.cs: Update to new double buffering. Make sure the
15157         handle is created before sizing the tab pages, otherwise we will
15158         get stuck in a loop.
15159
15160 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
15161
15162         * LinkLabel.cs: Fix typo, bug #74719; patch
15163           from Borja Sanchez Zamorano
15164
15165 2005-04-22  Jackson Harper  <jackson@ximian.com>
15166
15167         * TreeNode.cs: Implement Handle stuff.
15168         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
15169
15170 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
15171
15172         * DataGridTextBoxColumn.cs: call base constructors, fixes
15173         * GridColumnStylesCollection.cs: missing events, methods, and functionality
15174         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
15175         * DataGridTableStyle.cs: implements create default column styles
15176         * DataGridBoolColumn.cs: which types can handle
15177         * DataGrid.cs: missing methods, fixes, new functionality
15178         * DataGridColumnStyle.cs: fixes
15179
15180 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
15181         * FolderBrowserDialog.cs:
15182         - Use a thread to fill the TreeView
15183         - Adjusted some sizes
15184
15185 2005-04-19  Peter Bartok  <pbartok@novell.com>
15186
15187         * LinkLabel.cs: (Re-)create the pieces when setting the Text
15188           property. Fixes #74360.
15189
15190 2005-04-19  Jackson Harper  <jackson@ximian.com>
15191
15192         * XEventQueue.cs: Lock when getting the lockqueue size.
15193         * PictureBox.cs: Call base OnPaint
15194         
15195 2005-04-19  Peter Bartok  <pbartok@novell.com>
15196
15197         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
15198           messages were no longer being processed (this broke BeginInvoke)
15199
15200           
15201 2005-04-18  Jackson Harper  <jackson@ximian.com>
15202
15203         * TreeView.cs: buglet that caused node images to get drawn
15204         regardless of whether or not they were in the clipping rectangle.
15205
15206 2005-04-18  Jackson Harper  <jackson@ximian.com>
15207
15208         * CurrencyManager.cs: There are four rules for GetItemProperties:
15209         - If the type is an array use the element type of the array
15210         - If the type is a typed list, use the type
15211         - If the list contains an Item property that is not an object, use
15212         that property
15213         - use the first element of the list if there are any elements in
15214         the list.
15215         
15216 2005-04-17  Jackson Harper  <jackson@ximian.oom>
15217
15218         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
15219         click. This handles offsets for scrolling properly and reduces
15220         memory. Also fixed GetNode to not offset now that TopNode works
15221         properly.
15222         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
15223         
15224 2005-04-17  Jackson Harper  <jackson@ximian.com>
15225
15226         * CursorConverter.cs: Initial implementation.
15227
15228 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
15229
15230         * ListControl.cs: work towards complex data binding support on ListControl
15231         * CurrencyManager.cs: work towards complex data binding support on ListControl
15232         * ListBox.cs: work towards complex data binding support on ListControl
15233
15234
15235 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
15236
15237         * GridTableStylesCollection.cs: fixes name and constructor
15238         * DataGridTableStyle.cs: fixes
15239         * DataGridBoolColumn.cs: fixes names and constructors
15240         * DataGrid.cs: define methods and properties. Some init implementations
15241         * DataGridCell.cs: define methods and properties. Some init implementations
15242         * GridTablesFactory.cs: Define methods and properties
15243
15244 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
15245
15246         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
15247         graphics port changes.  We still want the coordinates in global screen
15248         coordinates.
15249
15250 2005-04-14  Jackson Harper  <jackson@ximian.com>
15251
15252         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
15253         check plus minus or checkbox clicks unless those features are enabled.
15254
15255 2005-04-14  Jackson Harper  <jackson@ximian.com>
15256
15257         * TreeView.cs: Add methods for setting the top and bottom visible
15258         nodes. TreeNode::EnsureVisible uses these methods.
15259         * TreeNode.cs: Implement EnsureVisible
15260
15261 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
15262
15263         * Form.cs: Pospone menu assignation if the window has not been created yet
15264         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
15265         size and position
15266
15267 2005-04-12  Jackson Harper  <jackson@ximian.com>
15268
15269         * TreeView.cs: Set the TopNode properly when scrolling
15270         occurs. This has the added benifit of reducing the amount of
15271         walking that needs to be done when drawing. Also removed an old
15272         misleading TODO.
15273         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
15274         
15275 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
15276
15277         * Timer.cs: fixes interval setting when the timer is already enabled
15278         
15279 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
15280
15281         * FolderBrowserDialog.cs: First approach
15282
15283 2005-04-09  Peter Bartok  <pbartok@novell.com>
15284
15285         * FolderBrowserDialog: Added
15286
15287 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
15288
15289         * LinkLabel.cs: move drawing code into the theme
15290         * ThemeWin32Classic.cs: drawing code and painting background bugfix
15291         * Theme.cs: define DrawLinkLabel method
15292
15293 2005-04-05  Jackson Harper  <jackson@ximian.com>
15294
15295         * BindingContext.cs: Use weak references so these bad actors don't
15296         stay alive longer then they need to.
15297
15298 2005-04-05  Jackson Harper  <jackson@ximian.com>
15299
15300         * ListControl.cs: Basic implementation of complex databinding.
15301         * ComboBox.cs:
15302         * ListBox.cs: Add calls to ListControl databinding methods.
15303
15304 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
15305
15306         * FileDialog.cs:
15307           - Don't change PopupButtonState to Normal when the
15308             PopupButton gets pressed several times.
15309           - Renamed ButtonPanel to PopupButtonPanel
15310
15311 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
15312
15313         * ColorDialog.cs: Use cached objects instead of creating them
15314         * LinkLabel.cs: Use cached objects instead of creating them
15315         * Splitter.cs: Use cached objects instead of creating them
15316         * FontDialog.cs: Use cached objects instead of creating them
15317         * PropertyGridView.cs: Use cached objects instead of creating them
15318         * MessageBox.cs: Use cached objects instead of creating them
15319         * FileDialog.cs: Use cached objects instead of creating them
15320         * ThemeWin32Classic.cs: Use cached objects instead of creating them
15321         * TreeView.cs: Use cached objects instead of creating them
15322         
15323 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
15324
15325         * Control.cs: use Equals to compare the font since no == op
15326         * ScrollBar.cs: use Equals to compare the font since no == op
15327
15328 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
15329
15330         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
15331
15332 2005-04-01  Jackson Harper  <jackson@ximian.com>
15333
15334         * Binding.cs: Implement IsBinding.
15335         * BindingManagerBase.cs:
15336         * PropertyManager.cs:
15337         * CurrencyManager.cs: Add IsSuspended property.
15338
15339 2005-04-01  Jackson Harper  <jackson@ximian.com>
15340
15341         * Binding.cs: Had some IsAssignableFrom calls backwards.
15342
15343 2005-04-01  Jackson Harper  <jackson@ximian.com>
15344
15345         * Binding.cs: Handle null data members when pulling data.
15346         * PropertyManager.cs: Handle the data member being a property that
15347         does not exist.
15348
15349 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15350
15351         * DataGridTextBoxColumn.cs: fixes signature
15352         * DataGrid.cs: calls right constructor
15353
15354 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15355
15356         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
15357         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
15358         * GridTableStylesCollection.cs: implements GridTableStylesCollection
15359         * DataGridTableStyle.cs: implements DataGridTableStyle
15360         * DataGridBoolColumn.cs: implements DataGridBoolColumn
15361         * DataGridTextBox.cs: implements DataGridTextBox
15362         * DataGridColumnStyle.cs: implements DataGridColumnStyle
15363
15364 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
15365
15366         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
15367
15368 2005-03-29  Peter Bartok  <pbartok@novell.com>
15369
15370         * Application.cs:
15371           - Properly implemented CompanyName property
15372           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
15373             returns a path that includes CompanyName, ProductName and
15374             Version (fixes bug #70330)
15375
15376 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
15377
15378         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
15379           fixes bug #72588.
15380
15381 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15382
15383         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
15384         
15385           - Added ReadOnly CheckBox
15386           - Further refactoring: moved some code from Open-/SaveFileDialog
15387             to FileDialog
15388
15389 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15390
15391         * OpenFileDialog.cs: Fixed CheckFileExists
15392         * FileDialog.cs:
15393           Moved FileView and DirComboBox outside FileDialog class.
15394           They can now be used outside FileDialog
15395
15396 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15397
15398         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
15399         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
15400
15401 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15402
15403         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15404           - Added missing CreatePrompt property in SaveDialog
15405           - Overall SaveDialog handling should be better now
15406           - Added non standard ShowHiddenFiles property
15407           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
15408           - Added InitialDirectory and RestoreDirectory support
15409
15410 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
15411
15412         * FileDialog.cs: Made dirComboBox usable
15413
15414 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
15415
15416         * FileDialog.cs: Added Filter support (case sensitiv)
15417
15418 2005-03-24  Jackson Harper  <jackson@ximian.com>
15419
15420         * TabControl.cs: Need a couple more pixels for the lines.
15421
15422 2005-03-23  Jackson Harper  <jackson@ximian.com>
15423
15424         * TabControl.cs: Give the tab page focus when it is selected.
15425
15426 2005-03-23  Jackson Harper  <jackson@ximian.com>
15427
15428         * TabControl.cs: Account for the drawing of tabs borders when
15429         invalidating. If the slider was clicked dont do click detection on
15430         the tabs.
15431
15432 2005-03-23  Jackson Harper  <jackson@ximian.com>
15433
15434         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
15435
15436 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
15437
15438         * CategoryGridEntry.cs: Added
15439         * GridItem.cs: Added helper properties
15440         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
15441         * GridEntry.cs: Updated code for collection
15442         * PropertyGrid.cs: Cleaned up some formatting
15443         * PropertyGridView.cs: Added drop down functionality for enums.
15444         * GridItemCollection.cs: Added enumerator logic
15445         * PropertyGridEntry.cs: Added
15446
15447 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15448
15449         * FileDialog.cs:
15450           - Removed unnecessary commented code
15451           - Fixed handling for entering the filename manually in the combobox
15452
15453 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15454
15455         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
15456
15457 2005-03-18  Peter Bartok  <pbartok@novell.com>
15458
15459         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
15460           them being touching the border
15461
15462 2005-03-18  Peter Bartok  <pbartok@novell.com>
15463
15464         * TextControl.cs: Quick hack to center text better
15465
15466 2005-03-18  Peter Bartok  <pbartok@novell.com>
15467
15468         * ControlPaint.cs:
15469           - Don't throw NotImplemented exceptions, just print a notice once
15470             instead (requested by Miguel). This makes running existing SWF
15471             apps a bit easier
15472         * Control.cs:
15473           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
15474           - Added context menu trigger on right click
15475         * Panel.cs: Trigger invalidate on resize
15476         * StatusBar.cs:
15477           - Removed old double-buffer drawing
15478           - Added ResizeRedraw style to force proper update of statusbar
15479         * ListView.cs:
15480           - Removed debug output
15481         * ThemeWin32Classic.cs:
15482           - Fixed drawing of status bar, now draws Text property if there
15483             are no defined panels
15484
15485 2005-03-18  Jackson Harper  <jackson@ximian.com>
15486
15487         * ImageList.cs: When the image stream is set pull all the images
15488         from it.
15489         * ImageListStreamer.cs: Implement reading image list streams.
15490
15491 2005-03-18  Peter Bartok  <pbartok@novell.com>
15492
15493         * ThemeWin32Classic.cs (DrawPictureBox):
15494           - Fixed calculations for centered drawing
15495           - Fixed drawing for normal mode, not scaling the image on normal
15496
15497 2005-03-18  Peter Bartok  <pbartok@novell.com>
15498
15499         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
15500           textbox
15501         * FileDialog.cs:
15502           - Made Open/Save button the accept button for FileDialog
15503           - Tied the cancel button to the IButtonControl cancel button
15504           - Save/Open now properly builds the pathname
15505           - Now handles user-entered text
15506           - Preventing crash on right-click if no item is selected
15507           - Fixed Text property, now uses contents of textbox
15508           - Fixed SelectedText property, now just returns the text part that
15509             is selected in the text box
15510
15511 2005-03-18  Jackson Harper  <jackson@ximian.com>
15512
15513         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
15514         rect, make sure to de-adjust the interior rect after drawing the
15515         tab text.
15516
15517 2005-03-18  Peter Bartok  <pbartok@novell.com>
15518
15519         * MenuAPI.cs: Remove menu *before* executing selected action to
15520           prevent the menu from 'hanging around'
15521           
15522 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
15523
15524         * XplatUIOSX.cs: Implemented WorkingArea property
15525
15526 2005-03-17  Peter Bartok  <pbartok@novell.com>
15527
15528         * XplatUIX11.cs: Fixed menu coord calculations
15529         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
15530           for calculating offsets
15531
15532 2005-03-17  Peter Bartok  <pbartok@novell.com>
15533
15534         * Hwnd.cs: Do not consider menu presence for default client
15535           rectangle location/size
15536         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
15537           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
15538           translation functions
15539         * FileDialog.cs: Fixed (what I presume is a) typo
15540
15541 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
15542
15543         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
15544           X access (avoids X-Async errors)
15545
15546 2005-03-16  Jackson Harper  <jackson@ximian.com>
15547
15548         * TabControl.cs: Raise the SelectedIndexChanged event.
15549
15550 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
15551
15552         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15553           - Removed vertical ToolBar and replaced it with a custom panel
15554             (desktop and home button already work)
15555           - Added Help button (some controls get resized or relocated then)
15556           - Draw correct text depending on Open or Save.
15557           - Fixed some typos...
15558
15559 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
15560
15561         * ScrollBar.cs:
15562           - Only change Maximum and Minimum when need it (bug fix)
15563
15564 2005-03-15  Peter Bartok  <pbartok@novell.com>
15565
15566         * Form.cs: Use Handle for icon, to trigger creation if
15567           the window does not yet exist
15568         * Control.cs:
15569           - CanSelect: Slight performance improvement
15570           - Focus(): Preventing possible recursion
15571           - Invalidate(): Removed ControlStyle based clear flag setting
15572           - WM_PAINT: fixed logic for calling OnPaintBackground
15573           - WM_ERASEBKGND: Fixed logic, added call to new driver method
15574             EraseWindowBackground if the control doesn't paint background
15575         * XplatUIWin32.cs:
15576           - Moved EraseWindowBackground() method to internal methods
15577           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
15578             is sent via SendMessage on BeginPaint call on Win32
15579         * XplatUIX11.cs:
15580           - Added EraseWindowBackground() method
15581           - No longer sends WM_ERASEBKGND on .Expose, but on call to
15582             PaintEventStart, which more closely matches Win32 behaviour
15583           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
15584           - Fixed SetFocus() to properly deal with client and whole windows
15585         * Hwnd.cs: Added ErasePending property
15586         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
15587         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
15588
15589 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
15590
15591         * XplatUIOSX.cs:
15592           - Fix hard loop when timers exist.
15593           - Fix bugs with middle and right click for 3 button mice.
15594
15595 2005-03-11  Peter Bartok  <pbartok@novell.com>
15596
15597         * XplatUIX11.cs:
15598           - get_WorkingArea: Need to call X directly, GetWindowPos only
15599             returns cached data now
15600           - Added sanity check to GetWindowPos hwnd usage
15601
15602 2005-03-11  Jackson Harper  <jackson@ximian.com>
15603
15604         * BindingManagerBase.cs: This method isn't used anymore as
15605         PullData now updates the data in the control.
15606
15607 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
15608
15609         * Form.cs: fixes menu drawing on X11
15610         * MenuAPI.cs:  fixes menu drawing on X11
15611
15612 2005-03-11  Peter Bartok  <pbartok@novell.com>
15613
15614         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
15615           from Jonathan Gilbert; should fix bug #73606
15616         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
15617           in Screen coordinates. Thanks, Jordi.
15618         * Form.cs: Added missing attribute
15619
15620 2005-03-11  Peter Bartok  <pbartok@novell.com>
15621
15622         * Form.cs:
15623           - Rudimentary Mdi support
15624           - Removed outdated FormParent code
15625           - Implemented lots of missing properties and methods, still missing
15626             transparency support
15627           - Added missing attributes
15628           - Implemented support for MaximumBounds
15629           - Added firing of various events
15630         * XplatUI.cs: Added SetIcon() method
15631         * XplatUIDriver.cs: Added SetIcon() abstract
15632         * XplatUIOSX.cs: Stubbed out SetIcon() method
15633         * XplatUIX11.cs:
15634           - Implemented SetIcon() support
15635           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
15636           - Switched to unix line endings
15637         * XplatUIWin32.cs:
15638           - Made POINT internal so for can access it as part of MINMAX
15639           - Implemented SetIcon() support
15640           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
15641             native Mdi support again, might have to go managed)
15642         * Control.cs: Now fires the StyleChanged event
15643         * MdiClient.cs: Added; still mostly empty
15644
15645 2005-03-10  Peter Bartok  <pbartok@novell.com>
15646
15647         * SaveFileDialog.cs: Added emtpy file
15648
15649 2005-03-08  Peter Bartok  <pbartok@novell.com>
15650
15651         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
15652           in turn triggers OnCreateContro) when creating a handle for the
15653           first time.
15654         * TextControl.cs: Fixed endless loop in certain cases when
15655           replacing the current selection
15656
15657 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
15658
15659         * ScrollBar.cs:
15660           - Honors NewValue changes in Scroll events allowing apps to change it
15661           - Adds First and Last Scroll events
15662           - Fixes Thumb events
15663
15664 2005-03-07  Peter Bartok  <pbartok@novell.com>
15665
15666         * Hwnd.cs: Added DefaultClientRectangle property
15667         * XplatUI.cs: Now using the X11 driver Where() method, which provides
15668           more detailed debug information
15669         * XplatUIX11.cs:
15670           - Fixed size-change feedback loop, where we would pull an old size
15671             off the queue and mistakenly change our window's size to an
15672             earlier value
15673           - Now compressing ConfigureNotify events, to reduce looping and
15674             redraw issues
15675         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
15676           is called
15677
15678 2005-03-07  Jackson Harper  <jackson@ximian.com>
15679
15680         * Binding.cs: Push data pushes from data -> property. Check if the
15681         property is readonly when attempting to set it.
15682
15683 2005-03-07  Jackson Harper  <jackson@ximian.com>
15684
15685         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
15686         instead of IsSubclassOf. Pulling data now sets the value on the
15687         control.
15688         * PropertyManager.cs:
15689         * CurrencyManager.cs: Just need to pull data when updating now,
15690         because PullData will set the value on the control.
15691
15692 2005-03-04  Jackson Harper  <jackson@ximian.com>
15693
15694         * Binding.cs: Implement data type parsing and converting on pulled
15695         data. TODO: Are there more ways the data can be converted?
15696
15697 2005-03-04  Jackson Harper  <jackson@ximian.com>
15698
15699         * Binding.cs: Support <Property>IsNull checks. Also bind to the
15700         controls Validating method so we can repull the data when the
15701         control loses focus.
15702
15703 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
15704
15705         * ColumnHeader.cs:
15706           - Fixes null string format
15707           
15708         * ListView.cs:
15709           - Adds enum type checks
15710           - Fixes redrawing and recalc need after changing some properties
15711           - Fixes on focus_item set after the event
15712           - Fixes adding columns after the control has been created
15713           
15714         * ThemeWin32Classic.cs:
15715           - Fixes CheckBox focus rectangle
15716           - Fixes ColumnHeader drawing
15717
15718
15719 2005-03-03  Jackson Harper  <jackson@ximian.com>
15720
15721         * Binding.cs: Bind to <Property>Changed events so we can detect
15722         when properties are changed and update the data.
15723
15724 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
15725
15726         * ImageList.cs:
15727           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
15728           - Fixes ImageList constructor with ImageList container
15729           - Fixes image scaling (wrong parameters at DrawImage)
15730
15731 2005-02-02  Jackson Harper  <jackson@ximian.com>
15732
15733         * Binding.cs: Make property searches case-insensitive. Eliminate
15734         some duplicated code.
15735
15736 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
15737
15738         * ComboBox.cs:
15739                 - Handle focus event
15740                 - Fix scrollbar events
15741                 - Discard highlighted item if remove it
15742                 - Fixes SelectedItem with strings
15743
15744 2005-03-01  Peter Bartok  <pbartok@novell.com>
15745
15746         * Control.cs:
15747           - Fixed Visible property, now follows (once again) parent chain
15748             to return false if any control in the chain is visible=false
15749           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
15750           - Fixed several places where is_visible instead of Visible was used
15751           - Implemented FIXME related to focus selection when setting focused
15752             control to be invisible
15753
15754         * XplatUIWin32.cs: Now using proper method to find out if window is
15755           visible. Thanks to Jordi for pointing it out
15756
15757 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
15758
15759         * ComboBox.cs: show/hide scrollbar instead of creating it
15760
15761 2005-02-27  Jackson Harper  <jackson@ximian.com>
15762
15763         * CurrencyManager.cs: Add PositionChanged stuff.
15764
15765 2005-02-27  Peter Bartok  <pbartok@novell.com>
15766
15767         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
15768         * XplatUIOSX.cs: Added GetMenuOrigin() stub
15769         * XplatUIWin32.cs: Implemented GetMenuOrigin()
15770         * XplatUIX11.cs:
15771           - Implemented GetMenuDC()
15772           - Implemented GetMenuOrigin()
15773           - Implemented ReleaseMenuDC()
15774           - Implemented generation of WM_NCPAINT message
15775           - Implemented generation and handling of WM_NCCALCSIZE message
15776         * Form.cs: Added debug helper message for Jordi's menu work
15777         * Hwnd.cs:
15778           - Modified ClientRect property; added setter, fixed getter to handle
15779             setting of ClientRect
15780           - Added MenuOrigin property
15781
15782 2005-02-26  Peter Bartok  <pbartok@novell.com>
15783
15784         * XplatUIX11.cs:
15785           - Destroys the caret if a window that's being destroyed contains it
15786           - Ignores expose events coming from the X11 queue for windows that
15787             already are destroyed
15788           - Now uses the proper variable for handling DestroyNotify, before we
15789             marked the wrong window as destroyed
15790           - Improved/added some debug output
15791
15792 2005-02-26  Peter Bartok  <pbartok@novell.com>
15793
15794         * X11Keyboard.cs: Fixes to work on 64bit systems
15795
15796 2005-02-26  Peter Bartok  <pbartok@novell.com>
15797
15798         * Control.cs:
15799           - Now calling OnHandleDestroyed from DestroyHandle()
15800             instead of Dispose()
15801           - Removed bogus call to controls.Remove() from DestroyHandle()
15802
15803 2005-02-26  Peter Bartok  <pbartok@novell.com>
15804
15805         * Control.cs: Properly destroy child windows when our handle is
15806           destroyed
15807
15808 2005-02-25  Peter Bartok  <pbartok@novell.com>
15809
15810         * XplatUI.cs:
15811           - Added 'DriverDebug' define to allow tracing XplatUI API calls
15812           - Alphabetized Static Methods and Subclasses
15813
15814         * XplatUIX11.cs:
15815           - Added XException class to allow custom handling of X11 exceptions
15816           - Created custom X11 error handler, tied into XException class
15817           - Added support for MONO_XEXCEPTIONS env var to allow the user
15818             to either throw an exception on X errors or continue running
15819             after displaying the error
15820           - Added handling of DestroyNotify message
15821           - Added handler for CreateNotify message (still disabled)
15822           - Improved (tried to at least) Where method to provide file and lineno
15823         * X11Structs.cs:
15824           - Added XErrorHandler delegate
15825           - Added XRequest enumeration (to suppor translation of errors)
15826
15827 2005-02-25  Jackson Harper  <jackson@ximian.com>
15828
15829         * PropertyManager.cs: Implement editing features
15830         * CurrencyManager.cs:
15831         * Binding.cs: First attempt at UpdateIsBinding
15832         * BindingManagerBase.cs: Call UpdateIsBinding before
15833         pushing/pulling data.
15834
15835 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
15836
15837         * MenuAPI.cs: Respect disabled items
15838         * ThemeWin32Classic.cs
15839                 - Caches ImageAttributes creation for DrawImageDisabled
15840                 - Fixes vertical menu line drawing
15841                 - Draws disabled arrows in disable menu items
15842
15843 2005-02-24  Peter Bartok  <pbartok@novell.com>
15844
15845         * Hwnd.cs:
15846           - Added UserData property to allow associating arbitrary objects
15847             with the handle
15848           - Fixed leak; now removing Hwnd references from static windows array
15849         * XplatUIWin32.cs:
15850           - Fixed Graphics leak in PaintEventEnd
15851           - Removed usage of HandleData, switched over to Hwnd class
15852         * HandleData.cs: Removed, obsoleted by Hwnd.cs
15853
15854 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15855
15856         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
15857         * ScrollBar.cs: Fixes bug
15858         * TrackBar.cs: removes death code, clipping, mimize refreshes,
15859          keyboard navigation enhancements
15860
15861 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15862
15863         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
15864         * GroupBox.cs: Add control styles
15865         * Label.cs: Add control styles
15866         * UpDownBase.cs: Add control styles
15867         * ListBox.cs: Add control styles
15868         * XplatUIWin32.cs: Fixes wrong parameter order
15869
15870
15871 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
15872
15873         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
15874
15875 2005-02-23  Jackson Harper  <jackson@ximian.com>
15876
15877         * PropertyManager.cs: Implement property binding. This doesn't
15878         seem to work yet though as (I think) there are some bugs in
15879         System.ComponentModel.PropertyDescriptor.
15880         * BindingContext.cs: Use new PropertyManager constructor.
15881
15882 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
15883
15884         * ProgressBar.cs: use clip region in ProgressBar
15885         * ThemeWin32Classic.cs: use clip region in ProgressBar
15886
15887 2004-02-22  Jackson Harper  <jackson@ximian.com>
15888
15889         * BindingsCollection.cs: Remove some debug code.
15890
15891 2005-02-22  Jackson Harper  <jackson@ximian.com>
15892
15893         * BindingContext.cs:
15894         * ControlBindingsCollection.cs:
15895         * CurrencyManager.cs:
15896         * Binding.cs:
15897         * BindingManagerBase.cs: Initial implementation
15898         * BindingsCollection.cs: Add an internal contains method that the
15899         BindingManagerBase uses to ensure bindings aren't added twice to
15900         the collection.
15901         * PropertyManager.cs: Stubbed out.
15902         * Control.cs:
15903         * ContainerControl.cs: Hook up databinding
15904         
15905 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
15906
15907         * XplatUIOSX.cs:
15908           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
15909           Fixed Invalidate/Update chain.
15910           Fixed tons of other minor bugs (this is almost a complete rewrite).
15911
15912 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
15913
15914         * ComboBox.cs: do subcontrol creation when the control is created
15915
15916 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15917
15918         * Label.cs: fixes image drawing (image and imagelist)
15919         * ThemeWin32Classic.cs: cache brushes
15920         
15921 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15922
15923         * Form.cs: Move menu drawing code to Theme class
15924         * ComboBox.cs: Move ComboBox drawing code to Theme class
15925         * MenuItem.cs: Move menu drawing code to Theme class
15926         * MenuAPI.cs: Move menu drawing code to Theme class
15927         * ThemeWin32Classic.cs: New methods
15928         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
15929         * ListBox.cs: Move Listbox drawing code to Theme class
15930         * Theme.cs: New methods
15931
15932 2005-02-20  Peter Bartok  <pbartok@novell.com>
15933
15934         * Control.cs:
15935           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
15936             only process mnemonics on those)
15937           - Fixed event sequence for key handling; first calling
15938             ProcessKeyEventArgs now
15939         * TextBoxBase.cs:
15940           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
15941             for processing non-character keys
15942           - Fixed WM_CHAR to generate proper event sequence before processing
15943         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
15944           generation
15945
15946 2005-02-19  Peter Bartok  <pbartok@novell.com>
15947
15948         * UserControl.cs: Added TextChanged event; added attributes
15949         * SizeGrip.cs: Implemented resizing and optional display of grip
15950         * Form.cs: Fixed attribute
15951         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
15952           Changed meaning of ScrollWindow bool argument; instead of the
15953           clear attribute (which will be true usually anyway), it gives the
15954           option of moving child controls as well.
15955         * XplatUIX11.cs:
15956           - Changed to match new ScrollWindow argument
15957           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
15958             now handles the implicit parent window a WM puts around us
15959         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
15960           to work)
15961         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
15962         * TreeView.cs: Adjusted to new ScrollWindow arguments
15963
15964 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15965
15966         * Form.cs: Menu integration with non-client area
15967         * MenuItem.cs: Menu integration with non-client area
15968         * MenuAPI.cs: Menu integration with non-client area
15969
15970 2005-02-18  Peter Bartok  <pbartok@novell.com>
15971
15972         * MethodInvoker.cs: Added
15973         * MdiLayout.cs: Added
15974         * SendKeys.cs: Started implementation
15975         * ErrorIconAlignment.cs: Added
15976
15977 2005-02-18  Peter Bartok  <pbartok@novell.com>
15978
15979         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
15980         * Form.cs: Added handling for Menu-related Non-client messages
15981
15982 2005-02-17  Peter Bartok  <pbartok@novell.com>
15983
15984         * UpDownBase.cs: Fixed typo, compilation errors
15985         * DomainUpDown.cs: Fixed attribute value
15986
15987 2005-02-16  Miguel de Icaza  <miguel@novell.com>
15988
15989         * UpDownBase.cs: Attach entry events.
15990         Propagate events.
15991         Add ForeColor property, Focused, InterceptArrowKeys (interception
15992         does not work yet).
15993
15994 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
15995
15996         * Form.cs:
15997                 - Redraw non client are on Setmenu
15998                 - Calc proper menu starting point
15999
16000 2005-02-17  Peter Bartok  <pbartok@novell.com>
16001
16002         * Application.cs: Fixed message_filter check
16003
16004 2005-02-17  Peter Bartok  <pbartok@novell.com>
16005
16006         * Application.cs: Now calls registered message filters
16007         * DockStyle.cs: Fixed attribute
16008         * Form.cs: Fixed attribute
16009         * Menu.cs: Fixed attribute
16010         * ToolTip.cs: Fixed attribute
16011         * TreeNode.cs: Added missing attributes and arranged in regions
16012         * PropertyGrid.cs: Fixed signatures
16013         * TreeNodeCollection.cs: Added attributes
16014         * Splitter.cs: Added missing attributes; arranged into regions
16015         * TabPage.cs: Added missing attributes; arranged into regions
16016         * TextBoxBase.cs: Added missing attributes
16017         * TextBox.cs: Added missing attributes
16018         * ArrangeDirection.cs: Added missing attributes
16019         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
16020         * ToolBarButton.cs: Fixed attributes
16021         * AnchorStyles.cs: Fixed attribute
16022         * TrackBar.cs: Fixed attributes
16023         * TabControl.cs: Added missing attributes and arranged into regions
16024         * ToolBar.cs: Fixed attribute
16025         * StatusBar.cs: Fixed signature, organized into regions and added
16026           attributes
16027         * StatusBarPanel.cs: Fixed attributes
16028         * ContentsResizedEventArgs.cs: Implemented
16029         * ContentsResizedEventHandler.cs: Implemented
16030         * DateBoldEventArgs.cs: Implemented
16031         * DateBoldEventHandler.cs: Implemented
16032         * UpDownEventArgs.cs: Implemented
16033         * UpDownEventHandler.cs: Implemented
16034         
16035 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
16036
16037         * Form.cs: first Menu NC refactoring
16038         * MenuAPI.cs: first Menu NC refactoring
16039         
16040 2005-02-16  Peter Bartok  <pbartok@novell.com>
16041
16042         * ImeMode.cs: Added missing attributes
16043         * Menu.cs: Fixed attribute
16044         * GroupBox.cs: Fixed attribute
16045         * Label.cs: Fixed attribute
16046         * ColorDialog.cs (RunDialog): Removed TODO attribute
16047         * ComboBox.cs: Fixed attributes
16048         * ListControl.cs: Added missing attributes
16049         * PropertyGrid.cs: Fixed attributes
16050         * Control.cs: Fixed attributes
16051         * ListViewItem.cs: Added TypeConverter attribute
16052         * NotifyIcon.cs: Fixed attributes
16053         * ListView.cs: Fixed attributes
16054         * ButtonBase.cs: Fixed attribute
16055         * ImageList.cs: Added missing attributes
16056         * ContainerControl.cs: Fixed signature
16057         * CheckedListBox.cs: Fixed attribute; added missing attributes
16058         * Panel.cs: Fixed attributes
16059         * PropertyTabChangedEventArgs.cs: Added missing attribute
16060         * PropertyValueChangedEventArgs.cs: Added missing attribute
16061         * Binding.cs: Fixed attribute
16062         * ListViewItemConverter: Implemented ListViewSubItemConverter class
16063         * ListBox.cs: Fixed attribute; added missing attributes;
16064         * ScrollableControl.cs: Added missing attributes
16065         * PictureBox.cs: Added missing attributes; implemented missing property
16066         * DateTimePicker.cs: Added missing attributes
16067         * Theme.cs (ToolWindowCaptionHeight): Fixed type
16068         * MonthCalendar.cs: Fixed attributes
16069         * StatusBarPanel.cs: Added missing attributes
16070         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
16071
16072 2005-02-16  Peter Bartok  <pbartok@novell.com>
16073
16074         * TextBoxBase.cs: The previous method to enforce height yet remember
16075           the requested high was less than ideal, this is an attempt to do
16076           it better.
16077         * Control.cs: Added comment about possible problem
16078         * Copyright: Updated format
16079         * GridItemType.cs: Fixed swapped values
16080
16081 2005-02-15  Jackson Harper  <jackson@ximian.com>
16082
16083         * BaseCollection.cs: Use property so we never access an
16084         uninitialized list. Also initialize the list in the property.
16085
16086 2005-02-15  Peter Bartok  <pbartok@novell.com>
16087
16088         * GroupBox.cs (ProcessMnemonic): Implemented
16089         * Label.cs (ProcessMnemonic): Implemented
16090         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
16091           hotkeys
16092
16093 2005-02-15  Peter Bartok  <pbartok@novell.com>
16094
16095         * RadioButton.cs (ProcessMnemonic): Implemented
16096         * CheckBox.cs (ProcessMnemonic): Implemented
16097         * Control.cs:
16098           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
16099             handling
16100           - Added internal method to allow calling ProcessMnemonic from other
16101             controls
16102         * ContainerControl.cs:
16103           - Started support for handling validation chain handling
16104           - Implemented ProcessMnemonic support
16105           - Added Select() call to Active, to make sure the active control
16106             receives focus
16107         * Form.cs: Setting toplevel flag for Forms (this was lost in the
16108           FormParent rewrite)
16109         * ThemeWin32Classic.cs:
16110           - DrawCheckBox(): Fixed stringformat to show hotkeys
16111           - DrawRadioButton(): Fixed stringformat to show hotkeys
16112         * CommonDialog.cs: Removed WndProc override, not needed
16113
16114 2005-02-14  Peter Bartok  <pbartok@novell.com>
16115
16116         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
16117           missed those in the rewrite
16118
16119 2005-02-14  Miguel de Icaza  <miguel@novell.com>
16120
16121         * NumericUpDown.cs (Increment, ToString): Add.
16122         (DecimalPlaces): implement.
16123         
16124         Add attributes.
16125         
16126         * UpDownBase.cs: Add the designer attributes.
16127
16128 2005-02-13  Peter Bartok  <pbartok@novell.com>
16129
16130         * Panel.cs: Removed border_style, now in Control
16131         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
16132           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
16133
16134 2005-02-13  Peter Bartok  <pbartok@novell.com>
16135
16136         * MouseButtons.cs: Added missing attributes
16137         * XplatUIStructs.cs: Added enumeration for title styles
16138         * LeftRightAlignment.cs: Added missing attributes
16139         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
16140           it compatible with Graphics.FromHwnd()
16141         * SelectedGridItemChangedEventArgs.cs: Fixed property type
16142         * Keys.cs: Added missing attributes
16143         * SelectionRange.cs: Added missing attributes
16144         * SelectionRangeConverter.cs: Added
16145         * XplatUI.cs:
16146           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
16147             ReleaseMenuDC methods
16148           - Renamed ReleaseWindow to UngrabWindow
16149           - Added proper startup notice to allow version identification
16150         * Form.cs:
16151           - Added missing attributes
16152           - Removed FormParent concept
16153         * Label.cs: Removed border_style field, now in Control
16154         * RadioButton.cs: Now properly selects RadioButton when focus is
16155           received
16156         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
16157         * Control.cs:
16158           - Added missing attributes
16159           - Added borderstyle handling
16160           - Removed FormParent concept support
16161           - Fixed calls to XplatUI to match changed APIs
16162           - Fixed bug that would case us to use disposed Graphics objects
16163           - Removed unneeded internal methods
16164           - PerformLayout(): Fixed to handle DockStyle.Fill properly
16165           - SelectNextControl(): Fixed to properly check common parents
16166         * TextBoxBase.cs: Removed border_style field (now in Control)
16167         * MessageBox.cs:
16168           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
16169             fixed calculations for form size
16170           - Added support for localized strings and icons
16171           - Improved form size calculations, added border
16172         * ListView.cs: Removed border_style field (now in Control)
16173         * X11Structs.cs: Moved several structs from X11 driver here
16174         * X11Keyboard.cs: Changed debug message
16175         * Application.cs: Removed FormParent concept support
16176         * CommonDialog.cs:
16177           - Resetting end_modal flag
16178           - Removed FormParent concept support
16179         * NativeWindow.cs: Removed FormParent concept support
16180         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
16181           Client area and Non-Client whole window to allow support for WM_NC
16182           messages
16183         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
16184           prevent using it until it supports Hwnd as per Geoff Norton's request
16185         * ToolBar.cs: Fixed drawing, was not doing proper drawing
16186         * PictureBox.cs: Removed border_style field, now in Control
16187         * XplatUIWin32.cs: Added new driver methods
16188
16189 2005-02-12  Peter Bartok  <pbartok@novell.com>
16190
16191         * OpacityConverter.cs: Implemented
16192         * Hwnd.cs: Internal class to support drivers that need to emulate
16193           client area/non-client area window behaviour
16194
16195 2005-02-11  Peter Bartok  <pbartok@novell.com>
16196
16197         * KeysConverter.cs: Implemented
16198
16199 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
16200
16201         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
16202         * LinkLabel: Added missing attributes
16203         * MainMenu.cs: fixes ToString
16204         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
16205         * ListBox.cs: fixes event position
16206         * TrackBar.cs: adds missing attributes and events
16207         
16208 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
16209
16210         * MenuItem.cs: Use SystemInformation and bug fixes
16211         * MenuAPI.cs: Use SystemInformation and bug fixes
16212
16213 2005-02-09  Jackson Harper  <jackson@ximian.com>
16214
16215         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
16216         their keystate otherwise things like VK_MENU get stuck "on".
16217
16218 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
16219
16220         * ListBox.cs: Fixes AddRange bug
16221         
16222 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
16223
16224         * ProgressBar.cs
16225                 - Add missing attributes
16226                 - Add missing method
16227                 
16228         * CheckedListBox.cs: Added missing attributes
16229                 - Add missing attributes
16230                 - Remove extra method
16231         
16232         * ComboBox.cs: Added missing attributes
16233         * VScrollBar.cs: Added missing attributes
16234         * ScrollBar.cs:  Added missing attributes
16235         * ListBox.cs: Fixes signature, add missing consts
16236         * LinkArea.cs:   Added missing attributes
16237         
16238
16239 2005-02-08  Peter Bartok  <pbartok@novell.com>
16240
16241         * Menu.cs: Added missing attributes
16242         * MainMenu.cs: Added missing attributes
16243         * GroupBox.cs: Added missing attributes
16244         * Label.cs: Added missing attributes
16245         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
16246         * ColorDialog.cs:
16247           - Added Instance and Options properties
16248           - Added missing attributes
16249         * Cursor.cs: Made Serializable
16250         * NotifyIcon: Added missing attributes
16251         * MenuItem.cs: Added missing attributes
16252         * TextBoxBase.cs: Implemented AppendText() and Select() methods
16253         * Panel.cs: Added Missing attributes
16254         * MonthCalendar.cs: Fixed CreateParams
16255
16256 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16257         
16258         * LinkLabel.cs:
16259                 - Fixes signature
16260                 - Fixes issues with links
16261                 - Adds the class attributes
16262
16263 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16264         
16265         * ComboBox.cs:
16266                 - Fixes button when no items available in dropdown
16267                 - Fixes repainting problems
16268                 - Adds the class attributes
16269                 
16270 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16271
16272         * XplatUIOSX.cs: Detect the menu bar and title bar height from
16273         the current theme.  Cache these on startup.
16274
16275 2005-02-07  Jackson Harper  <jackson@ximian.com>
16276
16277         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
16278         the scrollbar buttons when they are depressed.
16279
16280 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16281
16282         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
16283         Get the display size from the main displayid.  We currently dont
16284         support multiple display configurations.
16285
16286 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16287
16288         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
16289
16290 2005-02-07  Miguel de Icaza  <miguel@novell.com>
16291
16292         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
16293
16294 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
16295
16296         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
16297
16298 2005-02-04  Jackson Harper  <jackson@ximian.com>
16299
16300         * ThemeWin32Classic.cs: Respect the clipping rect when
16301         drawing. Only fill the intersection of clips and rects so there
16302         isn't a lot of large fills.
16303         * ScrollBar.cs: Pass the correct clipping rect to the theme
16304         engine. Remove some debug code.
16305
16306 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
16307         
16308         * DateTimePicker.cs:
16309                 - Fixed crash on DateTime.Parse, use Constructor instead
16310
16311 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16312         
16313         * MenuItem.cs:
16314         * MenuAPI.cs:
16315                 - Owner draw support (MeasureItem and DrawItem)
16316
16317 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16318         
16319         *  Menu.cs:
16320                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
16321                 - Fixes MenuItems.Add range
16322         * MenuItem.cs:
16323                 - MergeMenu and Clone and CloneMenu functions
16324
16325 2005-02-03  Jackson Harper  <jackson@ximian.com>
16326
16327         * ScrollBar.cs: Make abstract
16328         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
16329         is abstract.
16330
16331 2005-02-03  Jackson Harper  <jackson@ximian.com>
16332
16333         * ScrollBar.cs: First part of my scrollbar fixups. This removes
16334         all the unneeded refreshes and uses invalidates with properly
16335         computed rects.
16336
16337 2005-02-03  Peter Bartok  <pbartok@novell.com>
16338
16339         * ComponentModel.cs: Added
16340         * IDataGridEditingService.cs: Added
16341         * Timer.cs: Added missing attributes
16342         * ToolTip.cs: Added missing attributes
16343
16344 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
16345
16346         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
16347
16348 2005-02-03  Peter Bartok  <pbartok@novell.com>
16349
16350         * ListBox.cs: Added missing attributes
16351
16352 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
16353         
16354         * ListBox.cs:
16355                 - Fixes font height after font change
16356                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
16357                 
16358 2005-02-02  Peter Bartok  <pbartok@novell.com>
16359
16360         * HandleData.cs: Introduced static methods to allow class
16361           to be more self-contained and track it's own HandleData objects
16362         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
16363           HandleData to use new static methods
16364
16365 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
16366
16367         * Combobox.cs:
16368                 - Fixes default size and PreferredHeight
16369                 - Missing events
16370                 - ObjectCollection.Insert implementation
16371                 
16372         * ListControl.cs
16373                 - Fixes signature
16374         * ListBox.cs:
16375                 - Several fixes
16376                 - ObjectCollection.Insert implementation
16377                 - No selection after clean
16378                 - Small fixes
16379
16380 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16381
16382         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
16383
16384 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
16385
16386         * Combobox.cs:
16387                 - Caches ItemHeight calculation for OwnerDrawVariable
16388                 - Handles dropdown properly
16389                 - Fixes several minor bugs
16390
16391 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16392
16393         * ListBox.cs:
16394                 - Fixes 71946 and 71950
16395                 - Fixes changing Multicolumn on the fly
16396                 - Fixes keyboard navigation on Multicolumn listboxes
16397
16398 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16399         
16400         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
16401         crash reporter log.
16402
16403 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16404
16405         * XplatUIOSX.cs: Allow applications to actually exit.
16406
16407 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16408
16409         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
16410         their parent at creation time rather than lazily later.  Fixes a major
16411         regression we were experiencing.
16412
16413 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16414
16415         * ThemeWin32Classic.cs: more date time picker painting fixes
16416         * DateTimePicker.cs: more monthcalendar drop down fixes
16417         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
16418
16419 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16420
16421         * ScrollBar.cs:
16422                 - When moving the thumb going outside the control should stop the moving
16423                 - Adds the firing of missing events
16424                 - Fixes no button show if Size is not specified
16425                 - End / Home keys for keyboard navigation
16426
16427 2005-01-30  Peter Bartok  <pbartok@novell.com>
16428
16429         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
16430           sanity check to prevent theoretical loop
16431         * XplatUIWin32.cs (SetVisible): Removed debug output
16432         * XplatUIX11.cs (SystrayChange): Added sanity check
16433         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
16434         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
16435           behaviour, valid until the X11 client window rewrite is done
16436         * TextBox.cs (ctor): Setting proper default foreground and background
16437           colors
16438
16439 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
16440
16441         * Theme: Added DrawDateTimePicker to interface
16442         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
16443         * DateTimePicker.cs: Created (still needs keys and painting code)
16444         * DateTimePickerFormat.cs: added
16445         * MonthCalendar.cs: fixed CreateParams for popup window mode
16446           
16447 2005-01-29  Peter Bartok  <pbartok@novell.com>
16448
16449         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
16450           this should also the calculations for ligher/darker
16451         * Theme.cs: Fixed defaults for ScrollBar widths/heights
16452
16453 2005-01-29  Peter Bartok  <pbartok@novell.com>
16454
16455         * ArrangeDirection.cs: Added
16456         * ArrangeStartingPositon.cs: Added
16457         * SystemInformation.cs: Implemented
16458         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16459           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
16460           used by SystemInformation class
16461         * X11Strucs.cs: Added XSizeHints structure
16462         * MenuAPI.cs:
16463           - Fixed CreateParams to make sure the menu window is always visible
16464           - TrackPopupMenu: Added check to make sure we don't draw the
16465             menu offscreen
16466
16467 2005-01-29  Peter Bartok  <pbartok@novell.com>
16468
16469         * HandleData.cs: Added method for altering invalid area
16470         * TextBoxBase.cs: Implemented TextLength
16471
16472 2005-01-28  Peter Bartok  <pbartok@novell.com>
16473
16474         * XplatUIX11.cs: Improvement over last patch, not sending
16475           the WM_PAINT directly anymore, instead we scroll any pending
16476           exposed areas and let the system pick out the WM_PAINT later
16477
16478 2005-01-28  Peter Bartok  <pbartok@novell.com>
16479
16480         * SWF.csproj: Deleted, no longer used. Instead,
16481           Managed.Windows.Forms/SWF.csproj should be used
16482         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
16483           directly, to avoid a potential race condition with the next
16484           scroll
16485
16486 2005-01-28  Peter Bartok  <pbartok@novell.com>
16487
16488         * XplatUI.cs: Made class internal
16489
16490 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
16491
16492         * CheckedListBox.cs:
16493                 - Draw focus
16494                 - Fixed Drawing
16495                 - Missing methods and events
16496
16497 2005-01-27  Peter Bartok  <pbartok@novell.com>
16498
16499         * Application.cs (Run): Don't use form if we don't have one
16500
16501 2005-01-27  Peter Bartok  <pbartok@novell.com>
16502
16503         * TextBoxBase.cs (get_Lines): Fixed index off by one error
16504
16505 2005-01-27  Peter Bartok  <pbartok@novell.com>
16506
16507         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
16508         * GridItem.cs: Added; Patch by Jonathan S. Chambers
16509         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
16510         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
16511         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
16512         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
16513         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16514         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16515         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16516         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16517         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16518         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16519
16520 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16521
16522         * Combobox.cs:
16523                 - Draw focus on Simple Combobox
16524                 - Fixes drawing issues
16525                 - fixes 71834
16526
16527 2005-01-27  Peter Bartok  <pbartok@novell.com>
16528
16529         * Form.cs:
16530           - Place window in default location, instead of hardcoded 0/0
16531           - Send initial LocationChanged event
16532         * Control.cs:
16533           - UpdateBounds after creation to find out where the WM placed us
16534           - Make sure that if the ParentForm changes location the Form
16535             is notified
16536         * XplatUIX11.cs: XGetGeometry will not return the coords relative
16537             to the root, but to whatever the WM placed around us.
16538             Translate to root coordinates before returning toplevel
16539             coordinates
16540         * XplatUIWin32.cs: Removed debug output
16541         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
16542           flag to GetWindowPos, to allow translation of coordinates on X11
16543
16544 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16545
16546         * ListBox.cs: connect LostFocus Event
16547
16548 2005-01-27  Peter Bartok  <pbartok@novell.com>
16549
16550         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
16551           XplatUIX11.cs: Extended the Systray API
16552         * Form.cs: Removed debug output
16553         * Application.cs: Fixed focus assignment, always need to call
16554           XplatUI.Activate() since Form.Activate() has rules that may
16555           prevent activation
16556         * NotifyIcon.cs: Should be complete now
16557         * ToolTip.cs: Worked around possible timer bug
16558
16559 2005-01-27  Jackson Harper  <jackson@ximian.com>
16560
16561         * TabControl.cs:
16562         - Only invalidate the effected tabs when the
16563         selected index changes. This reduces drawing and gets rid of some
16564         flicker.
16565         - Only refresh if the tabs need to be shifted, otherwise only
16566         invalidate the slider button.
16567         - On windows the tabs are not filled to right if the slider is
16568         visible.
16569         
16570 2005-01-27  Jackson Harper  <jackson@ximian.com>
16571
16572         * TabControl.cs: Only refresh on mouseup if we are showing the
16573         slider. Also only invalidate the button whose state has changed.
16574
16575 2005-01-26  Peter Bartok  <pbartok@novell.com>
16576
16577         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
16578         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
16579           and SystrayRemove() methods
16580         * XplatUIOSX.cs: Stubbed Systray methods
16581         * XplatUIX11.cs:
16582           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
16583             methods
16584           - Fixed broken XChangeProperty calls (marshalling messed up things)
16585         * X11Structs.cs: Added enums and structs required for Size hinting
16586         * NotifyIcon.cs: Added & implemented
16587
16588 2005-01-26  Jackson Harper  <jackson@ximian.com>
16589
16590         * TabControl.cs: Space vertically layed out tabs properly.
16591
16592 2005-01-26  Peter Bartok  <pbartok@novell.com>
16593
16594         * Form.cs (CreateClientParams): Always set the location to 0,0
16595           since we're a child window.
16596
16597         * Control.cs (SetVisibleCore): Always explicitly setting the location
16598           of a toplevel window, apparently X11 doesn't like to move windows
16599           while they're not mapped.
16600
16601 2005-01-26  Jackson Harper  <jackson@ximian.com>
16602
16603         * TabControl.cs: Implement FillToRight size mode with vertically
16604         rendered tabs.
16605
16606 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16607
16608         * ControlPaint.cs, ThemeWin32Classic.cs
16609                 - Fixes DrawFocusRectangle
16610
16611 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16612
16613         * MenuAPI.cs:
16614                 - MenuBar tracking only starts when item is first clicked
16615                 - Fixes menu hidding for multiple subitems
16616                 - Unselect item in MenuBar when item Executed
16617                 - Fixes bug 71495
16618
16619 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
16620
16621         * ListControl.cs:
16622                 - IsInputKey for ListBox
16623         * ListBox.cs:
16624                 - Focus item
16625                 - Shift and Control item selection
16626                 - Implement SelectionMode.MultiExtended
16627                 - Fixes RightToLeft
16628         * ComboBox.cs:
16629                 - IsInputKey implemented
16630                 - Do not generate OnTextChangedEdit on internal txt changes
16631                 
16632 2005-01-23  Peter Bartok  <pbartok@novell.com>
16633
16634         * AccessibleObject.cs: Partially implemented Select()
16635         * MonthCalendar.cs: Added missing attributes and events
16636         * Form.cs: Fixed CreateParams behaviour, now controls derived from
16637           form can properly override CreateParams.
16638         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16639           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
16640           Control performs Invalidate & Update
16641         * NativeWindow (CreateHandle): Added special handling for Form
16642           and Form.FormParent classes to allow overriding of From.CreateParams
16643         * Control.cs:
16644           - ControlNativeWindow: Renamed 'control' variable to more intuitive
16645             name 'owner'
16646           - ControlNativeWindow: Added Owner property
16647           - Removed usage of Refresh() on property changes, changed into
16648             Invalidate(), we need to wait until the queue is processed for
16649             updates, direct calls might cause problems if not all vars for
16650             Paint are initialized
16651           - Added call to UpdateStyles() when creating the window, to set any
16652             styles that CreateWindow might have ignored.
16653           - Added support for Form CreateParent overrides to UpdateStyles()
16654         * MessageBox.cs: Removed no longer needed FormParent override stuff,
16655           CreateParams are now properly overridable
16656         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
16657           CreateParams are now properly overridable
16658
16659 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
16660
16661         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
16662         OnTextBoxChanged.
16663
16664         Capture LostFocus and OnTextBoxChanged.  The later introduces a
16665         recursive invocation that I have not figured out yet.
16666
16667         Reset the timer when not using (it was accumulating).
16668
16669
16670         (OnTextBoxChanged): Set UserEdit to true here to track whether the
16671         user has made changes that require validation.
16672
16673         Reset changing to avoid loops.
16674
16675 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
16676
16677         * NumericUpDown.cs: Display value at startup.
16678
16679         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
16680         ValidateEditText.
16681
16682         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
16683         filled in.  Added some basic parsing of text.
16684
16685         Still missing the OnXXX method overrides, and figuring out the
16686         events that must be emitted.
16687
16688         * UpDownBase.cs: Handle UserEdit on the Text property.
16689         
16690 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
16691
16692         * ComboBox.cs:
16693           - Fixes IntegralHeight
16694           - ToString method
16695
16696 2005-01-21  Jackson Harper  <jackson@ximian.com>
16697
16698         * TabControl.cs: Set the SelectedIndex property when SelectedTab
16699         is set so that the page visibility is updated and the tabs are
16700         sized correctly.
16701
16702 2005-01-21  Jackson Harper  <jackson@ximian.com>
16703
16704         * TabControl.cs: Use cliping rectangle for blitting. Give the
16705         theme the clipping rect so we can do clipping while
16706         drawing. Remove some debug code.
16707
16708 2005-01-21  Jackson Harper  <jackson@ximian.com>
16709
16710         * TabPage.cs: Add a new method so tab pages can force the tab
16711         control to recalculate the tab page sizes.
16712         * TabControl.cs: UpdateOwner needs to make the tab control recalc
16713         sizes.
16714
16715 2005-01-20  Jackson Harper  <jackson@ximian.com>
16716
16717         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
16718
16719 2005-01-20  Jackson Harper  <jackson@ximian.com>
16720
16721         * TreeView.cs: Set the bounds for nodes properly. They were
16722         getting screwed up when checkboxes were not enabled, but images
16723         were.
16724
16725 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
16726
16727         * ListBox.cs:
16728                 - Owner draw support
16729                 - Fixes
16730                 
16731 2005-01-20  Jackson Harper  <jackson@ximian.com>
16732
16733         * XplatUIStructs.cs: More misc keys
16734         * X11Keyboard.cs: Ignore some control keys.
16735
16736 2005-01-20  Jackson Harper  <jackson@ximian.com>
16737
16738         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
16739         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
16740
16741 2005-01-19  Peter Bartok  <pbartok@novell.com>
16742
16743         * Control.cs: Un-selecting the control when it is loosing focus
16744
16745 2005-01-19  Jackson Harper  <jackson@ximian.com>
16746
16747         * TreeView.cs: Hook up to the text controls leave event so we can
16748         end editing when the users clicks outside the text box.
16749         
16750 2005-01-19  Jackson Harper  <jackson@ximian.com>
16751
16752         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
16753         get set in the conversion array.
16754
16755 2005-01-19  Peter Bartok  <pbartok@novell.com>
16756
16757         * Application.cs (ModalRun): Added a call to CreateControl to ensure
16758           focus is properly set
16759         * Button.cs:
16760           - Added missing attributes
16761           - removed styles, those are already set in the base class
16762         * ButtonBase.cs:
16763           - Added missing attributes
16764           - Added clip window styles
16765         * CheckBox.cs: Added missing attributes
16766         * CommonDialog.cs:
16767           - FormParentWindow.CreateParams: Added required clip styles
16768         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
16769           also filters modifier keys
16770         * MessageBox.cs:
16771           - Added assignment of Accept and Cancel button to enable Enter
16772             and Esc keys in MessageBox dialogs
16773           - FormParentWindow.CreateParams: Added required clip styles
16774         * RadioButton.cs: Added missing attributes
16775         * TextControl.cs: No longer draws selection if control does not
16776           have focus
16777         * TextBoxBase.cs:
16778           - Now draws simple rectangle around test area to make it obvious
16779             there's a control. This is a hack until we properly support borders
16780           - A few simple fixes to support selections better, now erases selected
16781             text when typing, and resets selection when using movement keys
16782
16783 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
16784
16785         * UpDownBase.cs: Added some new properties.
16786
16787         * DomainUpDown.cs: Implement a lot to get my test working.
16788
16789 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16790
16791         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
16792
16793 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16794
16795         * OSXStructs (WindowAttributes): Fixed csc complaints
16796
16797 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16798
16799         * XplayUIOSX.cs:
16800           OSXStructs.cs: Initial refactor to move enums and consts into
16801           OSXStructs and use them in the driver for greater readability.
16802
16803 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16804
16805         * XplatUIOSX.cs: Initial support for Standard Cursors.
16806         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
16807
16808 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
16809
16810         * ComboBox.cs: ability to change style when the ctrl is already
16811         created, missing methods and events, bug fixes, signature fixes
16812
16813 2005-01-19  Peter Bartok  <pbartok@novell.com>
16814
16815         * Cursors.cs (ctor): Added ctor to fix signature
16816
16817 2005-01-18  Peter Bartok  <pbartok@novell.com>
16818
16819         * Button.cs: Implemented DoubleClick event
16820         * ButtonBase.cs:
16821           - Fixed keyboard handling to behave like MS, where the press of
16822             Spacebar is equivalent to a mousedown, and the key release is
16823             equivalent to mouseup. Now a spacebar push will give the same
16824             visual feedback like a mouse click.
16825           - Added missing attributes
16826           - Added ImeModeChanged event
16827           - Added support for generating DoubleClick event for derived classes
16828         * CheckBox.cs:
16829           - Implemented DoubleClick event
16830           - Added missing attributes
16831         * CommonDialog.cs: Added missing attribute
16832         * ContextMenu.cs: Added missing attributes
16833         * RadioButton.cs:
16834           - AutoChecked buttons do not allow to be unselected when clicked
16835             (otherwise we might end up with no selected buttons in a group)
16836           - Added missing attributes
16837           - Implemented DoubleClickEvent
16838         * ThreadExceptionDialog.cs: Enabled TextBox code
16839
16840 2005-01-18  Peter Bartok  <pbartok@novell.com>
16841
16842         * Form.cs: Removed debug output
16843         * Button.cs: Added support for DoubleClick method
16844
16845 2005-01-18  Peter Bartok  <pbartok@novell.com>
16846
16847         * Form.cs:
16848           - Added method to parent window that allows triggering size
16849             calculations when a menu is added/removed
16850           - set_Menu: Cleaned up mess from early days of Form and Control,
16851             now properly triggers a recalc when a menu is added/removed
16852           - Added case to select form itself as focused form if no child
16853             controls exist
16854           - Added PerformLayout call when showing dialog, to ensure properly
16855             placed controls
16856         * Control.cs:
16857           - Select(): Made internal so Form can access it
16858           - Focus(): Only call Xplat layer if required (avoids loop), and sets
16859             status
16860         * Application.cs (Run): Removed hack and calls PerformLayout instead
16861           to trigger calculation when Form becomes visible
16862
16863 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
16864
16865         * ComboBox.cs: fixes for ownerdraw
16866
16867 2005-01-18  Peter Bartok  <pbartok@novell.com>
16868
16869         * TextControl.cs:
16870           - Sentinel is no longer static, each Document gets it's own, this
16871             avoids locking or alternatively overwrite problems when more
16872             than one text control is used simultaneously.
16873           - Switched to use Hilight and HilightText brushes for text selection
16874
16875         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
16876
16877 2005-01-18  Peter Bartok  <pbartok@novell.com>
16878
16879         * Control.cs:
16880           - Hooked up the following events:
16881                 o ControlAdded
16882                 o ControlRemoved
16883                 o HandleDestroyed
16884                 o ImeModeChanged
16885                 o ParentChanged
16886                 o TabStopChanged
16887                 o Invalidated
16888                 o SystemColorsChanged
16889                 o ParentFontChanged
16890                 o Move
16891           - Removed debug output
16892           - Added a call to the current theme's ResetDefaults when a color change
16893             is detected
16894         * Form.cs: Now setting the proper ImeMode
16895         * Theme.cs: Defined a method to force recreation of cached resources
16896           and rereading of system defaults (ResetDefaults())
16897         * ThemeWin32Classic.cs: Added ResetDefaults() stub
16898
16899 2005-01-17  Peter Bartok  <pbartok@novell.com>
16900
16901         * Control.cs: Added missing attributes
16902
16903 2005-01-17  Jackson Harper  <jackson@ximian.com>
16904
16905         * TreeNode.cs: Implement editing. Add missing properties selected
16906         and visible.
16907         * TreeView.cs: Implement node editing. Also some fixes to use
16908         Invalidate (invalid area) instead of Refresh when selecting.
16909
16910 2005-01-17  Peter Bartok  <pbartok@novell.com>
16911
16912         * Control.cs:
16913           - Implemented InvokeGotFocus() method
16914           - Implemented InvokeLostFocus() method
16915           - Implemented InvokePaint() method
16916           - Implemented InvokePaintBackground() method
16917           - Implemented InvokeClick() method
16918           - Implemented FindForm() method
16919           - Implemented RectangleToClient() method
16920           - Implemented ClientToRectangle() method
16921           - Implemented ResetBackColor() method
16922           - Implemented ResetCursor() method
16923           - Implemented ResetFont() method
16924           - Implemented ResteForeColor() method
16925           - Implemented ResetImeMode() method
16926           - Implemented ResetLeftToRight() method
16927           - Implemented ResetText() method
16928           - Implemented Scale() methods
16929           - Implemented ScaleCore() method
16930           - Implemented Update() method
16931           - Removed unused variables
16932           - Stubbed AccessibilityNotifyClients and
16933             ControlAccessibleObject.NotifyClients() methods (dunno what to do
16934             with those yet)
16935           - Now setting proper default for RightToLeft property
16936           - Fixed bug in SetClientSizeCore that would cause windows to get
16937             really big
16938           - Now sending Click/DoubleClick events
16939           - Now selecting controls when left mouse button is clicked on
16940             selectable control
16941         * AccessibleEvents.cs: Added
16942         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
16943         * XplatUIOSX.cs: Stubbed UpdateWindow() method
16944         * XplatUIWin32.cs: Implemented UpdateWindow() method
16945         * XplatUIX11.cs: Implemented UpdateWindow() method
16946         * Form.cs: Removed stray semicolon causing CS0162 warning
16947         * ThemeWin32Classic.cs: Fixed unused variable warnings
16948         * ScrollableControl.cs: Now calls base method for ScaleCore
16949         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
16950           style to avoid interference with internal click handler (which is
16951           different than standard Control click handling)
16952         * RadioButton.cs:
16953           - Now unchecks all sibling radio buttons when control is
16954             selected (Fixes #68756)
16955           - Removed internal tabstop variable, using the one inherited from
16956             Control
16957
16958 2005-01-17  Jackson Harper  <jackson@ximian.com>
16959
16960         * NavigateEventArgs.cs: Fix base type.
16961         * LinkLabel.cs: Sig fix
16962         
16963 2005-01-17  Jackson Harper  <jackson@ximian.com>
16964
16965         * TreeView.cs: Only invalidate the effected nodes bounds when
16966         selecting nodes.
16967
16968 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16969
16970         * XplatUIWin32.cs: fixes Win32 marshaling
16971         * XplatUIX11.cs: fixes method signature
16972
16973 2005-01-17  Peter Bartok  <pbartok@novell.com>
16974
16975         * XplatUIX11.cs: Clean up resources when we no longer need them
16976
16977 2005-01-17  Peter Bartok  <pbartok@novell.com>
16978
16979         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
16980           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
16981           and DestroyCursor() methods.
16982         * Cursor.cs: Partially implemented, now supports standard cursors;
16983           still contains some debug code
16984         * Cursors.cs: Implemented class
16985         * Control.cs:
16986           - WndProc(): Added handling of WM_SETCURSOR message, setting the
16987             appropriate cursor
16988           - Implemented Cursor property
16989           - Replaced break; with return; more straightforwar and possibly
16990             faster
16991           - Now properly setting the result for WM_HELP
16992         * X11Structs.cs: Added CursorFontShape enum
16993         * XplatUIStructs.cs:
16994           - Added StdCursor enum (to support DefineStdCursor() method)
16995           - Added HitTest enum (to support sending WM_SETCURSOR message)
16996         * XplatUIX11.cs:
16997           - Now sends the WM_SETCURSOR message
16998           - Implemented new cursor methods
16999         * XplatUIOSX.cs: Stubbed new cursor methods
17000         * XplatUIWin32.cs:
17001           - Implemented new cursor methods
17002           - Added GetSystemMetrics function and associated enumeration
17003
17004 2005-01-15  Peter Bartok  <pbartok@novell.com>
17005
17006         * Control.cs:
17007           - WndProc(): Now handles EnableNotifyMessage
17008           - SelectNextControl(): Fixed bug where if no child or sibling
17009             controls exist we looped endlessly
17010
17011 2005-01-14  Jackson Harper  <jackson@ximian.com>
17012
17013         * TreeView.cs: Recalculate the tab pages when a new one is added
17014         so that the proper bounding rects are created.
17015
17016 2005-01-14  Jackson Harper  <jackson@ximian.com>
17017
17018         * TreeView.cs: Draw a gray box instead of a grip in the lower
17019         right hand corner when there are both horizontal and vertical
17020         scroll bars.
17021
17022 2005-01-14  Jackson Harper  <jackson@ximian.com>
17023
17024         * Control.cs: When erasing backgrounds use FromHwnd instead of
17025         FromHdc when there is a NULL wparam. This occurs on the X driver.
17026         * XplatUIX11.cs: Set the wparam to NULL.
17027
17028 2005-01-13  Jackson Harper  <jackson@ximian.com>
17029
17030         * PictureBox.cs: Implement missing methods (except ToString, need
17031         to test that on windows) and events. When visibility is changed we
17032         need to redraw the image because the buffers are killed. When size
17033         is changed refresh if the sizemode needs it.
17034
17035 2005-01-13  Peter Bartok  <pbartok@novell.com>
17036
17037         * Control.cs (SelectNextControl): Was using wrong method to select
17038           a control
17039
17040 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17041
17042         * ComboBox.cs: fixes dropstyle
17043
17044 2005-01-13  Peter Bartok  <pbartok@novell.com>
17045
17046         * Form.cs:
17047           - Implemented Select() override
17048           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
17049           - Now sets keyboard focus on startup
17050         * Control.cs (SelectNextControl): Now properly handles directed=true
17051         * TextBoxBase.cs:
17052           - WndProc: Now passes tab key on to base if AcceptTabChar=false
17053           - Added (really bad) focus rectangle (mostly for testing)
17054         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
17055           to enforce redraw on focus changes
17056         * ContainerControl.cs:
17057           - Fixed detection of Shift-Tab key presses
17058           - Fixed traversal with arrow keys
17059         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
17060           gonna keep this or if it's complete yet
17061         
17062 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17063
17064         * ComboBox.cs: missing properties, fixes
17065
17066 2005-01-13  Peter Bartok  <pbartok@novell.com>
17067
17068         * Panel.cs (ctor): Setting Selectable window style to off
17069         * Splitter.cs (ctor): Setting Selectable window style to off
17070         * GroupBox.cs (ctor): Setting Selectable window style to off
17071         * Label.cs (ctor): Setting Selectable window style to off
17072
17073 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
17074
17075         * UpDownBase.cs (InitTimer): If the timer has been already
17076         created, enable it.
17077
17078         Use a TextBox instead of a Label.
17079
17080 2005-01-12  Jackson Harper  <jackson@ximian.com>
17081
17082         * TreeView.cs: Refresh the tree after sorting the nodes. Always
17083         draw the connecting node lines (when ShowLines is true).
17084         * TreeNode.cs: The nodes index can now be updated. This is used
17085         when a node collection is sorted.
17086         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
17087         insert or an existing unsorted node collection can be sorted.
17088         
17089 2005-01-12  Peter Bartok  <pbartok@novell.com>
17090
17091         * ContainerControl.cs: Implemented ProcessDialogKeys()
17092
17093 2005-01-12  Peter Bartok  <pbartok@novell.com>
17094
17095         * Control.cs:
17096           - Implemented SelectNextControl() method
17097           - Several focus related bug fixes
17098           - Fixed Docking calculations to match MS documentation and
17099             behaviour
17100
17101 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
17102
17103         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
17104         bug fixes
17105
17106 2005-01-12  Peter Bartok  <pbartok@novell.com>
17107
17108         * Control.cs:
17109           - Fixed broken Contains() method
17110           - Implemented GetNextControl() method. Finally. This is the pre-
17111             requisite for focus handling.
17112
17113 2005-01-12  Peter Bartok  <pbartok@novell.com>
17114
17115         * OSXStrucs.cs: Added
17116
17117 2005-01-12  Peter Bartok  <pbartok@novell.com>
17118
17119         * XplatUIWin32.cs:
17120           - Removed PeekMessageFlags
17121           - Implemented SetWindowStyle() method
17122         * XplatUIStructs.cs: Added PeekMessageFlags
17123         * X11Structs: Added missing border_width field to XWindowChanges struct
17124         * XplatUIX11.cs:
17125           - PeekMessage: Now throws exception if flags which are not yet
17126             supported are passed
17127           - Implemented SetWindowStyle() method
17128           - Fixed SetZOrder to handle AfterHwnd properly
17129         * XplatUI.cs: Added SetWindowStyle() method
17130         * XplatUIDriver.cs: Added SetWindowStyle() abstract
17131         * Control.cs:
17132           - Implemented UpdateStyles() method
17133           - Implemented UpdateZOrder() method
17134         * XplatUIOSX.cs: Added SetWindowStyle() stub
17135
17136 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
17137
17138         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
17139         button mouse).
17140
17141
17142 2005-01-11  Jackson Harper  <jackson@ximian.com>
17143
17144         * TreeView.cs: Still need to draw lines to siblings even if out of
17145         the current node is out of the clip.
17146
17147 2005-01-11  Jackson Harper  <jackson@ximian.com>
17148
17149         * TreeView.cs: When setting the hbar/vbar/grip position use
17150         SetBounds so that perform layout is only called once. Also suspend
17151         and resume layout so layout is only done once for all controls.
17152         - Removed some debug fluff
17153         * SizeGrip.cs: Call base implmentation in overriding methods.
17154         - When visibility is changed the drawing buffers are killed so we
17155         need to redraw.
17156
17157 2005-01-11  Jackson Harper  <jackson@ximian.com>
17158
17159         * TreeView.cs: Calculate the open node count while drawing. This
17160         saves us an entire tree traversal for every paint operation. Use
17161         a member var for the open node count so less vars are passed around.
17162
17163 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
17164
17165         * MonthCalendar.cs:
17166         - fixed selection to use mousemove, not mouse polling on timer
17167         * ThemeWin32Classic.cs
17168         - removed redundant unused variable "no_more_content"
17169         
17170 2005-01-11  Peter Bartok  <pbartok@novell.com>
17171
17172         * XplatUIX11.cs (DoEvents): Needs to return when no more events
17173           are pending, so it now calls PeekMessage instead of GetMessage;
17174           implemented a incomplete version of PeekMessage
17175         
17176 2005-01-11  Peter Bartok  <pbartok@novell.com>
17177
17178         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
17179           I18n issues
17180         * TextBoxBase.cs: Added sending of TextChanged event
17181
17182 2005-01-10  Jackson Harper  <jackson@ximian.com>
17183
17184         * TreeView.cs: Try not to draw outside the clipping rectangle on
17185         each node element.
17186
17187 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
17188
17189         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
17190
17191 2005-01-10  Jackson Harper  <jackson@ximian.com>
17192
17193         * TreeView.cs:
17194         - Implement fast scrolling. Now only the newly
17195         exposed nodes are drawn and the old image is moved using the
17196         XplatUI::ScrollWindow method.
17197         - Factor in height of nodes when calculating whether or not the
17198         node is in the clipping rect.
17199
17200 2005-01-10  Jackson Harper  <jackson@ximian.com>
17201
17202         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
17203
17204 2005-01-10  Peter Bartok  <pbartok@novell.com>
17205
17206         * Application.cs: Added temporary hack to resolve all our resize
17207           required issues on startup. This will get fixed properly at
17208           some point in the future
17209
17210 2005-01-10  Jackson Harper  <jackson@ximian.com>
17211
17212         * SizeGrip.cs: New internal class that is used as a sizing
17213         grip control...hence the name.
17214
17215 2005-01-10  Peter Bartok  <pbartok@novell.com>
17216
17217         * Control.cs: Implemented proper TabIndex handling, now assigning
17218           a tabindex when a control is added to a container
17219         * GroupBox.cs (ctor): Now sets the Container style bit, required
17220           for Control.GetNextControl()
17221
17222 2005-01-09  Jackson Harper  <jackson@ximian.com>
17223
17224         * TextBoxBase.cs: Clear window when scrolling (fixes build).
17225
17226 2005-01-09  Peter Bartok <pbartok@novell.com>
17227
17228         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
17229           XplatUIX11.cs: Added ability to control ScrollWindow expose and
17230           an overload for ScrollWindow to allow only scrolling a rectangle
17231
17232 2005-01-09  Peter Bartok <pbartok@novell.com>
17233
17234         * Form.cs:
17235           - Implemented SetDesktopBounds method
17236           - Implemented SetDesktopLocation method
17237
17238 2005-01-08  Jackson Harper  <jackson@ximian.com>
17239
17240         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
17241         the node count has changed, this removes to VScroll::Refresh calls
17242         when drawing.
17243
17244 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
17245
17246         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
17247
17248 2005-01-07  Jackson Harper  <jackson@ximian.com>
17249
17250         * TreeNode.cs: Just update the single node when it is
17251         checked. Don't refresh after toggling, the Expand/Collapse already
17252         handles this.
17253         * TreeView.cs: Respect clipping a little more when drawing. Try
17254         not to redraw things that don't need to be redrawn. Just hide the
17255         scrollbars when they are no longer needed instead of removing
17256         them, so they don't have to be created again and again.
17257         
17258 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
17259
17260         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
17261         coordinates to window space to place the caret properly, FIXED.
17262         Implement GetWindowState & SetWindowState
17263
17264 2005-01-06  Peter Bartok <pbartok@novell.com>
17265
17266         * Form.cs:
17267           - Implemented ClientSize property
17268           - Implemented DesktopBounds property
17269           - Implemented DesktopLocation property
17270           - Implemented IsRestrictedWindow property
17271           - Implemented Size property
17272           - Implemented TopLevel property
17273           - Implemented FormWindowState property
17274         * Control.cs:
17275           - Implemented GetTopLevel() method
17276           - Implemented SetTopLevel() method
17277         * X11Structs.cs (Atom):
17278           - Added AnyPropertyType definition
17279           - Added MapState definiton and updated XWindowAttribute struct
17280         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
17281         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
17282         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
17283         * XplatUIWin32.cs:
17284           - Implemented GetWindowState() and SetWindowState() methods
17285           - Fixed Win32GetWindowLong return type
17286         * XplatUIX11.cs:
17287           - Introduced central function for sending NET_WM messages
17288           - Implemented GetWindowState() and SetWindowState() methods
17289         * TextBoxBase.cs (set_Lines):
17290           - Now uses Foreground color for text added via Text property (Duh!)
17291           - Added code to remember programmatically requested size (fixes
17292             behaviour when Multiline is set after Size)
17293           - Added AutoSize logic
17294
17295 2005-01-06  Jackson Harper  <jackson@ximian.com>
17296
17297         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
17298
17299 2005-01-06  Jackson Harper  <jackson@ximian.com>
17300
17301         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
17302         set to less then 0.
17303
17304 2005-01-06  Jackson Harper  <jackson@ximian.com>
17305
17306         * ScrollableControl.cs: Lazy init the scrollbars.
17307         
17308 2005-01-06  Jackson Harper  <jackson@ximian.com>
17309
17310         * Theme.cs: Speed up getting pens and solid brushes, by using
17311         their ARGB as a hash instead of tostring and not calling Contains.
17312
17313 2005-01-06  Peter Bartok <pbartok@novell.com>
17314
17315         * Form.cs:
17316           - Implemented OnActivated and OnDeactivate event trigger
17317           - Implemented Activate() method
17318           - Fixed ShowDialog() to activate the form that was active before
17319             the dialog was shown
17320         * XplatUIX11.cs:
17321           - Added global active_window var that tracks the currently active
17322             X11 window
17323           - Now always grabs Property changes from the root window to always
17324             catch changes on the active window property
17325           - Added code to PropertyNotify handler to send Active/Inactive
17326             messages when state changes. This puts X11 and Win32 en par on
17327             WM_ACTIVATE notifications (except for double notifications when
17328             the user clicks away from our modal window to another one of our
17329             windows)
17330
17331 2005-01-05  Jackson Harper  <jackson@ximian.com>
17332
17333         * ImageList.cs: Implment ctor
17334
17335 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17336
17337         * XplatUIOSX.cs: Implement Activate/SetTopmost
17338
17339 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17340
17341         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
17342
17343 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17344
17345         * XplatUIOSX.cs: Implement GetActive/SetFocus.
17346
17347 2005-01-05  Peter Bartok <pbartok@novell.com>
17348
17349         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
17350           XplatUIOSX.cs: Added GetActive method to return the currently
17351           active window for the application (or null, if none is active)
17352         * Form.cs:
17353           - Implemented ActiveForm
17354           - Commented out owner assignment for modal dialogs (causes problems
17355             on Win32, since the owner will be disabled)
17356           - Reworked some Active/Focus handling (still incomplete)
17357         * CommonDialog.cs: Commented out owner assignment for modal dialogs
17358           (causes problems on Win32, since the owner will be disabled)
17359         * IWin32Window: Added ComVisible attribute
17360
17361 2005-01-05  Peter Bartok <pbartok@novell.com>
17362
17363         * ToolTip.cs (WndProc): Enable setting focus now that we have the
17364           required XplatUI functions.
17365
17366 2005-01-05  Peter Bartok <pbartok@novell.com>
17367
17368         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
17369           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
17370           to implement focus and activation handling; still incomplete and
17371           with debug output
17372
17373 2005-01-04  Peter Bartok <pbartok@novell.com>
17374
17375         * TextBoxBase.cs: Changed access level for Document property to
17376           match switch to internal for TextControl
17377
17378 2005-01-04  Peter Bartok <pbartok@novell.com>
17379
17380         * AccessibleObject: Added ComVisible attribute
17381
17382 2005-01-04  Jackson Harper  <jackson@ximian.com>
17383
17384         * X11Keyboard.cs: Remove unneeded var.
17385
17386 2005-01-04  Jackson Harper  <jackson@ximian.com>
17387
17388         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
17389         but PAINT.
17390         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
17391         ClientMessage. This makes apps exit cleanly (more often).
17392         
17393 2005-01-04  Jackson Harper  <jackson@ximian.com>
17394
17395         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
17396         handling focus, return correct colors and fonts,
17397         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
17398         handle selection, horizontal scrolling, and mouse interaction.
17399
17400 2005-01-04  Peter Bartok <pbartok@novell.com>
17401
17402         * ICommandExecutor.cs: Added
17403         * IDataGridColumnStyleEditingNotificationService.cs: Added
17404         * IFeatureSupport.cs: Added
17405         * IFileReaderService.cs: Added
17406         * IDataObject.cs: Added ComVisible attribute
17407         * AmbientProperties.cs: Added
17408         * BaseCollection.cs: Added missing attributes
17409         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
17410         * BaseCollection.cs: Added missing attributes
17411         * Binding.cs: Added TypeConverter attribute
17412         * BindingContext.cs: Added DefaultEvent attribute
17413         * BindingsCollection.cs: Added DefaultEvent attribute
17414         * Button.cs: Added DefaultValue attribute
17415         * DragEventArgs.cs: Added ComVisible attribute
17416         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
17417         * KeyEventArgs.cs: Added ComVisible attribute
17418         * KeyPressEventArgs.cs: Added ComVisible attribute
17419         * MouseEventArgs.cs: Added ComVisible attribute
17420         * NavigateEventArgs.cs: Added
17421         * NavigateEventHandler.cs: Added
17422         * FeatureSupport.cs: Added
17423         * OSFeature.cs: Added
17424         * Theme.cs: Added abstract Version property to support OSFeature
17425         * ThemeWin32Classic.cs: Added Version property to
17426           support OSFeature.Themes
17427         * ProgressBar.cs: Removed OnPaintBackground override, not required since
17428           the proper styles to avoid background drawing are set, also doesn't
17429           match MS signature
17430         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
17431         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
17432         * ScrollEventArgs.cs: Added ComVisible attribute
17433         * SplitterEventArgs.cs: Added ComVisible attribute
17434         * AccessibleSelection.cs: Added Flags attribute
17435         * Appearance.cs: Added ComVisible attribute
17436         * Border3DSide.cs: Added ComVisible attribute
17437         * Border3DStyle.cs: Added ComVisible attribute
17438         * BorderStyle.cs: Added ComVisible attribute
17439         * DragAction.cs: Added ComVisible attribute
17440         * ErrorBlinkStyle.cs: Added
17441         * ScrollEventType.cs: Added ComVisible attribute
17442         * AnchorStyles.cs: Added Editor attribute
17443         * DockStyle.cs: Added Editor attribute
17444         * HorizontalAlignment.cs: Added ComVisible attribute
17445         * HelpEventArgs.cs: Added ComVisible attribute
17446         * PaintEventArgs.cs: Added IDisposable
17447
17448 2005-01-04  Peter Bartok <pbartok@novell.com>
17449
17450         * TextControl.cs: Switched Line, LineTag and Document classes to
17451           internal
17452
17453 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17454
17455         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
17456         Simple mode, fixes, IntegralHeight, etc.
17457
17458 2005-01-04  Peter Bartok <pbartok@novell.com>
17459
17460         * TextBoxBase.cs: Using proper font variable now
17461
17462 2005-01-04  Peter Bartok <pbartok@novell.com>
17463
17464         * Form.cs (ShowDialog): Set parent to owner, if provided
17465         * GroupBox.cs: Removed unused vars
17466         * TextControl.cs:
17467           - Added GetHashCode() for Document and LineTag classes
17468           - Removed unused variables
17469           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
17470             to allow translation between continuous char position and line/pos
17471         * CheckBox.cs: Removed vars that are provided by base class
17472         * RadioButton.cs: Removed vars that are provided by base class, added
17473           new keyword where required
17474         * LinkLabel.cs: Added new keyword where required
17475         * Control.cs (WndProc): Removed unused variable
17476         * TextBoxBase.cs:
17477           - Finished SelectionLength property
17478           - Implemented SelectionStart property
17479           - Implemented Text property
17480           - Removed unused vars
17481         * MessageBox.cs: Added new keyword where required
17482         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
17483           WndProc signature
17484         * MenuAPI.cs: Added new keyword where required
17485         * ButtonBase.cs: Removed vars that are provided by base class, added
17486           new keyword where required
17487         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
17488           argument to double, to allow compiling with csc 2.0 (Atsushi ran
17489           into this)
17490         * Application.cs (Run): Now triggers the ThreadExit event
17491         * CommonDialog.cs: Added new keyword where required; now properly sets
17492           parent (owner) for dialog
17493         * XplatUIX11.cs: Commented out unused vars
17494         * StatusBar.cs: Fixed signature for Text property
17495         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
17496
17497 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17498
17499         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
17500         TrackBar.cs, MonthCalendar.cs: remove unused vars
17501
17502 2005-01-03  Jackson Harper  <jackson@ximian.com>
17503
17504         * ThemeWin32Classic.cs:
17505         * X11Keyboard.cs: Remove unused vars.
17506
17507 2005-01-03  Peter Bartok  <pbartok@novell.com>
17508
17509         * TextBox.cs:
17510           - set_Text: Tied into TextControl
17511           - set_TextAlignment: Tied into TextControl
17512         * TextControl.cs:
17513           - Added alignment properties and implemented alignment handling
17514             and drawing (still has a bug, not generating proper expose events)
17515           - Added new Line() constructor to allow passing the line alignment
17516           - Fixed selection setting, properly handling end<start now
17517           - Added aligment considerations to RecalculateDocument()
17518         * TextBoxBase.cs:
17519           - Now properly enforces control height for single line controls
17520           - Added support for CharacterCasing
17521           - Added IsInputKey override
17522           - Fixed Keys.Enter logic
17523           - Added SetBoundsCore override
17524           - Fixed mouse selection handling
17525
17526 2005-01-03  Jackson Harper  <jackson@ximian.com>
17527
17528         * TreeView.cs:
17529           - Collapse and uncheck all nodes when CheckBoxes is disabled.
17530           - Checkboxes are always aligned to the bottom of the node,
17531           regardless of item height.
17532           - Use the node bounds to draw the text so we can center it when
17533           the item height is greater then the font height.
17534           - Node::Bounds are only the text part of the node.
17535         * TreeNode.cs: New method to combine collapsing and unchecking all
17536           nodes recursively.
17537
17538 2005-01-02  Jackson Harper  <jackson@ximian.com>
17539
17540         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
17541         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
17542         tree when a check is changed. TODO: Only refresh the checked node.
17543
17544 2004-12-30  Jackson Harper  <jackson@ximian.com>
17545
17546         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
17547         * TreeNode.cs: When collapsing make sure to never collapse the
17548         root node.
17549
17550 2004-12-29  Jackson Harper  <jackson@ximian.com>
17551
17552         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
17553         
17554 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
17555
17556         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
17557
17558 2004-12-28  Peter Bartok  <pbartok@novell.com>
17559
17560         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
17561           not yet assigned
17562
17563 2004-12-28  Peter Bartok  <pbartok@novell.com>
17564
17565         * Control.cs (WndProc): Added WM_HELP handler, now generates
17566           HelpRequested event
17567         * Form.cs: Added HelpButton property and required support code
17568         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
17569
17570 2004-12-28  Peter Bartok  <pbartok@novell.com>
17571
17572         * CommonDialog.cs:
17573           - Made DialogForm.owner variable internal
17574           - Added check to ensure owner form is set before setting
17575             owner properties in CreateParams
17576
17577 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
17578
17579         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
17580           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
17581           GetCursorPos.  Fix major visibility issues.  Rework the windowing
17582           system to support borderless/titleless windows (implements menus).
17583           Fix GetWindowPos.  Implement initial background color support for
17584           views.
17585
17586 2004-12-28  Peter Bartok  <pbartok@novell.com>
17587
17588         * Form.cs (get_CreateParams): Make sure we have an owner before using
17589           the owner variable. Implement proper default if no owner exists
17590
17591 2004-12-28  Peter Bartok  <pbartok@novell.com>
17592
17593         * In preparation for making Managed.Windows.Forms the default build target
17594           for System.Windows.Forms, the following stubbed files were added.
17595           Dialogs are currently being implemented by contributors and are only
17596           short-term place holders.
17597         * ColorDialog.cs: Initial check-in (minmal stub)
17598         * DataGrid.cs: Initial check-in (minimal stub)
17599         * DataGridLineStyle.cs: Initial check-in (minimal stub)
17600         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
17601         * DataGridTableStyle.cs: Initial check-in (minimal stub)
17602         * FontDialog.cs: Initial check-in (minimal stub)
17603         * FileDialog.cs: Initial check-in (minimal stub)
17604         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
17605         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
17606         * OpenFileDialog: Initial check-in (minimal stub)
17607         * IComponentEditorPageSite.cs: Initial check-in
17608         * Splitter.cs: Initial check-in (for Jackson)
17609         * SplitterEventArgs.cs: Initial check-in (for Jackson)
17610         * SplitterEventHandler.cs: Initial check-in (for Jackson)
17611         * TextBox.cs: Initial check-in; still needs some wiring to
17612           TextControl backend
17613         * Form.cs: Implemented ControlBox property
17614         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
17615         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
17616         * TextControl.cs: Added selection functionality; added todo header
17617         * TextBoxBase.cs:
17618           - Implemented Lines property
17619           - Implemented TextHeight property
17620           - Implemented SelectedText property
17621           - Implemented SelectionLength property
17622           - Implemented SelectAll method
17623           - Implemented ToString method
17624           - Removed and cleaned up some debug code
17625           - Implemented (still buggy) mouse text selection
17626
17627 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
17628
17629         * ComboBox.cs: Complete DropDownList implementation, fixes.
17630
17631 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
17632
17633         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
17634         * ComboBoxStyle.cs: ComboBoxStyle enum
17635         * ComboBox.cs: Initial work on ComboBox control
17636
17637 2004-12-21  Peter Bartok  <pbartok@novell.com>
17638
17639         * Control.cs (ctor, CreateParams): Moved setting of is_visible
17640           forward so that anything that creates a window gets the default,
17641           also no longer uses Visible property in CreateParams to avoid
17642           walking up the parent chain and possibly get the wrong visible
17643           status. Fixed IsVisible to no longer walk up to the parent.
17644
17645 2004-12-21  Peter Bartok  <pbartok@novell.com>
17646
17647         * Form.cs (ShowDialog): Unset modality for the proper window
17648  
17649 2004-12-20  Peter Bartok  <pbartok@novell.com>
17650
17651         * CommonDialog.cs: Initial check-in
17652
17653 2004-12-20  Peter Bartok  <pbartok@novell.com>
17654
17655         * Control.cs (Visible): Now uses the parent window instead of the
17656           client area window for the property
17657
17658         * Form.cs
17659           - ShowDialog(): Now uses the proper window for modality
17660           - The default visibility state for the form parent is now false. This
17661             will prevent the user from seeing all the changes to the form and
17662             its controls before the application hits Application.Run()
17663           - Removed some stale commented out code
17664
17665         * NativeWindow.cs:
17666           - Added FindWindow() method to have a method to check for existence
17667             of a window handle
17668           - Added ability to override default exception handling (for example
17669             when debugging with VS.Net; to do this the ExternalExceptionHandler
17670             define must be set
17671           - Removed some useless debug output
17672
17673         * XplatUIX11.cs:
17674           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
17675             not working as expected
17676           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
17677             property to allow switching back to the modal window if focus is
17678             given to another one of our windows (Application Modal)
17679           - Now only sets override_redirect if we create a window
17680             without WS_CAPTION
17681           - Moved EventMask selection before mapping of newly created window
17682             so we can catch the map event as well
17683           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
17684           - Added various Atom related DllImports
17685           - Implemented Exit() method
17686           - .ctor() : No longer shows window if WS_VISIBLE is not defined
17687             in the CreateParams
17688
17689         * MessageBox.cs: Now properly deals with the FormParent window by
17690           providing an override the FormParent CreateParams property to
17691           set as POPUP instead of OVERLAPPED window.
17692
17693 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17694
17695         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
17696         Minor code cleanup.
17697
17698 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17699         
17700         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
17701
17702 2004-12-18  Peter Bartok  <pbartok@novell.com>
17703
17704         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
17705           implementing SetModal() method
17706
17707 2004-12-18  Peter Bartok  <pbartok@novell.com>
17708
17709         * X11Structs.cs (XGCValues): Fixed type of function element
17710         * XplatUI.cs: Added ScrollWindow() method
17711         * XplatUIDriver.cs: Added ScrollWindow() abstract
17712         * XplatUIWin32.cs: Implemented ScrollWindow() method
17713         * XplatUIX11.cs: Implemented ScrollWindow() method
17714         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
17715
17716 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17717
17718         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
17719         Some more keyboard support (INCOMPLETE)
17720
17721 2004-12-17  Peter Bartok  <pbartok@novell.com>
17722
17723         * TextControl.cs:
17724         - Added color attribute to line tags.
17725         - Added color argument to all functions dealing with tags
17726         - Added color argument support to various functions
17727         - Fixed miss-calculation of baseline/shift in certain circumstances
17728
17729         * TextBoxBase.cs: Added new color option to test code
17730
17731 2004-12-17  Jackson Harper  <jackson@ximian.com>
17732
17733         * TreeNode.cs:
17734         * MonthCalendar.cs: Signature fixes
17735
17736 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17737
17738         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
17739         keyboard event moved it.  Create a new graphics context for each paint resolves this
17740
17741 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17742
17743         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
17744         Make caret exist and go blink blink.  Initial keyboard support.
17745         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
17746         works.
17747
17748 2004-12-17  Jackson Harper  <jackson@ximian.com>
17749
17750         * XplatUIStructs.cs: Updated set of virtual keycodes.
17751         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
17752
17753 2004-12-17  Jackson Harper  <jackson@ximian.com>
17754
17755         * XplatUIX11.cs: Prune old keyboard code.
17756
17757 2004-12-17  Jackson Harper  <jackson@ximian.com>
17758
17759         * XplatUIX11.cs: When generating mouse wparams get the modifier
17760         keys from the ModifierKeys property.
17761
17762 2004-12-17  Jackson Harper  <jackson@ximian.com>
17763
17764         * X11Keyboard.cs: Send up/down input when generating
17765         messages. Remove some unused vars.
17766
17767 2004-12-17  Jackson Harper  <jackson@ximian.com>
17768
17769         * TabControl.cs:
17770         * TreeView.cs: get rid of warnings.
17771
17772 2004-12-17  Jackson Harper  <jackson@ximian.com>
17773
17774         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
17775
17776 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
17777
17778         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
17779           CheckedListBox.cs: Implementation
17780
17781 2004-12-17  Peter Bartok  <pbartok@novell.com>
17782
17783         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
17784
17785 2004-12-16  Peter Bartok  <pbartok@novell.com>
17786
17787         * TextControl.cs:
17788           - InsertCharAtCaret(): Fixed start pos fixup
17789           - CaretLine_get: No longer derives the line from the tag, the tag
17790             could be stale if lines in the document have been added or deleted
17791           - RebalanceAfterDelete(): Fixed bug in balancing code
17792           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
17793           - Line.Streamline(): Now can also elminate leading empty tags
17794           - DumpTree(): Added a few more tests and prevented exception on
17795             uninitialized data
17796           - Added Debug section for Combining lines
17797           - Delete(): Now copies all remaining properties of a line
17798           
17799         * TextBoxBase.cs:
17800           - Left mousebutton now sets the caret (and middle button still acts
17801             as formatting tester, which must go away soon)
17802           - Added Debug section for Deleting/Combining lines
17803           - Fixed calculations for UpdateView after Combining lines
17804
17805 2004-12-16  Peter Bartok  <pbartok@novell.com>
17806
17807         * TextControl.cs: Now properly aligns text on a baseline, using the
17808           new XplatUI.GetFontMetrics() method. Simplified several calculations
17809         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
17810           defined
17811
17812 2004-12-16  Peter Bartok  <pbartok@novell.com>
17813
17814         * XplatUI.cs: Added GetFontMetrics() method
17815         * XplatUIDriver.cs: Added GetFontMetrics() abstract
17816         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
17817           into libgdiplus, our private GetFontMetrics function
17818         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
17819         * XplatUIWin32.cs: Implemented GetFontMetrics() method
17820
17821 2004-12-16  Jackson Harper  <jackson@ximain.com>
17822
17823         * XplatUIStruct.cs: Add enum for dead keys
17824         * X11Keyboard.cs: Map and unmap dead keys.
17825
17826 2004-12-16  Jackson Harper  <jackson@ximian.com>
17827
17828         * X11Keyboard.cs: Detect and use the num lock mask.
17829
17830 2004-12-16  Peter Bartok  <pbartok@novell.com>
17831
17832         * Control.cs (CreateGraphics): Added check to make sure the
17833           handle of the window exists before calling Graphics.FromHwnd()
17834
17835 2004-12-16  Peter Bartok  <pbartok@novell.com>
17836
17837         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
17838           contains a lot of code that's not supposed to be there for the
17839           real thing, but required for developing/testing the textbox
17840           backend.
17841
17842 2004-12-16  Peter Bartok  <pbartok@novell.com>
17843
17844         * TextControl.cs:
17845         - Fixed Streamline method
17846         - Added FindTag method to Line
17847         - Added DumpTree method for debugging
17848         - Added DecrementLines() method for deleting lines
17849         - Fixed UpdateView to update the cursor to end-of-line on single-line
17850           updates
17851         - Added PositionCaret() method
17852         - Fixed MoveCaret(LineDown) to move into the last line, too
17853         - Added InsertChar overload
17854         - Fixed InsertChar tag offset calculations
17855         - Added DeleteChar() method
17856         - Added Combine() method for folding lines
17857         - Fixed Delete() method, no longer allocates wasted Line object and
17858           now copies all properties when swapping nodes
17859         - Delete() method now updates document line counter
17860
17861 2004-12-15  Jackson Harper  <jackson@ximian.com>
17862
17863         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
17864         * X11Keyboard.cs: Expose the currently selected modifier keys
17865         through a property.
17866
17867 2004-12-15  Peter Bartok  <pbartok@novell.com>
17868
17869         * TextControl.cs: Initial check-in. Still incomplete
17870
17871 2004-12-15  Jackson Harper  <jackson@ximian.com>
17872
17873         * TreeNode.cs:
17874         * TreeView.cs: Fix build on csc (second time today ;-))
17875
17876 2004-12-15  Jackson Harper  <jackson@ximian.com>
17877
17878         * TreeView.cs: Store the treenodes plus/minus box bounds when it
17879         is calculated and use this for click testing.
17880         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
17881
17882 2004-12-15  Jackson Harper  <jackson@ximian.com>
17883
17884         * TreeView.cs: Pass the nodes image index to the image list when
17885         drawing that image.
17886
17887 2004-12-15  Jackson Harper  <jackson@ximian.com>
17888
17889         * X11Keyboard.cs: Set messages hwnd.
17890         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
17891         post_message calls.
17892
17893 2004-12-15  Jackson Harper  <jackson@ximian.com>
17894
17895         * X11Keyboard.cs: Fix to compile with csc.
17896         
17897 2004-12-15  Jackson Harper  <jackson@ximian.com>
17898
17899         * X11Structs.cs: Add key mask values
17900         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
17901         * X11Keyboard.cs: New file - Extrapolates and interpolates key
17902         down/up foo into WM_CHAR foo
17903         * KeyboardLayouts.cs: Common keyboard layouts
17904         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
17905         post messages into the main queue.
17906
17907 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
17908
17909         * Button.cs: implement ProcessMnemonic
17910         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
17911           brushes everytime
17912         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
17913         * ButtonBase.cs: Show HotkeyPrefix (not the &)
17914
17915 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
17916         
17917         * MonthCalendar.cs: Implemented click-hold for next/previous month
17918           and date selection
17919           
17920 2004-12-11  Peter Bartok  <pbartok@novell.com>
17921
17922         * X11Structs.cs:
17923           - Added XKeyboardState (moved from XplatUIX11.cs)
17924           - Added XCreateGC related enums and structures
17925           - Added GXFunction for XSetFunction
17926
17927         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
17928
17929         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
17930           CaretVisible() calls
17931
17932         * ToolTip.cs: Added code to prevent stealing focus from app windows
17933
17934         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
17935           DestroyCaret, SetCaretPos and CaretVisible)
17936
17937         * XplatUIX11.cs:
17938           - Added implementation for caret functions
17939           - Moved hover variables into a struct, to make it a bit easier
17940             on the eyes and to debug
17941           - Removed XKeyboardState (moved to XplatUIX11.cs)
17942           - Moved Keyboard properties into the properties region
17943
17944         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
17945           call to get a graphics context for our control
17946
17947         * XplatUIOSX.cs: Added empty overrides for the new caret functions
17948
17949         * TreeView.cs: Fixed bug. No matter what color was set it would always
17950           return SystemColors.Window
17951
17952         * XplatUIWin32.cs: Implemented caret overrides
17953
17954 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
17955
17956         * ListBox.cs: fire events, implement missing methods and properties,
17957         sorting.
17958
17959 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
17960
17961         * MonthCalendar.cs: invalidation bug fixing
17962         * ThemeWin32Classic.cs: paint fixing
17963
17964 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
17965
17966         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
17967         prepare the CGContextRef there now.
17968
17969 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
17970
17971         * MonthCalendar.cs:
17972           - optimisationL only invalidate areas that have changed
17973         * ThemeWin32Classic.cs:
17974           - only paint parts that intersect with clip_area
17975
17976 2004-12-09  Peter Bartok  <pbartok@novell.com>
17977
17978         * Application.cs: Undid changes from r37004 which cause problems
17979         on X11
17980
17981 2004-12-09  Ravindra  <rkumar@novell.com>
17982
17983         * ToolBar.cs: Added support for displaying ContextMenu
17984         attached to a button on ToolBar.
17985         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
17986         property.
17987
17988 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17989
17990         * Label.cs: autosize works in text change and removes unnecessary
17991         invalidate
17992
17993 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17994
17995         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17996         remove warnings
17997
17998 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
17999
18000         * XplatUIOSX.cs: Added mouse move/click/grab support
18001         Remove some debugging WriteLines not needed anymore.
18002         Add window resizing/positioning.
18003         Fix visibility on reparenting.
18004
18005 2004-12-08  Peter Bartok  <pbartok@novell.com>
18006
18007         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
18008
18009 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
18010
18011         * XplatUIOSX.cs: Initial checkin
18012         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
18013
18014 2004-12-03  Ravindra <rkumar@novell.com>
18015
18016         * ListView.cs: Added some keybindings and fixed scrolling.
18017         ScrollBars listen to ValueChanged event instead of Scroll
18018         Event. This would let us take care of all changes being
18019         done in the scrollbars' values programmatically or manually.
18020         * ListView.cs (CanMultiselect): Added a check for shift key.
18021         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
18022         * ListViewItem.cs (Clone): Fixed. We need to make a copy
18023         of ListViewSubItemCollection as well.
18024
18025 2004-12-06  Peter Bartok <pbartok@novell.com>
18026
18027         * Control.cs (Parent): Added check and exception to prevent
18028         circular parenting
18029
18030 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
18031
18032         * ListBox.cs: implemented clipping, selection single and multiple,
18033         bug fixing
18034
18035 2004-12-03  Ravindra <rkumar@novell.com>
18036
18037         * ListView.cs (ListView_KeyDown):
18038         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
18039         when CTRL key is pressed.
18040         * ListViewItem.cs (Selected): Fixed setting the property.
18041
18042 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
18043
18044         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
18045
18046         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
18047         MinimizeBox, ShowInTaskbar, TopMost properties.
18048
18049         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
18050         will be implemented).
18051
18052 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
18053
18054         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
18055
18056         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
18057         tests.
18058         
18059         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
18060         
18061         * TreeView.cs: BackColor is Colors.Window.
18062
18063 2004-12-01  Jackson Harper  <jackson@ximian.com>
18064
18065         * TreeView.cs: When resizing the tree if the user is making it
18066         smaller we don't get expose events, so we need to handle adding
18067         the horizontal scrollbar in the size changed handler as well as
18068         the expose handler.
18069
18070 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
18071
18072         * DrawItemState.cs: fixes wrong enum values
18073
18074 2004-12-01  Jackson Harper  <jackson@ximian.com>
18075
18076         * TreeView.cs: Resize the hbar as well as the vbar on resize.
18077
18078 2004-12-01  Jackson Harper  <jackson@ximian.com>
18079
18080         * NodeLabelEditEventArgs.cs:
18081         * NodeLabelEditEventHandler.cs:
18082         * OpenTreeNodeEnumerator.cs:
18083         * TreeNode.cs:
18084         * TreeNodeCollection.cs:
18085         * TreeView.cs:
18086         * TreeViewAction.cs:
18087         * TreeViewCancelEventArgs.cs:
18088         * TreeViewCancelEventHandler.cs:
18089         * TreeViewEventArgs.cs:
18090         * TreeViewEventHandler.cs: Initial implementation.
18091
18092 2004-12-01  Ravindra <rkumar@novell.com>
18093
18094         * ListView.cs (CalculateListView): Fixed scrolling related
18095         calculations. Also, removed some debug statements from other
18096         places.
18097         * ListViewItem.cs: Changed access to 'selected' instance variable
18098         from private to internal.
18099         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
18100
18101 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
18102
18103         * ThemeWin32Classic.cs: remove cache of brush and pens for
18104         specific controls and use the global system, fixes scrollbutton
18105         bugs (for small sizes, disabled, etc)
18106         
18107         * ScrollBar.cs: does not show the thumb for very small controls
18108         (as MS) and allow smaller buttons that the regular size
18109
18110 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
18111
18112         * UpDownBase.cs: Add abstract methods for the interface.
18113         Add new virtual methods (need to be hooked up to TextEntry when it
18114         exists).
18115         Add override methods for most features.
18116         Computes the size, forces the height of the text entry.
18117
18118         * NumericUpDown.cs: Put here the current testing code.
18119
18120         * Set eol-style property on all files that do not have mixed line
18121         endings, to minimize the future problems.  There are still a few
18122         files with mixed endings, and someone should choose whether they
18123         want to move it or not.
18124
18125 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
18126
18127         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
18128         System.Colors
18129         
18130 2004-11-30  Ravindra <rkumar@novell.com>
18131
18132         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
18133         drawing and replaced use of SystemColors by theme colors.
18134         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
18135         * ListView.cs (ListViewItemCollection.Add): Throw exception when
18136         same ListViewItem is being added more than once.
18137
18138 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
18139
18140         * MonthCalendar.cs:
18141           - ControlStyles love to make the control not flicker
18142           
18143 2004-11-30  Peter Bartok  <pbartok@novell.com>
18144
18145         * CharacterCasing.cs: Added
18146
18147 2004-11-29  Peter Bartok  <pbartok@novell.com>
18148
18149         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
18150           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
18151           I am removing these files as they conflict with already completed
18152           work. While it is fantastic to get contributions to MWF, I
18153           respectfully ask that everyone please coordinate their contributions
18154           through mono-winforms-list or #mono-winforms at this time. We're
18155           explicitly avoiding stubbing and don't want controls that don't have
18156           their basic functionality implemented in svn. Please also see
18157           http://www.mono-project.com/contributing/winforms.html
18158
18159
18160 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
18161
18162         * Application.cs (ModalRun): Don't hang after exit.
18163
18164         * Theme.cs: New TreeViewDefaultSize property.
18165
18166         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
18167         with less hardcoded SystemColors constant.
18168         Implemented TreeViewDefaultSize.
18169
18170         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
18171         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
18172
18173
18174 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
18175
18176         * MonthCalendar.cs:
18177           - Fix NextMonthDate and PrevMonthDate click moving calendar
18178
18179 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
18180
18181         * MonthCalendar.cs:
18182           - Fix usage of ScrollChange Property when scrolling months
18183
18184 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
18185
18186         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
18187          - Fixes menu destroying
18188          - Support adding and removing items on already created menus
18189
18190 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
18191
18192         * MonthCalendar.cs:
18193           - Re-worked all bolded dates handling to match win32
18194         * ThemeWin32Classic.cs:
18195           - Fixed rendering with bolded dates
18196
18197 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
18198
18199         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
18200         - Horizontal scroolbar
18201         - Multicolumn
18202         - Fixes
18203
18204
18205 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
18206
18207         * MonthCalendar.cs:
18208           - Fix Usage of MaxSelectionCount from SelectionRange
18209           - Fixed Shift + Cursor Selection
18210           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
18211           - Fixed normal cursor selection to be compat with win32
18212           - Fixed Shift + Mouse Click selection
18213
18214 2004-11-24  Peter Bartok <pbartok@novell.com>
18215
18216         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
18217         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
18218         * XplatUIX11.cs:
18219           - CreatedKeyBoardMsg now updates keystate with Alt key
18220           - Added workaround for timer crash to CheckTimers, Jackson will
18221             develop a proper fix and check in later
18222           - Implemented DispatchMessage
18223           - Removed calling the native window proc from GetMessage (call
18224             now moved to DispatchMessage)
18225
18226         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
18227           the keydata (Fixes bug #69831)
18228
18229         * XplatUIWin32.cs:
18230           - (DispatchMessage): Switched to return IntPtr
18231           - Added DllImport for SetFocus
18232
18233 2004-11-24  Ravindra <rkumar@novell.com>
18234
18235         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
18236         background drawing.
18237         * ListViewItem.cs: Fixed various properties, calculations
18238         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
18239         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
18240         and some internal properties. Fixed MouseDown handler and Paint
18241         method.
18242
18243 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18244
18245         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
18246
18247 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18248
18249         * ContainerControl.cs: correct accidental check in of local changes
18250
18251 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18252
18253         * ThemeWin32Classic.cs:
18254                 - Fixed Drawing Last month in grid (sometimes not showing)
18255         * MonthCalendar.cs:
18256                 - Fixed title width calculation bug (makeing title small)
18257
18258 2004-11-23  Peter Bartok <pbartok@novell.com>
18259
18260         * XplatUIX11.cs:
18261           - Added generation of WM_MOUSEHOVER event
18262           - Added missing assignment of async_method atom
18263           - Fixed WM_ERASEBKGND; now only redraws the exposed area
18264
18265 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18266
18267         * ThemeWin32Classic.cs:
18268                 - Fixed Drawing of today circle when showtodaycircle not set
18269                 - fixed drawing of first and last month in the grid (gay dates)
18270         * MonthCalendar.cs:
18271                 - Fixed Drawing of today circle
18272                 - Fixed drawing of grady dates
18273                 - Fixed HitTest for today link when ShowToday set to false
18274                 - Fixed DefaultSize to obey ShowToday
18275
18276 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18277
18278         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
18279         * System.Windows.Forms/Theme.cs
18280         * MonthCalendar.cs: added for MonthCalendar
18281         * SelectionRange.cs: added for MonthCalendar
18282         * Day.cs: added for MonthCalendar: added for MonthCalendar
18283         * DateRangeEventArgs.cs: added for MonthCalendar
18284         * DateRangeEventHandler.cs: added for MonthCalendar
18285
18286 2004-11-22  Ravindra <rkumar@novell.com>
18287
18288         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
18289         property.
18290
18291 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
18292
18293         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
18294         event handler.
18295         
18296         * NumericUpDown.cs: Added new implementation.
18297         * UpDownBase.cs: Added new implementation.
18298
18299         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
18300         implementations.
18301         
18302         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
18303         implementations.
18304
18305         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
18306         methods.
18307
18308 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
18309
18310         * Timer.cs  (Dispose): Should call the base dispose when
18311         overriding.
18312
18313 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18314
18315         * ScrollBar.cs: updates thumb position when max, min or increment
18316         is changed
18317
18318 2004-11-21  Ravindra <rkumar@novell.com>
18319
18320         * ListView.cs: Implemented item selection, activation and
18321         column header style. Fixed properties to do a redraw, if
18322         required. Added support for MouseHover, DoubleClick, KeyDown
18323         and KeyUp event handling and some minor fixes.
18324         * ListViewItem.cs: Fixed constructor.
18325         * ThemeWin32Classic.cs: Improved drawing for ListView.
18326
18327 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18328
18329         * ThemeWin32Classic.cs: initial listbox drawing code
18330         * DrawMode.cs: new enumerator
18331         * ListControl.cs: stubbed class
18332         * ListBox.cs: initial implementation
18333         * Theme.cs: new methods definitions
18334         * SelectionMode.cs: new enumerator
18335
18336 2004-11-17  Peter Bartok  <pbartok@novell.com>
18337
18338         * XplatUIWin32.cs: Added double-click events to the class style
18339         * Control.cs (WndProc):
18340           - Added handling of click-count to MouseDown/ MouseUp events.
18341           - Added handling of middle and right mouse buttons
18342           - Removed old debug code
18343
18344 2004-11-17  Jackson Harper  <jackson@ximian.com>
18345
18346         * XplatUIX11.cs: Use the new Mono.Unix namespace.
18347
18348 2004-11-17  Ravindra <rkumar@novell.com>
18349
18350         * ListView.cs: Added event handling for MouseMove/Up/Down.
18351         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
18352         * ThemeWin32Classic.cs: We need to clear the graphics context and
18353         draw column header in a proper state.
18354
18355
18356 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
18357
18358         *  Menu.cs: fixes signature
18359
18360 2004-11-16  Peter Bartok  <pbartok@novell.com>
18361
18362         * XplatUIX11.cs (GetMessage): Implemented generation of
18363           double click mouse messages
18364
18365 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
18366
18367         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
18368         not by menu
18369
18370 2004-11-11  Peter Bartok  <pbartok@novell.com>
18371
18372         * HandleData.cs: Added Visible property
18373         * XplatUIX11.cs (IsVisible): Now uses Visible property from
18374           HandleData
18375         * XplatUIX11.cs: Removed old debug leftovers
18376         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
18377         * Control.cs (WndProc): Removed old debug leftovers,
18378           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
18379           needed WM_SIZE handling
18380
18381 2004-11-11  Jackson Harper  <jackson@ximian.com>
18382
18383         * OwnerDrawPropertyBag.cs:
18384         * TreeViewImageIndexConverter.cs: Initial implementation
18385
18386 2004-11-10  Jackson Harper  <jackson@ximian.com>
18387
18388         * ThemeWin32Classic.cs:
18389         * TabControl.cs: instead of moving tabs by the slider pos just
18390         start drawing at the tab that is offset by the slider. This way
18391         scrolling always moves by exactly one tab.
18392
18393 2004-11-10  Jackson Harper  <jackson@ximian.com>
18394
18395         * TabControl.cs: You can only scroll left when the slider has
18396         already ben moved right.
18397         
18398 2004-11-10  Jackson Harper  <jackson@ximian.com>
18399
18400         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
18401         the clip area.
18402         
18403 2004-11-10  Jackson Harper  <jackson@ximian.com>
18404
18405         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
18406         clip area.
18407         
18408 2004-11-09  Jackson Harper  <jackson@ximian.com>
18409
18410         * TabControl.cs (CalcXPos): New helper method so we can determine
18411         the proper place to start drawing vertical tabs.
18412         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
18413         
18414 2004-11-09  Jackson Harper  <jackson@ximian.com>
18415
18416         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
18417         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
18418         and Bottom, left and right are illegal values for this and
18419         multiline is enabled when the alignment is set to left or right.
18420         (DrawTab): Each alignment block should draw the text itself now
18421         because Left requires special love. Also add rendering for Left
18422         aligned tabs.
18423         
18424 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
18425
18426         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
18427         does not destroy the windows, removes debugging messages
18428
18429 2004-11-09  jba  <jba-mono@optusnet.com.au>
18430
18431         * ThemeWin32Classic.cs
18432         (DrawButtonBase): Fix verticle text rect clipping in windows
18433         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18434         rendering and incorrect text rect clipping
18435         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18436         rendering and incorrect text rect clipping
18437         
18438 2004-11-08  Jackson Harper  <jackson@ximian.com>
18439
18440         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
18441         bottom when they are bottom aligned so the bottoms of the tabs get
18442         displayed.
18443         * TabControl.cs (DropRow): Move rows up instead of down when the
18444         tab control is bottom aligned.
18445
18446 2004-11-08 13:59  pbartok
18447
18448         * XplatUIX11.cs:
18449           - Added handling for various window styles
18450           - Added handling for popup windows
18451           - Added SetTopmost handling
18452
18453 2004-11-08 13:55  pbartok
18454
18455         * XplatUIWin32.cs:
18456           - Added argument to SetTopmost method
18457           - Fixed broken ClientToScreen function
18458
18459 2004-11-08 13:53  pbartok
18460
18461         * XplatUIStructs.cs:
18462           - Added missing WS_EX styles
18463
18464 2004-11-08 13:53  pbartok
18465
18466         * XplatUI.cs, XplatUIDriver.cs:
18467           - Added argument to SetTopmost
18468
18469 2004-11-08 13:52  pbartok
18470
18471         * X11Structs.cs:
18472           - Added XSetWindowAttributes structure
18473           - Improved XWindowAttributes structure
18474           - Added SetWindowValuemask enum
18475           - Added window creation arguments enum
18476           - Added gravity enum
18477           - Added Motif hints structure
18478           - Added various Motif flags and enums
18479           - Added PropertyMode enum for property functions
18480
18481 2004-11-08 13:50  pbartok
18482
18483         * Form.cs:
18484           - Fixed arguments for updated SetTopmost method
18485
18486 2004-11-08 13:49  pbartok
18487
18488         * ToolTip.cs:
18489           - Fixed arguments for updated SetTopmost function
18490           - Fixed usage of PointToClient
18491
18492 2004-11-08 13:44  pbartok
18493
18494         * MenuAPI.cs:
18495           - Added Clipping of children and siblings
18496
18497 2004-11-08 13:41  pbartok
18498
18499         * MainMenu.cs:
18500           - Removed SetMenuBarWindow call. We do this in Form.cs
18501
18502 2004-11-08 13:40  jackson
18503
18504         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
18505           scrolling jimmi in the correct location with bottom aligned tabs
18506
18507 2004-11-08 13:36  pbartok
18508
18509         * ContainerControl.cs:
18510           - Implemented BindingContext
18511           - Implemented ParentForm
18512
18513 2004-11-08 12:46  jackson
18514
18515         * TabControl.cs: Put bottom rendered tabs in the right location
18516
18517 2004-11-08 07:15  jordi
18518
18519         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
18520           removes dead code
18521
18522 2004-11-05 17:30  jackson
18523
18524         * TabControl.cs: When selected tabs are expanded make sure they
18525           don't go beyond the edges of the tab control
18526
18527 2004-11-05 14:57  jackson
18528
18529         * TabControl.cs: Reset show_slider so if the control is resized to
18530           a size where it is no longer needed it's not displayed anymore
18531
18532 2004-11-05 13:16  jackson
18533
18534         * TabControl.cs: Make tab pages non visible when added to the
18535           control
18536
18537 2004-11-05 12:42  jackson
18538
18539         * TabControl.cs: Implement SizeMode.FillToRight
18540
18541 2004-11-05 12:16  jackson
18542
18543         * Control.cs: Do not call CreateHandle if the handle is already
18544           created
18545
18546 2004-11-05 11:46  jackson
18547
18548         * TabControl.cs: Remove superflous call to CalcTabRows
18549
18550 2004-11-05 09:07  jackson
18551
18552         * XplatUIX11.cs: Update for Mono.Posix changes
18553
18554 2004-11-05 07:00  ravindra
18555
18556         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
18557           scrolling.
18558
18559 2004-11-04 22:47  jba
18560
18561         * ThemeWin32Classic.cs:
18562           - Fix Button rendering for FlatStyle = Flat or Popup
18563           - Fix RadioButton and CheckBox rendering when Appearance = Button
18564             (normal and flatstyle).
18565           - Correct outer rectangle color when drawing focus rectangle
18566           - Adjust button bounds to be 1 px smaller when focused
18567           - Make button not draw sunken 3d border when pushed (windows compat)
18568           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
18569           - Offset the text in RadioButton and Checkbox when being rendered as
18570           a button.
18571           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
18572           radiobuttons
18573           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
18574           - Fixed disabled text rendering for normally rendered radiobuttons
18575
18576 2004-11-04 10:26  jackson
18577
18578         * TabControl.cs: Recalculate tab rows when resizing
18579
18580 2004-11-04 07:47  jordi
18581
18582         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
18583           collection completion, drawing issues, missing features
18584
18585 2004-11-04 05:03  ravindra
18586
18587         * ScrollBar.cs:
18588                 - We need to recalculate the Thumb area when
18589                 LargeChange/maximum/minimum values are changed.
18590           - We set the 'pos' in UpdatePos() method to minimum, if it's less
18591                 than minimum. This is required to handle the case if large_change is
18592                 more than max, and use LargeChange property instead of large_change
18593                 variable.
18594           - We return max+1 when large_change is more than max, like MS does.
18595
18596 2004-11-04 04:29  ravindra
18597
18598         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
18599                 - Changed default value signatures (prefixed all with ListView).
18600                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
18601                 ListView.
18602           - Fixed calculations for ListViewItem and implemented Clone()
18603           method.
18604
18605 2004-11-04 04:26  ravindra
18606
18607         * Theme.cs, ThemeWin32Classic.cs:
18608                 - Changed default ListView values signatures (prefixed all with
18609                 ListView).
18610           - Fixed default size values for VScrollBar and HScrollBar.
18611                 - Fixed DrawListViewItem method.
18612
18613 2004-11-04 04:05  ravindra
18614
18615         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
18616
18617 2004-11-04 04:04  ravindra
18618
18619         * ImageList.cs: Implemented the missing overload for Draw method.
18620
18621 2004-11-03 19:29  jackson
18622
18623         * TabControl.cs: Handle dropping rows on selection properly
18624
18625 2004-11-03 11:59  jackson
18626
18627         * TabControl.cs: remove debug code
18628
18629 2004-11-03 11:52  jackson
18630
18631         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
18632           the scrolly widgerywoo
18633
18634 2004-11-02 13:52  jackson
18635
18636         * TabControl.cs: Resize the tab pages and tabs when the tab control
18637           is resized
18638
18639 2004-11-02 13:40  jackson
18640
18641         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
18642           selected tab to the bottom
18643
18644 2004-11-02 13:39  jackson
18645
18646         * TabPage.cs: Store the tab pages row
18647
18648 2004-11-02 12:33  jordi
18649
18650         * MenuItem.cs: fixes handle creation
18651
18652 2004-11-02 11:42  jackson
18653
18654         * TabControl.cs: signature fix
18655
18656 2004-11-02 08:56  jackson
18657
18658         * TabControl.cs: Calculate whether the tab is on an edge properly.
18659           Remove top secret debugging code
18660
18661 2004-11-01 19:57  jackson
18662
18663         * TabControl.cs: Add click handling, and proper sizing
18664
18665 2004-11-01 19:47  jackson
18666
18667         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
18668           tab controls
18669
18670 2004-11-01 19:39  jackson
18671
18672         * TabPage.cs: add internal property to store the bounds of a tab
18673           page
18674
18675 2004-10-30 04:23  ravindra
18676
18677         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
18678           values.
18679
18680 2004-10-30 04:21  ravindra
18681
18682         * ListView.cs, ListViewItem.cs: Added support for scrolling and
18683           fixed calculations.
18684
18685 2004-10-30 03:06  pbartok
18686
18687         * XplatUIX11.cs:
18688           - Removed extension of DllImported libs
18689
18690 2004-10-29 09:55  jordi
18691
18692         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
18693           navigation, itemcollection completion, menu fixes
18694
18695 2004-10-27 22:58  pbartok
18696
18697         * XplatUIX11.cs:
18698           - Now throws a nice error message when no X display could be opened
18699
18700 2004-10-26 13:51  jordi
18701
18702         * ListView.cs: removes warning
18703
18704 2004-10-26 03:55  ravindra
18705
18706         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
18707           ThemeWin32Classic.cs: Some formatting for my last checkins.
18708
18709 2004-10-26 03:36  ravindra
18710
18711         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
18712           control and default values.
18713
18714 2004-10-26 03:35  ravindra
18715
18716         * Theme.cs: Added some default values for ListView control.
18717
18718 2004-10-26 03:33  ravindra
18719
18720         * ToolBar.cs: ToolBar should use the user specified button size, if
18721           there is any. Added a size_specified flag for the same.
18722
18723 2004-10-26 03:33  ravindra
18724
18725         * ColumnHeader.cs: Added some internal members and calculations for
18726           ColumnHeader.
18727
18728 2004-10-26 03:32  ravindra
18729
18730         * ListViewItem.cs: Calculations for ListViewItem.
18731
18732 2004-10-26 03:31  ravindra
18733
18734         * ListView.cs: Added some internal members and calculations for
18735           ListView.
18736
18737 2004-10-22 13:31  jordi
18738
18739         * MenuAPI.cs: speedup menus drawing
18740
18741 2004-10-22 13:16  jackson
18742
18743         * XplatUIX11.cs: Make sure to update exposed regions when adding an
18744           expose event
18745
18746 2004-10-22 11:49  jackson
18747
18748         * Control.cs: oops
18749
18750 2004-10-22 11:41  jackson
18751
18752         * Control.cs: Check to see if the window should have its background
18753           repainted by X when drawing.
18754
18755 2004-10-22 11:31  jackson
18756
18757         * XplatUIX11.cs: When invalidating areas only use XClearArea if
18758           clear is true, this way we do not get flicker from X repainting the
18759           background
18760
18761 2004-10-22 11:28  jackson
18762
18763         * XEventQueue.cs: Queue properly
18764
18765 2004-10-21 09:38  jackson
18766
18767         * XEventQueue.cs: Fix access modifier
18768
18769 2004-10-21 09:36  jackson
18770
18771         * XEventQueue.cs: Don't loose messages
18772
18773 2004-10-21 09:22  jackson
18774
18775         * XEventQueue.cs: Don't loose messages
18776
18777 2004-10-20 04:15  jordi
18778
18779         * BootMode.cs: enum need it by SystemInfo
18780
18781 2004-10-19 21:58  pbartok
18782
18783         * XplatUIWin32.cs:
18784           - Small sanity check
18785
18786 2004-10-19 21:56  pbartok
18787
18788         * Form.cs:
18789           - Added private FormParentWindow class which acts as the container
18790             for our form and as the non-client area where menus are drawn
18791           - Added/Moved required tie-ins to Jordi's menus
18792           - Fixed/Implemented the FormStartPosition functionality
18793
18794 2004-10-19 21:52  pbartok
18795
18796         * Control.cs:
18797           - Removed unneeded locals
18798           - Added code to all size and location properties to understand and
18799             deal with the parent container of Form
18800
18801 2004-10-19 21:33  pbartok
18802
18803         * Application.cs:
18804           - Fixed to deal with new Form subclasses for menus
18805
18806 2004-10-19 17:48  jackson
18807
18808         * XEventQueue.cs: commit correct version of file
18809
18810 2004-10-19 16:50  jackson
18811
18812         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
18813
18814 2004-10-19 16:15  jordi
18815
18816         * MenuAPI.cs: MenuBarCalcSize returns the height
18817
18818 2004-10-19 08:31  pbartok
18819
18820         * Control.cs:
18821           - Added missing call to PreProcessMessage before calling OnXXXKey
18822           methods
18823
18824 2004-10-19 00:04  ravindra
18825
18826         * ToolTip.cs: Fixed constructor.
18827
18828 2004-10-18 09:31  jordi
18829
18830         * MenuAPI.cs: menuitems in menubars do not have shortcuts
18831
18832 2004-10-18 09:26  jordi
18833
18834         * MenuItem.cs: fixes MenuItem class signature
18835
18836 2004-10-18 08:56  jordi
18837
18838         * MenuAPI.cs: prevents windows from showing in the taskbar
18839
18840 2004-10-18 00:28  ravindra
18841
18842         * ToolTip.cs: Suppressed a warning message.
18843
18844 2004-10-18 00:27  ravindra
18845
18846         * Control.cs: Default value of visible property must be true.
18847
18848 2004-10-17 23:19  pbartok
18849
18850         * ToolTip.cs:
18851           - Complete implementation
18852
18853 2004-10-17 23:19  pbartok
18854
18855         * XplatUIX11.cs:
18856           - Added EnableWindow method
18857           - Added SetModal stub
18858           - Added generation of WM_ACTIVATE message (still needs testing)
18859           - Added SetTopMost stub
18860           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
18861
18862 2004-10-17 23:17  pbartok
18863
18864         * XplatUIWin32.cs:
18865           - Removed VirtualKeys to XplatUIStructs
18866           - Implemented SetTopMost method
18867           - Implemented EnableWindow method
18868           - Bugfix in ScreenToClient()
18869           - Bugfixes in ClientToScreen()
18870
18871 2004-10-17 22:51  pbartok
18872
18873         * XplatUIStructs.cs:
18874           - Added WS_EX styles to WindowStyles enumeration
18875
18876 2004-10-17 22:50  pbartok
18877
18878         * XplatUI.cs, XplatUIDriver.cs:
18879           - Added method for enabling/disabling windows
18880           - Added method for setting window modality
18881           - Added method for setting topmost window
18882
18883 2004-10-17 22:49  pbartok
18884
18885         * ThemeWin32Classic.cs:
18886           - Added ToolTip drawing code
18887
18888 2004-10-17 22:49  pbartok
18889
18890         * Theme.cs:
18891           - Added ToolTip abstracts
18892
18893 2004-10-17 22:47  pbartok
18894
18895         * Form.cs:
18896           - Fixed Form.ControlCollection to handle owner relations
18897           - Added Owner/OwnedForms handling
18898           - Implemented Z-Ordering for owned forms
18899           - Removed unneeded private overload of ShowDialog
18900           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
18901             so I hope)
18902           - Fixed Close(), had wrong default
18903           - Added firing of OnLoad event
18904           - Added some commented out debug code for Ownership handling
18905
18906 2004-10-17 22:16  pbartok
18907
18908         * Control.cs:
18909           - Fixed/implemented flat list of controls
18910
18911 2004-10-17 22:14  pbartok
18912
18913         * Application.cs:
18914           - Added code to simulate modal dialogs on Win32
18915
18916 2004-10-17 16:11  jordi
18917
18918         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
18919           mouse event
18920
18921 2004-10-17 13:39  jordi
18922
18923         * MenuAPI.cs: menu drawing fixes
18924
18925 2004-10-15 09:10  ravindra
18926
18927         * StructFormat.cs: General Enum.
18928
18929 2004-10-15 09:09  ravindra
18930
18931         * SizeGripStyle.cs: Enum for Form.
18932
18933 2004-10-15 09:08  ravindra
18934
18935         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
18936           in Theme for ListView.
18937
18938 2004-10-15 09:06  ravindra
18939
18940         * ColumnHeader.cs: Flushing some formatting changes.
18941
18942 2004-10-15 09:05  ravindra
18943
18944         * ListViewItem.cs: Implemented GetBounds method and fixed coding
18945           style.
18946
18947 2004-10-15 09:03  ravindra
18948
18949         * ListView.cs: Implemented Paint method and fixed coding style.
18950
18951 2004-10-15 07:34  jordi
18952
18953         * MenuAPI.cs: fix for X11
18954
18955 2004-10-15 07:32  ravindra
18956
18957         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
18958                 - Renamed Paint() method to Draw() for clarity. Also, moved
18959                 DrawImage() to OnPaint().
18960
18961 2004-10-15 07:25  ravindra
18962
18963         * CheckBox.cs, RadioButton.cs:
18964                 - Removed Redraw (), we get it from ButtonBase.
18965                 - Implemented Paint (), to do class specific painting.
18966
18967 2004-10-15 07:16  ravindra
18968
18969         * ButtonBase.cs:
18970                 - Redraw () is not virtual now.
18971                 - Added an internal virtual method Paint (), so that
18972                 derived classes can do their painting on their own.
18973                 - Modified OnPaint () to call Paint ().
18974
18975 2004-10-15 06:43  jordi
18976
18977         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
18978           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
18979
18980 2004-10-15 00:30  ravindra
18981
18982         * MessageBox.cs:
18983                 - MessageBox on windows does not have min/max buttons.
18984                 This change in CreateParams fixes this on Windows. We
18985                 still need to implement this windowstyle behavior in
18986                 our X11 driver.
18987
18988 2004-10-14 05:14  ravindra
18989
18990         * ToolBar.cs:
18991                 - Changed Redraw () to do a Refresh () always.
18992                 - Fixed the MouseMove event handling when mouse is pressed,
18993                 ie drag event handling.
18994                 - Replaced the usage of ToolBarButton.Pressed property to
18995                 ToolBarButton.pressed internal variable.
18996
18997 2004-10-14 05:10  ravindra
18998
18999         * ToolBarButton.cs:
19000                 - Added an internal member 'inside' to handle mouse move
19001                 with mouse pressed ie mouse drag event.
19002                 - Changed 'Pressed' property to return true only when
19003                 'inside' and 'pressed' are both true.
19004                 - Some coding style love.
19005
19006 2004-10-14 00:17  ravindra
19007
19008         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
19009           public method.
19010
19011 2004-10-14 00:15  ravindra
19012
19013         * ButtonBase.cs: Redraw () related improvements.
19014
19015 2004-10-14 00:14  ravindra
19016
19017         * MessageBox.cs: Moved InitFormSize () out of Paint method and
19018           removed unnecessary calls to Button.Show () method.
19019
19020 2004-10-13 17:50  pbartok
19021
19022         * XplatUIX11.cs:
19023           - Formatting fix
19024           - Removed destroying of window until we solve the problem of X
19025             destroying the window before us on shutdown
19026
19027 2004-10-13 16:32  pbartok
19028
19029         * ButtonBase.cs:
19030           - Now Redraws on MouseUp for FlatStyle Flat and Popup
19031
19032 2004-10-13 14:18  pbartok
19033
19034         * XplatUIX11.cs:
19035           - Added code to destroy the X window
19036
19037 2004-10-13 14:18  pbartok
19038
19039         * XplatUIWin32.cs:
19040           - Added code to destroy a window
19041
19042 2004-10-13 14:12  pbartok
19043
19044         * ButtonBase.cs:
19045           - Added the Redraw on Resize that got dropped in the last rev
19046
19047 2004-10-13 09:06  pbartok
19048
19049         * ThemeWin32Classic.cs:
19050           - Path from John BouAntoun:
19051             * Fix check rendering (centre correctly for normal style, offset
19052               correctly for FlatStyle).
19053             * Fix border color usage (use backcolor) for FlatStyle.Popup
19054             * Use checkbox.Capture instead of checkbox.is_pressed when
19055               rendering flatstyle states.
19056
19057 2004-10-12 21:48  pbartok
19058
19059         * ThemeWin32Classic.cs:
19060           - Removed all occurences of SystemColors and replaced them with the
19061             matching theme color
19062
19063 2004-10-12 21:41  pbartok
19064
19065         * ThemeWin32Classic.cs:
19066           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
19067             him using the function for flatstyle drawing
19068           - Changed functions to use the new version of CPDrawBorder3D
19069
19070 2004-10-12 21:15  pbartok
19071
19072         * ControlPaint.cs:
19073           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
19074             match MS documentation. They need to return defined colors if the
19075             passed color matches the configured control color. Thanks to John
19076             BouAntoun for pointing this out.
19077
19078 2004-10-12 20:57  pbartok
19079
19080         * Control.cs:
19081           - Fix from John BouAntoun: Raise ForeColorChanged event when text
19082             color is changed
19083
19084 2004-10-12 20:46  pbartok
19085
19086         * CheckBox.cs:
19087           - Fix from John BouAntoun: Now properly sets the Appearance property
19088
19089 2004-10-12 20:45  pbartok
19090
19091         * ThemeWin32Classic.cs:
19092           - Fixes from John BouAntoun: now handles forecolors and backcolors
19093             for flatstyle rendered controls much better; It also fixes normal
19094             checkbox rendering when pushed or disabled.
19095
19096 2004-10-08 02:50  jordi
19097
19098         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
19099           work
19100
19101 2004-10-07 08:56  jordi
19102
19103         * ThemeWin32Classic.cs: Removes deletion of cached brushes
19104
19105 2004-10-06 03:59  jordi
19106
19107         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
19108           XplatUIWin32.cs: removes warnings from compilation
19109
19110 2004-10-05 12:23  jackson
19111
19112         * RadioButton.cs: Fix ctor
19113
19114 2004-10-05 11:10  pbartok
19115
19116         * MessageBox.cs:
19117           - Partial implementation by Benjamin Dasnois
19118
19119 2004-10-05 10:15  jackson
19120
19121         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
19122           by John BouAntoun
19123
19124 2004-10-05 03:07  ravindra
19125
19126         * ToolBar.cs:
19127                 - Removed a private method, Draw ().
19128                 - Fixed the ButtonDropDown event handling.
19129                 - Fixed MouseMove event handling.
19130
19131 2004-10-05 03:04  ravindra
19132
19133         * ThemeWin32Classic.cs:
19134                 - Added DrawListView method and ListViewDefaultSize property.
19135                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
19136                 - Changed DOS style CRLF to Unix format (dos2unix).
19137
19138 2004-10-05 03:03  ravindra
19139
19140         * Theme.cs:
19141                 - Added DrawListView method and ListViewDefaultSize property.
19142
19143 2004-10-05 02:42  ravindra
19144
19145         * ToolBarButton.cs: Added an internal member dd_pressed to handle
19146           clicks on DropDown arrow.
19147
19148 2004-10-04 22:56  jackson
19149
19150         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
19151           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
19152           Control handle the buffers, derived classes should not have to
19153           CreateBuffers themselves.
19154
19155 2004-10-04 21:20  jackson
19156
19157         * StatusBar.cs: The control handles resizing the buffers now.
19158
19159 2004-10-04 21:18  jackson
19160
19161         * Control.cs: When resizing the buffers should be invalidated. This
19162           should be handled in Control not in derived classes.
19163
19164 2004-10-04 14:45  jackson
19165
19166         * TabPage.cs: oops
19167
19168 2004-10-04 02:14  pbartok
19169
19170         * LeftRightAlignment.cs:
19171           - Initial check-in
19172
19173 2004-10-04 01:09  jordi
19174
19175         * ThemeWin32Classic.cs: fixes right button position causing right
19176           button not showing on horizontal scrollbars
19177
19178 2004-10-02 13:12  pbartok
19179
19180         * XplatUIX11.cs:
19181           - Simplified the Invalidate method by using an X call instead of
19182             generating the expose ourselves
19183           - Added an expose when the window background is changed
19184           - Implemented ClientToScreen method
19185
19186 2004-10-02 13:08  pbartok
19187
19188         * XplatUIWin32.cs:
19189           - Added Win32EnableWindow method (test for implementing modal
19190           dialogs)
19191           - Added ClientToScreen method and imports
19192
19193 2004-10-02 13:07  pbartok
19194
19195         * XplatUI.cs, XplatUIDriver.cs:
19196           - Added ClientToScreen coordinate translation method
19197
19198 2004-10-02 13:06  pbartok
19199
19200         * KeyPressEventArgs.cs:
19201           - Fixed access level for constructor
19202
19203 2004-10-02 13:06  pbartok
19204
19205         * NativeWindow.cs:
19206           - Changed access level for the window_collection hash table
19207
19208 2004-10-02 13:05  pbartok
19209
19210         * Form.cs:
19211           - Added KeyPreview property
19212           - Added Menu property (still incomplete, pending Jordi's menu work)
19213           - Implemented ProcessCmdKey
19214           - Implemented ProcessDialogKey
19215           - Implemented ProcessKeyPreview
19216
19217 2004-10-02 13:02  pbartok
19218
19219         * Control.cs:
19220           - Added private method to get the Control object from the window
19221           handle
19222           - Implemented ContextMenu property
19223           - Implemented PointToScreen
19224           - Implemented PreProcessMessage
19225           - Implemented IsInputChar
19226           - Implemented IsInputKey
19227           - Implemented ProcessCmdKey
19228           - Completed ProcessKeyEventArgs
19229           - Fixed message loop to call the proper chain of functions on key
19230           events
19231           - Implemented ProcessDialogChar
19232           - Implemented ProcessDialogKey
19233           - Implemented ProcessKeyMessage
19234           - Implemented ProcessKeyPreview
19235           - Added RaiseDragEvent stub (MS internal method)
19236           - Added RaiseKeyEvent stub (MS internal method)
19237           - Added RaiseMouseEvent stub (MS Internal method)
19238           - Added RaisePaintEvent stub (MS Internal method)
19239           - Added ResetMouseEventArgs stub (MS Internal method)
19240           - Implemented RtlTranslateAlignment
19241           - Implemented RtlTranslateContent
19242           - Implemented RtlTranslateHorizontal
19243           - Implemented RtlTranslateLeftRight
19244           - Added generation of KeyPress event
19245
19246 2004-10-02 05:57  ravindra
19247
19248         * ListViewItem.cs: Added attributes.
19249
19250 2004-10-02 05:32  ravindra
19251
19252         * ListView.cs: Added attributes.
19253
19254 2004-10-01 11:53  jackson
19255
19256         * Form.cs: Implement the Close method so work on MessageBox can
19257           continue.
19258
19259 2004-09-30 14:06  pbartok
19260
19261         * XplatUIX11.cs:
19262           - Bug fixes
19263
19264 2004-09-30 11:34  jackson
19265
19266         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
19267
19268 2004-09-30 07:26  ravindra
19269
19270         * ListViewItemConverter.cs: Converter for ListViewItem.
19271
19272 2004-09-30 07:26  ravindra
19273
19274         * SortOrder.cs: Enum for ListView control.
19275
19276 2004-09-30 07:25  ravindra
19277
19278         * ColumnHeader.cs: Supporting class for ListView control.
19279
19280 2004-09-30 07:24  ravindra
19281
19282         * ListView.cs, ListViewItem.cs: Initial implementation.
19283
19284 2004-09-30 07:20  ravindra
19285
19286         * ItemActivation.cs: Enum for ListView Control.
19287
19288 2004-09-29 20:29  pbartok
19289
19290         * XplatUIX11.cs:
19291           - Added lookup of pixel value for background color; tries to get a
19292             color 'close' to the requested color, it avoids having to create a
19293             colormap.  Depending on the display this could mean the used color
19294             is slightly off the desired color. Might have to change it to a more
19295             resource intensive colormap approach, but it will work as a
19296           workaround to avoid red screens.
19297
19298 2004-09-29 14:27  jackson
19299
19300         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
19301
19302 2004-09-28 12:44  pbartok
19303
19304         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
19305           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
19306           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
19307           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
19308           TrackBar.cs, VScrollBar.cs:
19309           - Streamlined Theme interfaces:
19310             * Each DrawXXX method for a control now is passed the object for
19311               the control to be drawn in order to allow accessing any state the
19312               theme might require
19313
19314             * ControlPaint methods for the theme now have a CP prefix to avoid
19315               name clashes with the Draw methods for controls
19316
19317             * Every control now retrieves it's DefaultSize from the current
19318             theme
19319
19320 2004-09-28 12:17  jackson
19321
19322         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
19323           drawing
19324
19325 2004-09-24 14:57  jackson
19326
19327         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
19328           Gives us a nice little performance boost.
19329
19330 2004-09-24 12:02  jackson
19331
19332         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
19333           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
19334           Control and supporting classes. Initial checkin
19335
19336 2004-09-23 13:08  jackson
19337
19338         * Form.cs: Temp build fixage
19339
19340 2004-09-23 01:39  ravindra
19341
19342         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
19343           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
19344           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
19345           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
19346           EventHandlers needed by ListView Control.
19347
19348 2004-09-22 14:12  pbartok
19349
19350         * ScrollableControl.cs:
19351           - Implemented DockPadding property
19352           - Implemented AutoScroll property
19353           - Implemented AutoScrollMargin property
19354           - Implemented AutoScrollMinSize property
19355           - Implemented AutoScrollPosition property
19356           - Implemented DisplayRectangle property (still incomplete)
19357           - Implemented CreateParams property
19358           - Implemented HScroll property
19359           - Implemented VScroll property
19360           - Implemented OnVisibleChanged property
19361
19362 2004-09-22 14:09  pbartok
19363
19364         * Form.cs:
19365           - Added Form.ControllCollection class
19366           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
19367             RemoveOwnedForm (still incomplete, missing on-top and common
19368             minimize/maximize behaviour)
19369           - Added StartPosition property (still incomplete, does not use when
19370             creating the form)
19371           - Added ShowDialog() methods (still incomplete, missing forcing the
19372             dialog modal)
19373
19374 2004-09-22 14:05  pbartok
19375
19376         * Application.cs:
19377           - Added message loop for modal dialogs
19378
19379 2004-09-22 14:02  pbartok
19380
19381         * GroupBox.cs:
19382           - Fixed wrong types for events
19383
19384 2004-09-22 14:00  pbartok
19385
19386         * Shortcut.cs, FormWindowState.cs:
19387           - Fixed wrong values
19388
19389 2004-09-22 12:01  jackson
19390
19391         * Control.cs: Text is never null
19392
19393 2004-09-20 22:14  pbartok
19394
19395         * XplatUIWin32.cs:
19396           - Fixed accessibility level for Idle handler
19397
19398 2004-09-20 18:54  jackson
19399
19400         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19401           XplatUIX11.cs: New message loop that uses poll so we don't get a
19402           busy loop
19403
19404 2004-09-17 10:43  pbartok
19405
19406         * ScrollBar.cs:
19407           - Fixed behaviour of arrow buttons. Now properly behaves like
19408             Buttons (and like Microsoft's scrollbar arrow buttons)
19409
19410 2004-09-17 10:14  pbartok
19411
19412         * ScrollBar.cs:
19413           - Added missing release of keyboard/mouse capture
19414
19415 2004-09-17 06:18  jordi
19416
19417         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
19418           Theme.cs: Very early menu support
19419
19420 2004-09-16 17:45  pbartok
19421
19422         * XplatUIWin32.cs:
19423           - Fixed sending a window to the front
19424           - Added overload for SetWindowPos to avoid casting
19425
19426 2004-09-16 17:44  pbartok
19427
19428         * Control.cs:
19429           - Added SendToBack and BringToFront methods
19430
19431 2004-09-16 07:00  ravindra
19432
19433         * Copyright: Added Novell URL.
19434
19435 2004-09-16 07:00  ravindra
19436
19437         * ToolBar.cs: Invalidate should be done before redrawing.
19438
19439 2004-09-15 21:19  ravindra
19440
19441         * ColumnHeaderStyle.cs: Enum for ListView Control.
19442
19443 2004-09-15 21:18  ravindra
19444
19445         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
19446           ListView Control.
19447
19448 2004-09-13 18:26  jackson
19449
19450         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
19451           properly
19452
19453 2004-09-13 18:13  jackson
19454
19455         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
19456           a second thread and post messages into the main threads message
19457           queue. This makes timing much more consistent. Both win2K and XP
19458           have a minimum timer value of 15 milliseconds, so we now do this
19459           too.
19460
19461 2004-09-13 15:18  pbartok
19462
19463         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19464           XplatUIX11.cs:
19465           - Added Z-Ordering methods
19466
19467 2004-09-13 10:56  pbartok
19468
19469         * Form.cs:
19470           - Fixed #region names
19471           - Moved properties and methods into their proper #regions
19472
19473 2004-09-13 10:51  pbartok
19474
19475         * Form.cs:
19476           - Added Accept and CancelButton properties
19477           - Added ProcessDialogKey() method
19478
19479 2004-09-13 08:18  pbartok
19480
19481         * IWindowTarget.cs:
19482           - Initial check-in
19483
19484 2004-09-10 21:50  pbartok
19485
19486         * Control.cs:
19487           - Added DoDragDrop() [incomplete]
19488           - Properly implemented 'Visible' handling
19489           - Added SetVisibleCore()
19490           - Implemented FindChildAtPoint()
19491           - Implemented GetContainerControl()
19492           - Implemented Hide()
19493
19494 2004-09-10 19:28  pbartok
19495
19496         * Control.cs:
19497           - Moved methods into their appropriate #regions
19498           - Reordered methods within regions alphabetically
19499
19500 2004-09-10 18:57  pbartok
19501
19502         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19503           - Added method to retrieve text from window
19504
19505 2004-09-10 18:56  pbartok
19506
19507         * Control.cs:
19508           - Moved some internal functions into the internal region
19509           - Implemented FontHeight
19510           - Implemented RenderRightToLeft
19511           - Implemented ResizeRedraw
19512           - Implemented ShowFocusCues
19513           - Implemented ShowKeyboardCues
19514           - Implemented FromChildHandle
19515           - Implemented FromHandle
19516           - Implemented IsMnemonic
19517           - Implemented ReflectMessage
19518           - All public and protected Static Methods are now complete
19519
19520 2004-09-10 16:54  pbartok
19521
19522         * Control.cs:
19523           - Implemented remaining missing public instance properties
19524           - Alphabetized some out of order properties
19525
19526 2004-09-10 05:51  ravindra
19527
19528         * PictureBox.cs: Added a check for null image.
19529
19530 2004-09-10 00:59  jordi
19531
19532         * GroupBox.cs: remove cvs tag
19533
19534 2004-09-09 05:25  ravindra
19535
19536         * ToolBar.cs: Make redraw accessible from ToolBarButton.
19537
19538 2004-09-09 05:23  ravindra
19539
19540         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
19541           parent redraw.
19542
19543 2004-09-09 02:28  pbartok
19544
19545         * ThemeWin32Classic.cs:
19546           - Improve disabled string look
19547
19548 2004-09-09 01:15  jordi
19549
19550         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
19551           args and handler
19552
19553 2004-09-08 23:56  ravindra
19554
19555         * ItemBoundsPortion.cs: It's enum, not a class!
19556
19557 2004-09-08 23:47  ravindra
19558
19559         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
19560           Enums for Form.
19561
19562 2004-09-08 21:13  ravindra
19563
19564         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
19565           ListView control.
19566
19567 2004-09-08 21:03  ravindra
19568
19569         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
19570           avoid crash.
19571
19572 2004-09-08 21:01  ravindra
19573
19574         * ScrollableControl.cs: Removed unreachable code.
19575
19576 2004-09-08 06:45  jordi
19577
19578         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
19579
19580 2004-09-08 01:00  jackson
19581
19582         * XplatUIX11.cs: Only run the timers when updating the message
19583           queue. This effectively gives X messages a higher priority then
19584           timer messages. Timers still need love though
19585
19586 2004-09-07 14:01  jackson
19587
19588         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
19589           this for us and the handle is no longer valid.
19590
19591 2004-09-07 13:59  jackson
19592
19593         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
19594           loop that manages to not crash. TODO: Add poll and cleanup timers
19595
19596 2004-09-07 11:12  jordi
19597
19598         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
19599
19600 2004-09-07 03:40  jordi
19601
19602         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
19603           fixes, methods, multiple links
19604
19605 2004-09-06 06:55  jordi
19606
19607         * Control.cs: Caches ClientRectangle rectangle value
19608
19609 2004-09-05 02:03  jordi
19610
19611         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
19612           certain situations
19613
19614 2004-09-04 11:10  jordi
19615
19616         * Label.cs: Refresh when font changed
19617
19618 2004-09-02 16:24  pbartok
19619
19620         * Control.cs:
19621           - Added sanity check to creation of double buffer bitmap
19622
19623 2004-09-02 16:24  pbartok
19624
19625         * ButtonBase.cs:
19626           - Fixed selection of text color
19627           - Fixed handling of resize event; now properly recreates double
19628             buffering bitmap
19629           - Added missing assignment of TextAlignment
19630           - Added proper default for TextAlignment
19631
19632 2004-09-02 14:26  pbartok
19633
19634         * RadioButton.cs:
19635           - Added missing RadioButton.RadioButtonAccessibleObject class
19636
19637 2004-09-02 14:26  pbartok
19638
19639         * Control.cs:
19640           - Added missing Control.ControlAccessibleObject class
19641           - Started to implement Select()ion mechanisms, still very incomplete
19642
19643 2004-09-02 14:25  pbartok
19644
19645         * AccessibleObject.cs:
19646           - Added missing methods
19647
19648 2004-09-02 14:23  pbartok
19649
19650         * AccessibleNavigation.cs, AccessibleSelection.cs:
19651           - Initial check-in
19652
19653 2004-09-02 10:32  jordi
19654
19655         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
19656           pool for pens, brushes, and hatchbruses
19657
19658 2004-09-01 15:30  jackson
19659
19660         * StatusBar.cs: Fix typo
19661
19662 2004-09-01 14:44  pbartok
19663
19664         * RadioButton.cs:
19665           - Fixed state
19666
19667 2004-09-01 14:39  pbartok
19668
19669         * Button.cs, RadioButton.cs:
19670           - Functional initial check-in
19671
19672 2004-09-01 14:01  pbartok
19673
19674         * CheckBox.cs:
19675           - Added missing default
19676           - Added missing region mark
19677
19678 2004-09-01 09:10  jordi
19679
19680         * Label.cs: fixes method signatures, new methods, events, fixes
19681           autosize
19682
19683 2004-09-01 07:19  jordi
19684
19685         * Control.cs: Init string variables with an empty object
19686
19687 2004-09-01 04:20  jordi
19688
19689         * Control.cs: fires OnFontChanged event
19690
19691 2004-08-31 20:07  pbartok
19692
19693         * ButtonBase.cs:
19694           - Enabled display of strings
19695
19696 2004-08-31 20:05  pbartok
19697
19698         * Form.cs:
19699           - Added (partial) implementation of DialogResult; rest needs to be
19700             implemented when the modal loop code is done
19701
19702 2004-08-31 19:55  pbartok
19703
19704         * CheckBox.cs:
19705           - Fixed to match the removal of the needs_redraw concept
19706
19707 2004-08-31 19:55  pbartok
19708
19709         * ButtonBase.cs:
19710           - Removed the rather odd split between 'needs redraw' and redrawing
19711           - Now handles the events that require regeneration (ambient
19712             properties and size)
19713
19714 2004-08-31 19:41  pbartok
19715
19716         * Control.cs:
19717           - Added firing of BackColorChanged event
19718           - Added TopLevelControl property
19719           - Fixed handling of WM_ERASEBKGRND message
19720
19721 2004-08-31 12:49  pbartok
19722
19723         * ButtonBase.cs:
19724           - Removed debug
19725           - Minor fixes
19726
19727 2004-08-31 12:48  pbartok
19728
19729         * CheckBox.cs:
19730           - Finished (famous last words)
19731
19732 2004-08-31 04:35  jordi
19733
19734         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
19735           scrolling bugs, adds new methods
19736
19737 2004-08-30 14:42  pbartok
19738
19739         * CheckBox.cs:
19740           - Implemented CheckBox drawing code
19741
19742 2004-08-30 14:42  pbartok
19743
19744         * ButtonBase.cs:
19745           - Made Redraw() and CheckRedraw() virtual
19746           - Improved mouse up/down/move logic to properly track buttons
19747
19748 2004-08-30 09:44  pbartok
19749
19750         * CheckBox.cs:
19751           - Updated to fix broken build. Not complete yet.
19752
19753 2004-08-30 09:28  pbartok
19754
19755         * CheckState.cs:
19756           - Initial checkin
19757
19758 2004-08-30 09:17  pbartok
19759
19760         * Appearance.cs:
19761           - Initial check-in
19762
19763 2004-08-27 16:12  ravindra
19764
19765         * ToolBarButton.cs: Added TypeConverter attribute.
19766
19767 2004-08-27 16:07  ravindra
19768
19769         * ImageIndexConverter.cs: Implemented.
19770
19771 2004-08-27 14:17  pbartok
19772
19773         * Control.cs:
19774           - Removed unneeded stack vars
19775           - First attempt to fix sizing issues when layout is suspended
19776
19777 2004-08-25 15:35  jordi
19778
19779         * ScrollBar.cs: more fixes to scrollbar
19780
19781 2004-08-25 14:04  ravindra
19782
19783         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
19784           Added the missing divider code and grip for ToolBar Control.
19785
19786 2004-08-25 13:20  pbartok
19787
19788         * Control.cs:
19789           - Control now properly passes the ambient background color to child
19790             controls
19791
19792 2004-08-25 13:20  jordi
19793
19794         * ScrollBar.cs: small bug fix regarding bar position
19795
19796 2004-08-25 12:33  pbartok
19797
19798         * Timer.cs:
19799           - Now only calls SetTimer or KillTimer if the enabled state has
19800           changed
19801
19802 2004-08-25 12:33  pbartok
19803
19804         * XplatUIWin32.cs:
19805           - Fixed timer handling, now seems to work
19806           - Improved error message for window creation
19807
19808 2004-08-25 12:32  pbartok
19809
19810         * Control.cs:
19811           - Fixed generation of MouseUp message
19812
19813 2004-08-25 12:29  jordi
19814
19815         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
19816           and fixes for progressbar
19817
19818 2004-08-24 18:43  ravindra
19819
19820         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
19821           in ToolBar control.
19822
19823 2004-08-24 17:15  pbartok
19824
19825         * Panel.cs:
19826           - Added #region
19827           - Added missing events
19828           - Alphabetized
19829
19830 2004-08-24 17:14  pbartok
19831
19832         * StatusBar.cs, PictureBox.cs:
19833           - Now uses Control's CreateParams
19834
19835 2004-08-24 16:36  pbartok
19836
19837         * XplatUIX11.cs:
19838           - Fixed background color handling
19839           - Fixed sending of enter/leave events on a grab
19840
19841 2004-08-24 16:35  pbartok
19842
19843         * X11Structs.cs:
19844           - Refined definitions for CrossingEvent
19845
19846 2004-08-24 12:37  jordi
19847
19848         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
19849           formmating, methods signature, and adds missing events
19850
19851 2004-08-24 12:24  jordi
19852
19853         * Control.cs: fire OnEnabledChanged event
19854
19855 2004-08-24 11:17  pbartok
19856
19857         * XplatUIWin32.cs:
19858           - Implemented SetTimer() and KillTimer()
19859
19860 2004-08-24 11:16  pbartok
19861
19862         * XplatUIX11.cs:
19863           - Now uses Remove instead of Add to kill the timer
19864
19865 2004-08-24 10:16  jackson
19866
19867         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
19868           picture boxes in the theme now. Draw picture box borders and obey
19869           sizing modes
19870
19871 2004-08-24 05:49  jackson
19872
19873         * Timer.cs: Remove top secret debugging code
19874
19875 2004-08-24 05:34  jackson
19876
19877         * PictureBox.cs: Temp hack to make picture boxes draw their full
19878           image
19879
19880 2004-08-24 05:29  jackson
19881
19882         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19883           XplatUIX11.cs: Move timers to the driver level. On X they are
19884           queued by the driver and checked on idle.
19885
19886 2004-08-24 01:07  jackson
19887
19888         * XplatUIX11.cs: Use a queue for async messages instead of passing
19889           them as ClientMessages since that was totally broken. Also simply
19890           check for events and return an idle message if none are found. This
19891           gives us an idle handler, and prevents deadlocking when no messages
19892           are in the queue.
19893
19894 2004-08-23 18:19  ravindra
19895
19896         * XplatUIWin32.cs: Removed the unwanted destructor.
19897
19898 2004-08-23 17:27  pbartok
19899
19900         * ButtonBase.cs:
19901           - Finishing touches. Works now, just needs some optimizations.
19902
19903 2004-08-23 16:53  jordi
19904
19905         * ScrollBar.cs: small fix
19906
19907 2004-08-23 16:45  pbartok
19908
19909         * Application.cs:
19910           - Removed debug output
19911           - Simplifications
19912
19913 2004-08-23 16:43  jordi
19914
19915         * ScrollBar.cs: [no log message]
19916
19917 2004-08-23 16:10  pbartok
19918
19919         * Form.cs:
19920           - Fixed handling of WM_CLOSE message
19921           - Removed debug output
19922
19923 2004-08-23 16:09  pbartok
19924
19925         * Application.cs:
19926           - Added handling of Idle event
19927           - Added handling of form closing
19928           - Fixed reporting of MessageLoop property
19929           - Removed some unneeded code, should provide a bit of a speedup
19930
19931 2004-08-23 15:22  pbartok
19932
19933         * Control.cs:
19934           - Added InitLayout() method
19935           - Added code to properly perform layout when Anchor or Dock property
19936             is changed
19937           - Changed 'interpretation' of ResumeLayout. MS seems to have a
19938             LAMESPEC, tried to do it in a way that makes sense
19939
19940 2004-08-23 14:10  jordi
19941
19942         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
19943           properties and methods
19944
19945 2004-08-23 13:55  pbartok
19946
19947         * Control.cs:
19948           - Properly fixed Jordi's last fix
19949           - Now uses Cursor's Position property instead of calling XplatUI
19950           directly
19951
19952 2004-08-23 13:44  jordi
19953
19954         * PaintEventHandler.cs: Adding missing attribute
19955
19956 2004-08-23 13:39  pbartok
19957
19958         * Cursor.cs:
19959           - Implemented Position property
19960
19961 2004-08-23 13:39  pbartok
19962
19963         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19964           - Added method to move mouse cursor
19965
19966 2004-08-23 13:39  pbartok
19967
19968         * XplatUIX11.cs:
19969           - Fixed setting of background color
19970           - Added method to move mouse cursor
19971
19972 2004-08-23 13:16  jordi
19973
19974         * Control.cs: avoids null exception
19975
19976 2004-08-22 17:46  jackson
19977
19978         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
19979           PictureBox
19980
19981 2004-08-22 17:40  jackson
19982
19983         * XplatUIX11.cs: Add some missing locks
19984
19985 2004-08-22 15:10  pbartok
19986
19987         * Control.cs, Form.cs:
19988           - Removed OverlappedWindow style from Control, instead it's default
19989             now is child
19990           - Made form windows OverlappedWindow by default
19991
19992 2004-08-22 13:34  jackson
19993
19994         * ScrollBar.cs: Update the position through the Value property so
19995           the OnValueChanged event is raised.
19996
19997 2004-08-22 12:04  pbartok
19998
19999         * SWF.csproj:
20000           - Added Cursor.cs and UserControl.cs
20001
20002 2004-08-22 12:03  pbartok
20003
20004         * Cursor.cs:
20005           - Started implementation, not usable yet
20006
20007 2004-08-22 12:00  pbartok
20008
20009         * UserControl.cs:
20010           - Implemented UserControl (complete)
20011
20012 2004-08-21 19:20  ravindra
20013
20014         * ToolBar.cs: Correcting the formatting mess of VS.NET.
20015
20016 2004-08-21 18:49  ravindra
20017
20018         * ToolBar.cs: Probably this completes the missing attributes in
20019           toolbar control.
20020
20021 2004-08-21 18:03  ravindra
20022
20023         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
20024           Fixed toolbar control signatures.
20025
20026 2004-08-21 16:32  pbartok
20027
20028         * LinkLabel.cs:
20029           - Signature Fixes
20030
20031 2004-08-21 16:30  pbartok
20032
20033         * Label.cs:
20034           - Signature fixes
20035
20036 2004-08-21 16:19  pbartok
20037
20038         * Control.cs, Label.cs:
20039           - Signature fixes
20040
20041 2004-08-21 15:57  pbartok
20042
20043         * ButtonBase.cs:
20044           - Added loads of debug output for development
20045           - Fixed typo in method name
20046
20047 2004-08-21 15:52  pbartok
20048
20049         * ToolBarButtonClickEventArgs.cs:
20050           - Added missing base class
20051
20052 2004-08-21 14:53  pbartok
20053
20054         * Control.cs:
20055           - Updated to match new GrabWindow signature
20056
20057 2004-08-21 14:51  pbartok
20058
20059         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20060           - Added method to get default display size
20061
20062 2004-08-21 14:23  pbartok
20063
20064         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20065           - Added method to query current grab state
20066           - Added argument to allow confining a grab to a window
20067
20068 2004-08-21 14:22  pbartok
20069
20070         * Keys.cs:
20071           - Added [Flags] attribute so that modifiers can be used in bitwise
20072           ops
20073
20074 2004-08-21 14:21  pbartok
20075
20076         * TrackBar.cs, ScrollBar.cs:
20077           - Replaced direct XplatUI calls with their Control counterpart
20078
20079 2004-08-21 13:32  pbartok
20080
20081         * Control.cs:
20082           - Implemented Created property
20083
20084 2004-08-21 13:28  pbartok
20085
20086         * Control.cs:
20087           - Implemented ContainsFocus
20088
20089 2004-08-21 13:26  pbartok
20090
20091         * Control.cs:
20092           - Implemented CausesValidation
20093
20094 2004-08-21 13:21  pbartok
20095
20096         * Control.cs:
20097           - Implemented CanFocus
20098           - Implemented CanSelect
20099           - Implemented Capture
20100
20101 2004-08-21 12:35  pbartok
20102
20103         * XplatUIWin32.cs:
20104           - Fixed bug with Async message handling
20105           - Implemented getting the ModifierKeys
20106
20107 2004-08-21 12:32  jackson
20108
20109         * AsyncMethodResult.cs: Make sure we have the mutex before we
20110           release it. Fixes BeginInvoke on windows
20111
20112 2004-08-21 11:31  pbartok
20113
20114         * XplatUIWin32.cs, XplatUIX11.cs:
20115           - Drivers now return proper mouse state
20116
20117 2004-08-21 10:54  jackson
20118
20119         * Control.cs: Implement EndInvoke
20120
20121 2004-08-21 10:48  jackson
20122
20123         * Timer.cs: Remove unneeded finalizer
20124
20125 2004-08-20 19:52  ravindra
20126
20127         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
20128           in mouse event handling in the ToolBar control.
20129
20130 2004-08-20 19:50  ravindra
20131
20132         * ImageList.cs: Changed draw method to use the arguments passed in
20133           to draw the image.
20134
20135 2004-08-20 18:58  pbartok
20136
20137         * XplatUIStructs.cs:
20138           - Added private message for async communication
20139
20140 2004-08-20 17:38  ravindra
20141
20142         * Control.cs: Made RightToLeft property virtual and removed a
20143           Console.WriteLine.
20144
20145 2004-08-20 14:39  jordi
20146
20147         * ThemeGtk.cs: use style_attach
20148
20149 2004-08-20 14:39  pbartok
20150
20151         * XplatUIWin32.cs:
20152           - Added jackson's Async code from X11 to Win32
20153
20154 2004-08-20 14:09  pbartok
20155
20156         * SWF.csproj:
20157           - Added all new files
20158
20159 2004-08-20 14:09  pbartok
20160
20161         * Control.cs:
20162           - Added call to set window background color
20163
20164 2004-08-20 14:03  pbartok
20165
20166         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20167           - Added method for setting the window background
20168
20169 2004-08-20 14:02  pbartok
20170
20171         * XplatUIWin32.cs:
20172           - Added method for setting the background color
20173           - Added handling for erasing the window background
20174
20175 2004-08-20 13:45  jordi
20176
20177         * TrackBar.cs: fixes timer, new properties and methods
20178
20179 2004-08-20 13:34  jackson
20180
20181         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
20182           correct thread
20183
20184 2004-08-20 13:22  jackson
20185
20186         * Timer.cs: Timer Tick events are now handed through Controls Async
20187           mechanism so the callbacks are executed in the same thread as X
20188
20189 2004-08-20 13:19  jackson
20190
20191         * XplatUIDriver.cs: Expose functionality to send async messages
20192           through the driver
20193
20194 2004-08-20 13:18  jackson
20195
20196         * Control.cs: Implement Begininvoke
20197
20198 2004-08-20 13:14  jackson
20199
20200         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
20201           messages through the driver
20202
20203 2004-08-20 13:12  jackson
20204
20205         * XplatUIX11.cs: Lock before all X operations. Also added Async
20206           method functionality through XSendEvent
20207
20208 2004-08-20 13:11  jackson
20209
20210         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
20211           This will screw up on 64 bit systems)
20212
20213 2004-08-20 13:10  jackson
20214
20215         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
20216           Async messages through X/Win32
20217
20218 2004-08-19 19:39  pbartok
20219
20220         * XplatUIX11.cs:
20221           - Updated code to match new HandleData.DeviceContext type
20222
20223 2004-08-19 19:38  pbartok
20224
20225         * HandleData.cs:
20226           - Made DeviceContext a generic object to allow usage from various
20227           drivers
20228           - Added support for queueing Windows messages
20229
20230 2004-08-19 19:37  pbartok
20231
20232         * XplatUIWin32.cs:
20233           - Added generation of MouseEnter, MouseLeave and MouseHover events
20234           - Added cleanup on EndPaint
20235
20236 2004-08-19 19:17  pbartok
20237
20238         * Control.cs:
20239           - Added handling of WM_MOUSEHOVER
20240           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
20241           code
20242
20243 2004-08-19 18:55  jordi
20244
20245         * ThemeGtk.cs: fixes button order
20246
20247 2004-08-19 18:12  jordi
20248
20249         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
20250
20251 2004-08-19 17:09  pbartok
20252
20253         * Control.cs:
20254           - Added Right property
20255           - Added RightToLeft property
20256
20257 2004-08-19 16:27  jordi
20258
20259         * ThemeGtk.cs: experimental GTK theme support
20260
20261 2004-08-19 16:26  jordi
20262
20263         * ITheme.cs, Theme.cs: move themes from an interface to a class
20264
20265 2004-08-19 16:25  jordi
20266
20267         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
20268           theme enhancaments
20269
20270 2004-08-19 16:04  pbartok
20271
20272         * XplatUIX11.cs:
20273           - Added colormap basics
20274           - Added a way to re-initialize with a different display handle
20275           - Fixed setting of the window background color
20276           - Added various X11 imports related to colors and colormaps
20277
20278 2004-08-19 15:51  pbartok
20279
20280         * X11Structs.cs:
20281           - Removed packing hints (Paolo suggested this a while back)
20282           - fixed colormap type
20283           - Added default Atom types
20284           - Added Screen and color structs and enums
20285
20286 2004-08-19 15:39  pbartok
20287
20288         * ImageList.cs:
20289           - Added missing Draw() method
20290           - Added missing RecreateHandle event
20291
20292 2004-08-19 15:30  pbartok
20293
20294         * Form.cs:
20295           - Added handling of WM_CLOSE
20296
20297 2004-08-18 13:16  jordi
20298
20299         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
20300           a table
20301
20302 2004-08-18 09:56  jordi
20303
20304         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
20305
20306 2004-08-17 15:31  ravindra
20307
20308         * SWF.csproj: Updated project.
20309
20310 2004-08-17 15:25  pbartok
20311
20312         * Control.cs:
20313           - Drawing improvement; don't call UpdateBounds if we are not visible
20314             (or have been minimized)
20315
20316 2004-08-17 15:24  pbartok
20317
20318         * XplatUIWin32.cs:
20319           - Finished IsVisible
20320           - Added Win32GetWindowPlacement
20321
20322 2004-08-17 15:08  jackson
20323
20324         * Panel.cs: Initial checkin of the Panel
20325
20326 2004-08-17 14:25  pbartok
20327
20328         * Control.cs:
20329           - Fixed broken handling of default window sizes
20330
20331 2004-08-17 13:29  jackson
20332
20333         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
20334           has a large startup time.
20335
20336 2004-08-17 10:25  jackson
20337
20338         * HandleData.cs: union areas properly
20339
20340 2004-08-17 10:12  jackson
20341
20342         * HandleData.cs: union areas properly
20343
20344 2004-08-16 20:00  ravindra
20345
20346         * ToolBar.cs, ToolBarButton.cs: Added attributes.
20347
20348 2004-08-16 18:48  ravindra
20349
20350         * ToolBar.cs: Added attributes.
20351
20352 2004-08-16 17:17  ravindra
20353
20354         * SWF.csproj: Updated project.
20355
20356 2004-08-16 17:16  jackson
20357
20358         * XplatUIX11.cs: Check for more expose events before sending a
20359           WM_PAINT so they can all be grouped together. This makes dragging a
20360           window across another window redraw in a sane way.
20361
20362 2004-08-16 15:47  pbartok
20363
20364         * Control.cs:
20365           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
20366             support OnMouseEnter/Leave()
20367           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
20368             exposure handling
20369
20370 2004-08-16 15:46  pbartok
20371
20372         * XplatUIStructs.cs, XplatUIX11.cs:
20373           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
20374           OnMouseEnter/Leave()
20375
20376 2004-08-16 15:34  jackson
20377
20378         * XplatUIX11.cs: Group multiple expose events in HandleData, make
20379           sure messages get the message field set to WM_NULL if they are not
20380           handled.
20381
20382 2004-08-16 15:24  jackson
20383
20384         * HandleData.cs: HandleData is used for storing message information
20385           for window handles
20386
20387 2004-08-15 17:23  ravindra
20388
20389         * ColorDepth.cs: Added attribute.
20390
20391 2004-08-15 17:23  ravindra
20392
20393         * SWF.csproj: Updated project for ToolBar Control.
20394
20395 2004-08-15 17:20  ravindra
20396
20397         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
20398           control and also dos2unix format.
20399
20400 2004-08-15 17:13  ravindra
20401
20402         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
20403           ToolBarButtonClickEventArgs.cs,
20404           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
20405           ToolBarTextAlign.cs: First Implementation of ToolBar control.
20406
20407 2004-08-15 15:31  pbartok
20408
20409         * ButtonBase.cs:
20410           - First (mostly) working version
20411
20412 2004-08-13 16:15  pbartok
20413
20414         * Control.cs:
20415           - Fixed Anchor default
20416
20417 2004-08-13 15:43  pbartok
20418
20419         * Control.cs:
20420           - Changed GetCursorPos signature
20421
20422 2004-08-13 15:42  pbartok
20423
20424         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20425           - Changed signature for GetCursorPos
20426
20427 2004-08-13 15:25  pbartok
20428
20429         * XplatUIX11.cs:
20430           - Cleanup
20431           - Fixed resizing/exposure handling
20432
20433 2004-08-13 15:22  jordi
20434
20435         * ThemeWin32Classic.cs: removes redundant code and fixes issues
20436           with tickposition
20437
20438 2004-08-13 14:55  jordi
20439
20440         * TrackBar.cs: change from wndproc to events
20441
20442 2004-08-13 13:00  jordi
20443
20444         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20445           XplatUIX11.cs: implements PointToClient (ScreenToClient)
20446
20447 2004-08-13 12:53  pbartok
20448
20449         * XplatUIWin32.cs:
20450           - Changed GetWindowPos to also provide client area size
20451           - Fixed broken prototypes for several win32 functions
20452
20453 2004-08-13 12:53  pbartok
20454
20455         * XplatUI.cs, XplatUIDriver.cs:
20456           - Changed GetWindowPos to also provide client area size
20457
20458 2004-08-13 12:52  pbartok
20459
20460         * XplatUIX11.cs:
20461           - Added generation of WM_POSCHANGED
20462           - Changed GetWindowPos to also provide client area size
20463
20464 2004-08-13 12:52  pbartok
20465
20466         * Control.cs:
20467           - Added Dispose() and destructor
20468           - Fixed resizing and bounds calculation
20469           - Fixed Layout
20470           - Added memory savings for invisible windows
20471
20472 2004-08-13 12:46  jordi
20473
20474         * TrackBar.cs: adds timer and grap window
20475
20476 2004-08-13 10:25  jackson
20477
20478         * Timer.cs: SWF Timer
20479
20480 2004-08-12 16:59  pbartok
20481
20482         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20483           - Implemented method to get current mouse position
20484
20485 2004-08-12 14:29  jordi
20486
20487         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
20488           enhancement, fix mouse problems, highli thumb, etc
20489
20490 2004-08-12 13:31  pbartok
20491
20492         * Control.cs:
20493           - Fixed Anchoring bugs
20494
20495 2004-08-12 13:01  jackson
20496
20497         * StatusBar.cs: Don't forget things
20498
20499 2004-08-12 12:54  jackson
20500
20501         * ThemeWin32Classic.cs: Handle owner draw status bars
20502
20503 2004-08-12 12:54  jackson
20504
20505         * StatusBar.cs: Implement missing properties, events, and methods.
20506           Handle mouse clicking
20507
20508 2004-08-12 10:19  jackson
20509
20510         * StatusBarPanelClickEventArgs.cs,
20511           StatusBarPanelClickEventHandler.cs: Classes for handling status
20512           bar panel click events
20513
20514 2004-08-12 10:10  jackson
20515
20516         * Control.cs: Add missing properties
20517
20518 2004-08-12 09:46  pbartok
20519
20520         * BindingsManagerBase.cs:
20521           - Name changed to BindingManagerBase.cs
20522
20523 2004-08-12 09:25  jordi
20524
20525         * ScrollableControl.cs: calls ctrlbase instead of exeception
20526
20527 2004-08-11 16:28  pbartok
20528
20529         * InputLanguageChangingEventArgs.cs:
20530           - Never check in before compiling. Fixes the last check-in
20531
20532 2004-08-11 16:26  pbartok
20533
20534         * InputLanguageChangingEventArgs.cs:
20535           - More signature fixes
20536
20537 2004-08-11 16:20  pbartok
20538
20539         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
20540           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
20541           ImageListStreamer.cs, InputLanguage.cs,
20542           InputLanguageChangedEventArgs.cs,
20543           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
20544           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
20545           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
20546           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20547           - Signature fixes
20548
20549 2004-08-11 16:16  pbartok
20550
20551         * Application.cs:
20552           - Fixed Signature
20553           - Added .Net 1.1 method
20554
20555 2004-08-11 15:25  pbartok
20556
20557         * SWF.csproj:
20558           - Fixed BindingManagerBase.cs filename
20559
20560 2004-08-11 15:22  pbartok
20561
20562         * BindingManagerBase.cs:
20563           - Was checked in with wrong filename
20564
20565 2004-08-11 14:50  pbartok
20566
20567         * SWF.csproj:
20568           - Updated
20569
20570 2004-08-11 13:41  jordi
20571
20572         * XplatUIWin32.cs: Fixes ClientRect
20573
20574 2004-08-11 13:19  pbartok
20575
20576         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20577           XplatUIX11.cs:
20578           - We had SetWindowPos and MoveWindow to set window positions and
20579             size, removed MoveWindow. We have GetWindowPos, so it made sense to
20580             keep SetWindowPos as matching counterpart
20581           - Added some X11 sanity checking
20582
20583 2004-08-11 12:59  pbartok
20584
20585         * Control.cs:
20586           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
20587             (It seems that SetBounds is just a front for SetBoundsCore and
20588              SetBoundsCore updates the underlying window system and
20589              UpdateBounds is responsible for updating the variables associated
20590              with the Control and sending the events)
20591           - Major cleanup of Size handling; we now have two sizes, client_size
20592             and bounds. Bounds defines the window with decorations, client_size
20593             without them.
20594
20595 2004-08-11 12:55  pbartok
20596
20597         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20598           - Added method to calculate difference between decorated window and
20599             raw client area
20600
20601 2004-08-11 12:54  pbartok
20602
20603         * Label.cs:
20604           - Forcing redraw on resize
20605
20606 2004-08-11 11:43  pbartok
20607
20608         * ImageList.cs:
20609           - Removed disposing of the actual images when the list is disposed
20610
20611 2004-08-11 09:13  pbartok
20612
20613         * Control.cs:
20614           - Now properly reparents windows
20615
20616 2004-08-11 08:37  pbartok
20617
20618         * Control.cs:
20619           - Duh!
20620
20621 2004-08-11 07:47  pbartok
20622
20623         * Control.cs:
20624           - Rewrote the collection stuff. Might not be as fast now, not
20625             keeping the number of children around and accessible directly, but
20626             it's more straightforward
20627
20628 2004-08-11 07:44  pbartok
20629
20630         * AccessibleObject.cs:
20631           - Fixed to match ControlCollection rewrite
20632
20633 2004-08-11 07:43  pbartok
20634
20635         * ImageList.cs:
20636           - Added missing creation of the collection list
20637
20638 2004-08-10 20:08  jackson
20639
20640         * StatusBar.cs: Get the paint message from WndProc
20641
20642 2004-08-10 19:31  jackson
20643
20644         * ThemeWin32Classic.cs: Create Brushes as little as possible
20645
20646 2004-08-10 19:20  jackson
20647
20648         * UICues.cs: Add Flags attribute
20649
20650 2004-08-10 19:19  jackson
20651
20652         * StatusBarPanel.cs: Signature cleanup
20653
20654 2004-08-10 19:10  jackson
20655
20656         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
20657           Initial implementation of status bar item drawing
20658
20659 2004-08-10 17:27  jordi
20660
20661         * TrackBar.cs: add missing methods, properties, and restructure to
20662           hide extra ones
20663
20664 2004-08-10 16:24  jackson
20665
20666         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
20667           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
20668           attribute
20669
20670 2004-08-10 13:21  jordi
20671
20672         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
20673           enhancements and standarize on win colors defaults
20674
20675 2004-08-10 12:52  jackson
20676
20677         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
20678           ThemeWin32Classic.cs: Implement DrawItem functionality
20679
20680 2004-08-10 12:47  jordi
20681
20682         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
20683
20684 2004-08-10 12:32  jordi
20685
20686         * Control.cs: throw ontextchange event
20687
20688 2004-08-10 11:43  pbartok
20689
20690         * Control.cs:
20691           - Added more to the still unfinished Dock/Anchor layout code
20692
20693 2004-08-10 11:39  pbartok
20694
20695         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20696           - Added GetWindowPos method
20697
20698 2004-08-10 11:36  pbartok
20699
20700         * XplatUIWin32.cs:
20701           - Implemented several methods
20702
20703 2004-08-10 09:47  jackson
20704
20705         * TrackBar.cs: Allow control to handle buffering
20706
20707 2004-08-10 09:41  jackson
20708
20709         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
20710
20711 2004-08-10 09:24  jackson
20712
20713         * Label.cs, LinkLabel.cs: Let Control handle buffering.
20714
20715 2004-08-10 09:09  jackson
20716
20717         * StatusBar.cs: Let Control handle all the buffering.
20718
20719 2004-08-10 09:08  jackson
20720
20721         * Control.cs: Control will now handle the buffering code, so each
20722           control does not have to implement this.
20723
20724 2004-08-10 08:34  jackson
20725
20726         * XplatUIDriver.cs: Use default colors from the theme
20727
20728 2004-08-09 17:12  pbartok
20729
20730         * ImageList.cs:
20731           - Fixed several bugs Ravindra pointed out
20732
20733 2004-08-09 16:11  pbartok
20734
20735         * Control.cs:
20736           - Added incomplete dock layout code
20737           - Added support for mouse wheel
20738
20739 2004-08-09 16:09  pbartok
20740
20741         * XplatUIX11.cs:
20742           - Added handling for middle and right mousebutton
20743           - Added handling for mouse wheel
20744           - Added handling for key state and mouse state and position
20745           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
20746           messages
20747
20748 2004-08-09 15:40  jackson
20749
20750         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
20751           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
20752           checkin
20753
20754 2004-08-09 15:37  jackson
20755
20756         * StatusBar.cs: Initial implementation of StatusBar
20757
20758 2004-08-09 15:36  jackson
20759
20760         * ITheme.cs: Add support for drawing status bar and getting status
20761           bar item sizes
20762
20763 2004-08-09 15:35  pbartok
20764
20765         * MouseButtons.cs:
20766           - Fixed values
20767
20768 2004-08-09 15:34  jackson
20769
20770         * ThemeWin32Classic.cs: Add support for drawing status bar and get
20771           status bar item sizes
20772
20773 2004-08-09 15:21  jackson
20774
20775         * ThemeWin32Classic.cs: Use known colors for default control
20776           colours
20777
20778 2004-08-09 15:12  jackson
20779
20780         * ThemeWin32Classic.cs: Make the default font static, it is static
20781           in control so this doesn't change functionality and creating fonts
20782           is sloooooow.
20783
20784 2004-08-09 14:56  pbartok
20785
20786         * X11Structs.cs:
20787           - Added GrabMode enum
20788
20789 2004-08-09 14:55  pbartok
20790
20791         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20792           - Removed Run method, was only required for initial development
20793
20794 2004-08-09 14:51  pbartok
20795
20796         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20797           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
20798           capture
20799
20800 2004-08-09 13:48  pbartok
20801
20802         * XplatUIX11.cs:
20803           - Fixed default sizing for child windows
20804
20805 2004-08-09 12:56  pbartok
20806
20807         * XplatUIX11.cs:
20808           - Added generation of WM_DESTROY message
20809           - Added handling of window manager induced shutdown
20810
20811 2004-08-09 11:31  jackson
20812
20813         * ThemeWin32Classic.cs: New names for control properties
20814
20815 2004-08-09 11:25  jackson
20816
20817         * Control.cs: Use new color names
20818
20819 2004-08-09 11:02  jackson
20820
20821         * XplatUI.cs: Get default window properties from the theme
20822
20823 2004-08-09 11:01  jackson
20824
20825         * ITheme.cs: The theme engine now controls default window
20826           properties
20827
20828 2004-08-09 11:00  jackson
20829
20830         * ThemeWin32Classic.cs: Add default window color properties
20831
20832 2004-08-09 10:17  jackson
20833
20834         * ThemeWin32Classic.cs: Use correct default back color
20835
20836 2004-08-09 10:05  jackson
20837
20838         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
20839           the theme now.
20840
20841 2004-08-09 09:56  jackson
20842
20843         * XplatUI.cs: Remove defaults, these are handled by the theme now.
20844
20845 2004-08-09 09:54  jackson
20846
20847         * Control.cs: Get default properties from the theme.
20848
20849 2004-08-09 09:53  jackson
20850
20851         * ITheme.cs: Themes now handle default control properties
20852
20853 2004-08-09 09:53  jackson
20854
20855         * ThemeWin32Classic.cs: Themes now handle default control
20856           properties so coloring will be consistent
20857
20858 2004-08-08 16:54  jordi
20859
20860         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
20861
20862 2004-08-08 15:08  jordi
20863
20864         * XplatUIX11.cs: fixes keyboard crash
20865
20866 2004-08-08 13:47  jordi
20867
20868         * Label.cs: add cvs header info
20869
20870 2004-08-08 12:09  jackson
20871
20872         * ThemeWin32Classic.cs: Add pen_buttonface
20873
20874 2004-08-08 11:52  jordi
20875
20876         * Label.cs, LinkLabel.cs: [no log message]
20877
20878 2004-08-08 11:34  jordi
20879
20880         * ThemeWin32Classic.cs: Use Windows Standard Colours
20881
20882 2004-08-07 17:32  jordi
20883
20884         * TrackBar.cs: throw exceptions of invalid enums values
20885
20886 2004-08-07 17:31  jordi
20887
20888         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
20889           draw method name
20890
20891 2004-08-07 16:56  jackson
20892
20893         * HorizontalAlignment.cs: Initial checkin
20894
20895 2004-08-07 13:16  jordi
20896
20897         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
20898           methods
20899
20900 2004-08-07 13:05  jordi
20901
20902         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
20903           GetSysColor defines
20904
20905 2004-08-06 18:01  pbartok
20906
20907         * ThemeWin32Classic.cs:
20908           - Fixed some rounding issues with float/int
20909
20910 2004-08-06 18:00  jackson
20911
20912         * DockStyle.cs, AnchorStyles.cs:
20913
20914                   Add flags and serializable attributes.
20915
20916 2004-08-06 17:46  pbartok
20917
20918         * XplatUIX11.cs:
20919           - Implemented GetParent
20920
20921 2004-08-06 17:18  pbartok
20922
20923         * TrackBar.cs:
20924           - Fixed some rounding issues with float/int
20925
20926 2004-08-06 17:17  pbartok
20927
20928         * X11Structs.cs, XplatUIX11.cs:
20929           - Fixed Refresh and Invalidate
20930
20931 2004-08-06 15:30  pbartok
20932
20933         * Control.cs, X11Structs.cs, XplatUIX11.cs:
20934           - Fixed recursive loop when resizing
20935           - Improved/fixed redrawing on expose messages
20936
20937 2004-08-06 09:53  jordi
20938
20939         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
20940           keyboard navigation
20941
20942 2004-08-06 08:02  pbartok
20943
20944         * X11Structs.cs, XplatUIX11.cs:
20945           - Fixed reparenting
20946           - Fixed window border creation
20947
20948 2004-08-05 15:38  pbartok
20949
20950         * XplatUIX11.cs:
20951           - Attempted fix for reparenting problems
20952
20953 2004-08-04 15:14  pbartok
20954
20955         * Control.cs:
20956           - Fixed Invalidation bug (calculated wrong client area)
20957           - Added ClientSize setter
20958
20959 2004-08-04 15:13  pbartok
20960
20961         * Form.cs:
20962           - Added AutoScale properties
20963
20964 2004-08-04 15:13  pbartok
20965
20966         * SWF.csproj:
20967           - Added latest files
20968
20969 2004-08-04 14:11  pbartok
20970
20971         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20972           XplatUIX11.cs:
20973           - Added Invalidate handling
20974
20975 2004-08-03 17:09  jordi
20976
20977         * XplatUIDriver.cs: fixes spelling mistake
20978
20979 2004-07-27 09:53  jordi
20980
20981         * TrackBar.cs: fixes trackbar events, def classname, methods
20982           signature
20983
20984 2004-07-27 09:29  jordi
20985
20986         * ScrollBar.cs: fixes scrollbar events
20987
20988 2004-07-27 04:38  jordi
20989
20990         * Control.cs: changes to be able to run winforms samples
20991
20992 2004-07-26 11:42  jordi
20993
20994         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
20995           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
20996
20997 2004-07-26 05:41  jordi
20998
20999         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
21000           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
21001           implementation
21002
21003 2004-07-22 09:22  jordi
21004
21005         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
21006           check link overlapping, implement events, and fixes
21007
21008 2004-07-21 10:28  jordi
21009
21010         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
21011
21012 2004-07-21 10:19  jordi
21013
21014         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
21015           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
21016           LinkLabelLinkClickedEventArgs.cs,
21017           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
21018           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
21019           implementation
21020
21021 2004-07-19 13:09  jordi
21022
21023         * Control.cs, Label.cs: label control re-written: added missing
21024           functionlity, events, and properties
21025
21026 2004-07-19 10:49  jordi
21027
21028         * Control.cs: fixes SetBounds logic
21029
21030 2004-07-19 01:29  jordi
21031
21032         * Control.cs: Call RefreshWindow only if the window has created
21033
21034 2004-07-15 14:05  pbartok
21035
21036         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
21037           - Implemented ImageList and ImageList.ImageCollection classes
21038           - Added ColorDepth enumeration
21039           - Updated SWF VS.Net project
21040
21041 2004-07-15 11:06  jordi
21042
21043         * XplatUIStructs.cs: added MsgButons enum
21044
21045 2004-07-15 11:03  jordi
21046
21047         * Control.cs: added basic mouse handeling events
21048
21049 2004-07-15 03:38  jordi
21050
21051         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
21052           Vertical TrackBar control implementation
21053
21054 2004-07-13 09:33  jordi
21055
21056         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
21057
21058 2004-07-13 09:31  jordi
21059
21060         * Control.cs, Form.cs: commit: new properties and fixes form size
21061           problems
21062
21063 2004-07-09 14:13  miguel
21064
21065         * ProgressBar.cs: Spelling
21066
21067 2004-07-09 11:25  pbartok
21068
21069         * ProgressBar.cs:
21070           - Removed usage of Rectangle for drawing. Miguel pointed out it's
21071           faster
21072
21073 2004-07-09 11:17  miguel
21074
21075         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
21076
21077                 * ProgressBar.cs: Fixed spelling for `block'
21078
21079                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
21080                 style guidelines.
21081
21082                 Avoid using the += on rect.X, that exposed a bug in the compiler.
21083
21084 2004-07-08 23:21  pbartok
21085
21086         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
21087           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
21088           BaseCollection.cs, Binding.cs, BindingContext.cs,
21089           BindingMemberInfo.cs, BindingsCollection.cs,
21090           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
21091           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
21092           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
21093           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
21094           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
21095           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
21096           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
21097           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
21098           FrameStyle.cs, GiveFeedbackEventArgs.cs,
21099           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
21100           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
21101           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
21102           InputLanguageChangedEventArgs.cs,
21103           InputLanguageChangedEventHandler.cs,
21104           InputLanguageChangingEventArgs.cs,
21105           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
21106           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
21107           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
21108           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
21109           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
21110           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
21111           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
21112           QueryAccessibilityHelpEventArgs.cs,
21113           QueryAccessibilityHelpEventHandler.cs,
21114           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
21115           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
21116           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
21117           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
21118           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
21119           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
21120           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
21121           XplatUIX11.cs, lang.cs:
21122           - Initial check-in
21123